Conscrypt's Capabilities
May 27, 2026 ยท View on GitHub
Conscrypt is relatively selective in choosing the set of primitives to provide, focusing on the most important and widely-used algorithms. Following is a list of JCA algorithm names and other identifiers that are supported by Conscrypt.
TLS
Protocol Versions
SSLv3(ignored)TLSv1TLSv1.1TLSv1.2TLSv1.3
Conscrypt supports TLS v1.0-1.3. For backwards compatibility it will accept
SSLv3 in calls to methods like
setEnabledProtocols()
but will ignore it.
SSLContext
DefaultSSLTLSTLSv1TLSv1.1TLSv1.2TLSv1.3
Conscrypt provides the above set of SSLContext algorithm names for JSSE
purposes, including the special value Default, which is used to determine the
value of
SSLContext.getDefault().
The Default, SSL, TLS, and TLSv1.3 values return a context where TLS
v1.0-1.3 are all enabled; the others return a context with TLS v1.0-1.2 enabled.
Cipher Suites
Enabled
- TLS 1.0-1.2
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHATLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHATLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256TLS_ECDHE_RSA_WITH_AES_128_CBC_SHATLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_RSA_WITH_AES_256_CBC_SHATLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256TLS_RSA_WITH_AES_128_CBC_SHATLS_RSA_WITH_AES_128_GCM_SHA256TLS_RSA_WITH_AES_256_CBC_SHATLS_RSA_WITH_AES_256_GCM_SHA384
- TLS 1.3
TLS_AES_128_GCM_SHA256TLS_AES_256_GCM_SHA384TLS_CHACHA20_POLY1305_SHA256
The above cipher suites are enabled by default when the associated version of
the protocol is enabled. The TLS 1.3 cipher suites cannot be customized; they
are always enabled when TLS 1.3 is enabled, and any attempt to disable them via
a call to
setEnabledCipherSuites()
is ignored.
Supported But Not Enabled
- TLS 1.0-1.2
SSL_RSA_WITH_3DES_EDE_CBC_SHATLS_ECDHE_PSK_WITH_AES_128_CBC_SHATLS_ECDHE_PSK_WITH_AES_256_CBC_SHATLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256TLS_PSK_WITH_AES_128_CBC_SHATLS_PSK_WITH_AES_256_CBC_SHA
The above cipher suites are supported, but not enabled by default. TLS 1.3 cipher suites cannot be customized, so there are no cipher suites that are supported but not enabled.
Supported Named Groups
These can be set with SSLParameters::setNamedGroups or by setting the system
property jdk.tls.namedGroups.
X25519P-256(secp256r1)P-384(secp384r1)P-521(secp521r1)X25519MLKEM768X25519Kyber768Draft00MLKEM1024
X25519, P-256 and P-384 are enabled by default.
Cryptography
Cipher
AES/CBC/NoPaddingAES/CBC/PKCS5PaddingAES/CTR/NoPaddingAES/ECB/NoPaddingAES/ECB/PKCS5PaddingAES/GCM-SIV/NoPadding
AES with 128, 192, or 256-bit keys.
AES/GCM/NoPadding
AES/GCM with 128 or 256-bit keys.
AES_128/CBC/NoPaddingAES_128/CBC/PKCS5PaddingAES_128/ECB/NoPaddingAES_128/ECB/PKCS5PaddingAES_128/GCM/NoPaddingAES_128/GCM-SIV/NoPaddingAES_256/CBC/NoPaddingAES_256/CBC/PKCS5PaddingAES_256/ECB/NoPaddingAES_256/ECB/PKCS5PaddingAES_256/GCM/NoPaddingAES_256/GCM-SIV/NoPadding
Key-restricted versions of the AES ciphers.
ARC4
The RC4 stream cipher.
ChaCha20/NONE/NoPaddingChaCha20/Poly1305/NoPadding
ChaCha with 20 rounds, 96-bit nonce, and 32-bit counter as described in RFC 7539, either with or without a Poly1305 AEAD authenticator.
DESEDE/CBC/NoPaddingDESEDE/CBC/PKCS5Padding
Triple DES with either two or three intermediate keys.
RSA/ECB/NoPaddingRSA/ECB/OAEPPaddingRSA/ECB/OAEPWithSHA-1AndMGF1PaddingRSA/ECB/OAEPWithSHA-224AndMGF1PaddingRSA/ECB/OAEPWithSHA-256AndMGF1PaddingRSA/ECB/OAEPWithSHA-384AndMGF1PaddingRSA/ECB/OAEPWithSHA-512AndMGF1PaddingRSA/ECB/PKCS1Padding
Conscrypt's OAEP ciphers (eg, RSA/ECB/OAEPWithSHA-256AndMGF1Padding) use the
named digest for both the main digest and the MGF1 digest. This differs from
the behavior of some other providers, including the ones bundled with OpenJDK,
which always use SHA-1 for the MGF1 digest. For maximum compatibility, you
should use RSA/ECB/OAEPPadding and initialize it with an
OAEPParameterSpec.
AlgorithmParameters
AESChaCha20DESEDEECGCMOAEPPSS
Conscrypt's EC AlgorithmParameters implementation only supports named curves.
CertificateFactory
X509
KeyAgreement
ECDH
KeyFactory
ECRSAXDHX25519EdDSAEd25519ML-DSAML-DSA-44ML-DSA-65ML-DSA-87SLH-DSA-SHA2-128SML-KEMML-KEM-768ML-KEM-1024XWING
KeyGenerator
AESARC4ChaCha20DESEDEHmacMD5HmacSHA1HmacSHA224HmacSHA256HmacSHA384HmacSHA512
KeyPairGenerator
ECRSAXDHX25519EdDSAEd25519ML-DSAML-DSA-44ML-DSA-65ML-DSA-87SLH-DSA-SHA2-128SML-KEMML-KEM-768ML-KEM-1024XWING
Mac
HmacMD5HmacSHA1HmacSHA224HmacSHA256HmacSHA384HmacSHA512
MessageDigest
MD5SHA-1SHA-224SHA-256SHA-384SHA-512
SecretKeyFactory
DESEDE
SecureRandom
SHA1PRNG
Signature
MD5withRSANONEwithECDSANONEwithRSASHA1withRSASHA1withECDSASHA1withRSA/PSSSHA224withRSASHA224withECDSASHA224withRSA/PSSSHA256withRSASHA256withECDSASHA256withRSA/PSSSHA384withRSASHA384withECDSASHA384withRSA/PSSSHA512withRSASHA512withECDSASHA512withRSA/PSSEdDSAEd25519ML-DSAML-DSA-44ML-DSA-65ML-DSA-87SLH-DSA-SHA2-128S
ECDSA Elliptic Curves
Conscrypt supports the following curves in ECDSA signatures:
secp224r1secp256r1(prime256v1)secp384r1secp521r1