Les tableaux suivants listent les types de clés compatibles avec chaque primitive, classés par langue.
AEAD
| Implémentation | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| AES-GCM | Oui1 | oui | oui | oui | oui | oui |
| AES-GCM-SIV | Oui2 | oui | no | no | oui | oui |
| AES-CTR-HMAC | oui | oui | oui | oui | oui | oui |
| AES-EAX | oui | oui | oui | oui | no | oui |
| Enveloppe KMS | oui | oui | oui | no | oui | oui |
| CHACHA20-POLY1305 | oui | no | no | no | oui | no |
| XCHACHA20-POLY1305 | oui | oui | no | oui | oui | oui |
Streaming AEAD
| Implémentation | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| AES-GCM-HKDF-STREAMING | oui | oui | oui | no | oui | oui |
| AES-CTR-HMAC-STREAMING | oui | oui | oui | no | oui | oui |
AEAD déterministe
| Implémentation | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| AES-SIV | oui | oui | oui | oui | oui | oui |
Mac
| Implémentation | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| HMAC-SHA2 | oui | oui | oui | oui | oui | oui |
| AES-CMAC | oui | oui | oui | oui | oui | oui |
PRF
| Implémentation | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| HKDF-SHA2 | oui | oui | oui | no | oui | oui |
| HMAC-SHA2 | oui | oui | oui | no | oui | oui |
| AES-CMAC | oui | oui | oui | no | oui | oui |
Signature
| Implémentation | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| ECDSA sur les courbes NIST | oui | oui | oui | oui | oui | oui |
| Ed25519 | oui | oui | oui | oui | oui | oui |
| RSA-SSA-PKCS1 | oui | oui | oui | oui | oui | oui |
| RSA-SSA-PSS | oui | oui | oui | oui | oui | oui |
| ML-DSA | Oui3 | oui | no | no | oui | oui |
| SLH-DSA (SHA2-128S) | Oui4 | oui | no | no | oui | oui |
Chiffrement hybride
| Implémentation | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| HPKE | oui | oui | no | no | oui | oui |
| ECIES avec AEAD et HKDF | Oui5 | oui | oui | oui | oui | oui |
| ECIES avec DeterministicAEAD et HKDF | Oui6 | oui | oui | no | oui | oui |
JWT MAC
| Implémentation | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| JWT HMAC-SHA2 | oui | oui | oui | no | oui | oui |
Signature JWT
| Implémentation | Java | C++ (BoringSSL) |
C++ (OpenSSL) |
Objective-C | Go | Python |
|---|---|---|---|---|---|---|
| JWT ECDSA sur les courbes NIST | oui | oui | oui | no | oui | oui |
| JWT RSA-SSA-PKCS1 | oui | oui | oui | no | oui | oui |
| JWT RSA-SSA-PSS | oui | oui | oui | no | oui | oui |
-
AES-GCM ne fonctionne pas correctement sur Android 19 ou version antérieure. ↩
-
AES-GCM-SIV nécessite que Conscrypt soit installé en tant que fournisseur de sécurité JCE. ↩
-
ML-DSA nécessite l'installation de Conscrypt en tant que fournisseur de sécurité JCE. ↩
-
SLH-DSA nécessite l'installation de Conscrypt en tant que fournisseur de sécurité JCE. ↩
-
ECIES nécessite une courbe NIST. ↩
-
ECIES nécessite une courbe NIST. ↩