Le tabelle seguenti elencano i tipi di chiavi supportati da ogni primitiva, classificati per lingua.
AEAD
| Implementazione | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| AES-GCM | yes1 | 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ì |
Streaming AEAD
| 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 |
|---|---|---|---|---|---|---|
| ECDSA su curve 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 | yes (65) | Sì (65, 87) | no | no | Sì (44, 65, 87) | no |
| SLH-DSA (SHA2-128S) | sì | sì | no | no | sì | no |
Crittografia ibrida
| Implementazione | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| HPKE | 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ì |
JWT MAC
| 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 fornitore di sicurezza JCE. ↩
-
Richiede una curva NIST. ↩
-
Richiede una curva NIST. ↩