En las siguientes tablas, se enumeran los tipos de claves que admite cada primitiva , clasificados por lenguaje.
AEAD
| Implementación | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| AES-GCM | sí1 | sí | sí | sí | sí | sí |
| AES-GCM-SIV | sí2 | sí | no | no | sí | sí |
| AES-CTR-HMAC | sí | sí | sí | sí | sí | sí |
| AES-EAX | sí | sí | sí | sí | no | sí |
| KMS Envelope | sí | sí | sí | no | sí | sí |
| CHACHA20-POLY1305 | sí | no | no | no | sí | no |
| XCHACHA20-POLY1305 | sí | sí | no | sí | sí | sí |
AEAD de transmisión
| Implementación | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| AES-GCM-HKDF-STREAMING | sí | sí | sí | no | sí | sí |
| AES-CTR-HMAC-STREAMING | sí | sí | sí | no | sí | sí |
AEAD determinístico
| Implementación | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| AES-SIV | sí | sí | sí | sí | sí | sí |
MAC
| Implementación | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| HMAC-SHA2 | sí | sí | sí | sí | sí | sí |
| AES-CMAC | sí | sí | sí | sí | sí | sí |
PRF
| Implementación | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| HKDF-SHA2 | sí | sí | sí | no | sí | sí |
| HMAC-SHA2 | sí | sí | sí | no | sí | sí |
| AES-CMAC | sí | sí | sí | no | sí | sí |
Firma
| Implementación | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| ECDSA sobre curvas NIST | sí | sí | sí | sí | sí | sí |
| Ed25519 | sí | sí | sí | sí | sí | sí |
| RSA-SSA-PKCS1 | sí | sí | sí | sí | sí | sí |
| RSA-SSA-PSS | sí | sí | sí | sí | sí | sí |
| ML-DSA | sí3 | sí | no | no | sí | sí |
| SLH-DSA (SHA2-128S) | sí4 | sí | no | no | sí | sí |
Encriptación híbrida
| Implementación | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| HPKE | sí | sí | no | no | sí | sí |
| ECIES con AEAD y HKDF | sí5 | sí | sí | sí | sí | sí |
| ECIES con DeterministicAEAD y HKDF | sí6 | sí | sí | no | sí | sí |
MAC de JWT
| Implementación | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| JWT HMAC-SHA2 | sí | sí | sí | no | sí | sí |
Firma de JWT
| Implementación | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| JWT ECDSA sobre curvas NIST | sí | sí | sí | no | sí | sí |
| JWT RSA-SSA-PKCS1 | sí | sí | sí | no | sí | sí |
| JWT RSA-SSA-PSS | sí | sí | sí | no | sí | sí |
-
AES-GCM no funciona correctamente en Android <=19. ↩
-
AES-GCM-SIV requiere que Conscrypt se instale como proveedor de seguridad JCE. ↩
-
ML-DSA requiere que Conscrypt se instale como proveedor de seguridad JCE. ↩
-
SLH-DSA requiere que Conscrypt se instale como proveedor de seguridad JCE. ↩
-
ECIES requiere una curva NIST. ↩
-
ECIES requiere una curva NIST. ↩