Skip to content

Operations

All supported algorithms grouped by operation, with provider support status.

Algorithm names link to the API reference for detailed documentation. For step-by-step usage examples, see the individual operation pages in the sidebar.

Supported Algorithms

Algorithm JDK WebCrypto Apple CryptoKit OpenSSL3
Hashing
SHA224 ✅ ❌ ✅ ❌ ✅
SHA256 ✅ ✅ ✅ ✅ ✅
SHA384 ✅ ✅ ✅ ✅ ✅
SHA512 ✅ ✅ ✅ ✅ ✅
SHA3 ✅ ❌ ❌ ❌ ✅
SHA1 ☣ ✅ ✅ ✅ ✅ ✅
MD5 ☣ ✅ ❌ ✅ ✅ ✅
RIPEMD160 ⚠ ✅ ❌ ❌ ❌ ✅
MAC
AES-CMAC ✅ 1 ❌ ❌ ❌ ✅
HMAC ✅ ✅ ✅ ✅ ✅
Digital Signatures
RSA-PSS ✅ 2 ✅ ✅ ❌ ✅
RSA-PKCS1 ✅ ✅ ✅ ❌ ✅
ECDSA ⭐ ✅ ✅ 3 ✅ ✅ 3 ✅
EdDSA ⭐ ✅ 4 ✅ 5 ❌ ✅ 6 ✅
DSA ✅ ❌ ❌ ❌ ✅
AEAD
AES-GCM ⭐ ✅ ✅ 7 ❌ ✅ 8 ✅
AES-CCM ✅ 1 ❌ ❌ ❌ ✅
ChaCha20-Poly1305 ⭐ ✅ 9 ❌ ❌ ✅ ✅
Symmetric Encryption
AES-CBC ✅ ✅ 7 10 ✅ ❌ ✅
AES-CTR ✅ ✅ 7 ✅ ❌ ✅
AES-ECB ☣ ✅ ❌ ✅ ❌ ✅
AES-OFB ⚠ ✅ ❌ ✅ ❌ ✅
AES-CFB ⚠ ✅ ❌ ✅ ❌ ✅
AES-CFB8 ⚠ ✅ ❌ ✅ ❌ ✅
Public-Key Encryption
RSA-OAEP ✅ ✅ ✅ ❌ ✅
RSA-PKCS1 ☣ ✅ ❌ ✅ ❌ ✅
RSA-RAW ☣ ✅ ❌ ✅ ❌ ✅
Key Agreement
ECDH ⭐ ✅ ✅ ❌ ✅ ✅
XDH ⭐ ✅ 9 ✅ 11 ❌ ✅ 12 ✅
DH ✅ ❌ ❌ ❌ ✅
Key Derivation
PBKDF2 ✅ ✅ ✅ ❌ ✅
HKDF ✅ ✅ ✅ ✅ ✅

  1. Requires BouncyCastle 

  2. Not available on Android; use BouncyCastle 

  3. Doesn’t support working with pre-hashed data 

  4. Requires JDK 15+; use BouncyCastle on older JDK or Android 

  5. Ed25519 only; browser support varies 

  6. Ed25519 only 

  7. 192-bit keys may not be supported in some browsers 

  8. 128-bit (default) tag only 

  9. Requires JDK 11+; use BouncyCastle on older JDK or Android 

  10. Only padding=true supported 

  11. X25519 only; browser support varies 

  12. X25519 only