Tipos de chave compatíveis com a linguagem

As tabelas a seguir listam os tipos de chave que cada primitiva oferece suporte, classificados por linguagem.

AEAD

Implementação Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-GCM sim sim sim sim sim sim
AES-GCM-SIV sim1 sim não não sim sim
AES-CTR-HMAC sim sim sim sim sim sim
AES-EAX sim sim sim sim não sim
KMS Envelope sim sim sim não sim sim
CHACHA20-POLY1305 sim não não não sim não
XCHACHA20-POLY1305 sim sim não sim sim sim

Streaming AEAD

Implementação Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-GCM-HKDF-STREAMING sim sim sim não sim sim
AES-CTR-HMAC-STREAMING sim sim sim não sim sim

Deterministic AEAD

Implementação Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-SIV sim sim sim sim sim sim

MAC

Implementação Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HMAC-SHA2 sim sim sim sim sim sim
AES-CMAC sim sim sim sim sim sim

PRF

Implementação Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HKDF-SHA2 sim sim sim não sim sim
HMAC-SHA2 sim sim sim não sim sim
AES-CMAC sim sim sim não sim sim

Assinatura

Implementação Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
ECDSA em curvas NIST sim sim sim sim sim sim
Ed25519 sim sim sim sim sim sim
RSA-SSA-PKCS1 sim sim sim sim sim sim
RSA-SSA-PSS sim sim sim sim sim sim
ML-DSA sim2 sim não não sim sim
SLH-DSA (SHA2-128S) sim3 sim não não sim sim

Criptografia híbrida

Implementação Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HPKE sim sim não não sim sim
ECIES com AEAD e HKDF sim4 sim sim sim sim sim
ECIES com DeterministicAEAD e HKDF sim5 sim sim não sim sim

JWT MAC

Implementação Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
JWT HMAC-SHA2 sim sim sim não sim sim

Assinatura JWT

Implementação Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
JWT ECDSA em curvas NIST sim sim sim não sim sim
JWT RSA-SSA-PKCS1 sim sim sim não sim sim
JWT RSA-SSA-PSS sim sim sim não sim sim

  1. O AES-GCM-SIV exige que o Conscrypt seja instalado como um provedor de segurança JCE.

  2. O ML-DSA exige que o Conscrypt seja instalado como um provedor de segurança JCE.

  3. O SLH-DSA exige que o Conscrypt seja instalado como um provedor de segurança JCE.

  4. O ECIES exige uma curva NIST.

  5. O ECIES exige uma curva NIST.