Jostle Supported Algorithms¶
Author: Shubham Kumar
Published: January 27, 2026
This document provides a complete reference for all cryptographic operations supported in the OpenSSL Jostle provider.
Note: Some algorithms might be missed from the list below. Please refer to the source code for the most accurate and up-to-date information.
1. Symmetric Block Ciphers¶
Padding Pattern:
ECB/CBC modes support NoPadding, PKCS5Padding, PKCS7Padding.
Stream modes (CFB, OFB, CTR) and AEAD modes (GCM, CCM, OCB) support NoPadding only.
Special purpose modes (XTS, WRAP, WRAP_PAD) support NoPadding only.
AES (Advanced Encryption Standard)¶
Property |
Details |
|---|---|
Key Sizes |
128, 192, 256 bits |
Supported Block Modes |
ECB, CBC, CFB1, CFB8, CFB128, OFB, CTR, GCM, CCM, OCB, XTS, WRAP, WRAP_PAD |
Implementation |
|
Key Generator |
|
Configuration |
|
Unsupported Findings |
AES128: WRAP, WRAP_PAD, OCB, CCM (block_cipher_ctx.c) |
ARIA¶
Property |
Details |
|---|---|
Key Sizes |
128, 192, 256 bits |
Supported Block Modes |
ECB, CBC, CFB1, CFB8, CFB128, CTR, OFB, GCM, CCM |
Implementation |
|
Configuration |
|
Unsupported Findings |
ARIA128: CCM, GCM (block_cipher_ctx.c) |
CAMELLIA¶
Property |
Details |
|---|---|
Key Sizes |
128, 192, 256 bits |
Supported Block Modes |
ECB, CBC, CFB1, CFB8, CFB128, OFB, CTR |
Implementation |
|
Configuration |
SM4¶
Property |
Details |
|---|---|
Key Sizes |
128 bits |
Supported Block Modes |
ECB, CBC, CFB128, OFB, CTR |
Implementation |
|
Configuration |
2. Post-Quantum Cryptography¶
ML-DSA (Module-Lattice-Based Digital Signature Algorithm)¶
Property |
Details |
|---|---|
Parameter Sets |
ML-DSA-44, ML-DSA-65, ML-DSA-87 |
Security Levels |
ML-DSA-44: NIST Level 2 (128-bit) |
Signature Algorithms |
MLDSA (generic, uses key to determine parameter set) |
Implementation |
Key Pair Generator: MLDSAKeyPairGeneratorImpl.java |
Configuration |
SLH-DSA (Stateless Hash-Based Digital Signature Algorithm)¶
Property |
Details |
|---|---|
Parameter Sets |
SLH-DSA-SHA2-128S, SLH-DSA-SHA2-128F, SLH-DSA-SHA2-192S, SLH-DSA-SHA2-192F, SLH-DSA-SHA2-256S, SLH-DSA-SHA2-256F, SLH-DSA-SHAKE-128S, SLH-DSA-SHAKE-128F, SLH-DSA-SHAKE-192S, SLH-DSA-SHAKE-192F, SLH-DSA-SHAKE-256S, SLH-DSA-SHAKE-256F |
Hash Functions |
SHA2-based (6 variants), SHAKE-based (6 variants) |
Performance Variants |
S (Small): Smaller signature size, slower signing |
Security Levels |
128-bit (SLH-DSA-SHA2-128S/F, SLH-DSA-SHAKE-128S/F) |
Signature Algorithms |
SLHDSA (generic, uses key to determine parameter set) |
Implementation |
Key Pair Generator: SLHDSAKeyPairGenerator.java |
Configuration |
ML-KEM (Module-Lattice-Based Key Encapsulation Mechanism)¶
Property |
Details |
|---|---|
Parameter Sets |
ML-KEM-512, ML-KEM-768, ML-KEM-1024 |
Security Levels |
ML-KEM-512: NIST Level 1 (128-bit) |
Key Types |
KeyPairGenerator: MLKEM, ML-KEM-512, ML-KEM-768, ML-KEM-1024 |
Implementation |
Key Generator: MLKEMKeyGenerator.java |
Configuration |
3. Key Derivation Functions (KDF)¶
PBKDF2 (Password-Based Key Derivation Function 2)¶
Property |
Details |
|---|---|
Algorithm Names |
PBKDF2 (uses SHA-1 by default) |
HMAC Functions |
SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256 |
Implementation |
|
Configuration |
Scrypt¶
Property |
Details |
|---|---|
Algorithm Names |
SCRYPT |
Parameters |
N (CPU/memory cost), r (block size), p (parallelization) |
Implementation |
|
Configuration |
4. Algorithms Present But Not Exposed¶
The following algorithms exist in the codebase but are NOT registered in the provider configuration.
Symmetric Ciphers (Unexposed)¶
You can find these algorithms defined in OSSLCipher.java but they are not registered in the provider.
Algorithm |
Type |
Available Modes |
|---|---|---|
RC4 |
Stream |
N/A |
RC4_40 |
Stream |
N/A |
IDEA |
Block |
ECB, CFB64, OFB, CBC |
RC2 |
Block |
ECB, CBC, CFB64, OFB |
RC2_40 |
Block |
CBC |
RC2_64 |
Block |
CBC |
BlowFish |
Block |
ECB, CBC, CFB64, OFB |
CAST5 |
Block |
ECB, CBC, CFB64, OFB |
ChaCha20 |
Stream |
N/A |
ChaCha20-Poly1305 |
AEAD |
N/A |
SEED |
Block |
ECB, CBC, CFB128, OFB |
Signature Algorithms (Unexposed)¶
You can find these algorithms defined in SigAlgs.java but they are not registered in the provider.
Algorithm |
|---|
|
|
|
|
|
|
|
|
|
|
|
|