Le seguenti tabelle elencano i tipi di chiavi supportati da ciascuna primitiva, classificati per lingua.
AEAD
Implementazione | 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ì |
Busta KMS | sì | sì | sì | NO | sì | sì |
CHACHA20-POLY1305 | sì | NO | NO | NO | sì | NO |
XCHACHA20-POLY1305 | sì | sì | NO | sì | sì | sì |
AEAD streaming
Implementazione | 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 deterministico
Implementazione | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
---|---|---|---|---|---|---|
AES-SIV | sì | sì | sì | sì | sì | sì |
MAC
Implementazione | 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
Implementazione | 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
Implementazione | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
---|---|---|---|---|---|---|
Curve ECDSA su 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ì |
Crittografia ibrida
Implementazione | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
---|---|---|---|---|---|---|
HPKE (computing ad alte prestazioni) | sì | sì | NO | NO | sì | sì |
ECIES con AEAD e HKDF | sì3 | sì | sì | sì | sì | sì |
ECIES con DeterministicAEAD e HKDF | sì4 | sì | sì | NO | sì | sì |
MAC JWT
Implementazione | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
---|---|---|---|---|---|---|
JWT HMAC-SHA2 | sì | sì | sì | NO | sì | sì |
Firma JWT
Implementazione | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
---|---|---|---|---|---|---|
JWT ECDSA su curve 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 non funziona correttamente su Android <=19. ↩
-
Richiede l'installazione di Conscrypt come provider di sicurezza JCE. ↩
-
Richiede una curva NIST. ↩
-
Richiede una curva NIST. ↩