Tipi di chiavi supportati dalla lingua

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
AES-GCM-SIV 2 no no
AES-CTR-HMAC
AES-EAX no
KMS Envelope no
CHACHA20-POLY1305 no no no no
XCHACHA20-POLY1305 no

Streaming AEAD

Implementazione Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-GCM-HKDF-STREAMING no
AES-CTR-HMAC-STREAMING no

AEAD deterministico

Implementazione Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-SIV

MAC

Implementazione Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HMAC-SHA2
AES-CMAC

PRF

Implementazione Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HKDF-SHA2 no
HMAC-SHA2 no
AES-CMAC no

Firma

Implementazione Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
ECDSA su curve NIST
Ed25519
RSA-SSA-PKCS1
RSA-SSA-PSS
ML-DSA yes (65) Sì (65, 87) no no Sì (44, 65, 87) no
SLH-DSA (SHA2-128S) no no no

Crittografia ibrida

Implementazione Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HPKE no no
ECIES con AEAD e HKDF 3
ECIES con DeterministicAEAD e HKDF 4 no

JWT MAC

Implementazione Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
JWT HMAC-SHA2 no

Firma JWT

Implementazione Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
JWT ECDSA su curve NIST no
JWT RSA-SSA-PKCS1 no
JWT RSA-SSA-PSS no

  1. AES-GCM non funziona correttamente su Android <=19. 

  2. Richiede l'installazione di Conscrypt come fornitore di sicurezza JCE. 

  3. Richiede una curva NIST. 

  4. Richiede una curva NIST.