En las siguientes tablas, se enumeran los tipos de claves que admite cada primitiva, clasificadas 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í |
| Sobre de KMS | 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 en curvas de 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í (65) | Sí (65, 87) | no | no | Sí (44, 65, 87) | no |
| SLH-DSA (SHA2-128S) | sí | sí | no | no | sí | no |
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í3 | sí | sí | sí | sí | sí |
| ECIES con DeterministicAEAD y HKDF | Sí4 | sí | sí | no | sí | sí |
MAC de JWT
| Implementación | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| HMAC-SHA2 de JWT | sí | sí | sí | no | sí | sí |
Firma de JWT
| Implementación | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| ECDSA de JWT en 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. ↩
-
Requiere que Conscrypt se instale como proveedor de seguridad de JCE. ↩
-
Requiere una curva NIST. ↩
-
Requiere una curva NIST. ↩