Typy kluczy obsługiwane przez język

W tabelach poniżej znajdziesz listę typów kluczy obsługiwanych przez poszczególne elementy podstawowe, podzieloną według języka.

AEAD

Implementacja Java C++ 
(BoringSSL)
C++ 
(OpenSSL)
Objective-C Go Python
AES-GCM tak tak tak tak tak tak
AES-GCM-SIV tak1 tak no no tak tak
AES-CTR-HMAC tak tak tak tak tak tak
AES-EAX tak tak tak tak no tak
KMS Envelope tak tak tak no tak tak
CHACHA20-POLY1305 tak no no no tak no
XCHACHA20-POLY1305 tak tak no tak tak tak

Strumieniowe AEAD

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

Deterministyczne AEAD

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

MAC

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

PRF

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

Podpis

Implementacja Java C++ 
(BoringSSL)
C++ 
(OpenSSL)
Objective-C Go Python
ECDSA na krzywych NIST tak tak tak tak tak tak
Ed25519 tak tak tak tak tak tak
RSA-SSA-PKCS1 tak tak tak tak tak tak
RSA-SSA-PSS tak tak tak tak tak tak
ML-DSA tak2 tak no no tak tak
ML-DSA (External Mu)3 no tak no no tak no
SLH-DSA (SHA2-128S) tak4 tak no no tak tak

Szyfrowanie hybrydowe

Implementacja Java C++ 
(BoringSSL)
C++ 
(OpenSSL)
Objective-C Go Python
HPKE tak tak no no tak tak
ECIES z AEAD i HKDF tak5 tak tak tak tak tak
ECIES z DeterministicAEAD i HKDF tak6 tak tak no tak tak

JWT MAC

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

Podpis JWT

Implementacja Java C++ 
(BoringSSL)
C++ 
(OpenSSL)
Objective-C Go Python
JWT ECDSA na krzywych NIST tak tak tak no tak tak
JWT RSA-SSA-PKCS1 tak tak tak no tak tak
JWT RSA-SSA-PSS tak tak tak no tak tak

  1. AES-GCM-SIV wymaga zainstalowania biblioteki Conscrypt jako dostawcy zabezpieczeń JCE. 

  2. ML-DSA wymaga zainstalowania biblioteki Conscrypt jako dostawcy zabezpieczeń JCE. 

  3. ML-DSA w trybie External Mu jest używany za pomocą elementów pierwotnych Prehash i SignPrehash i wymaga wariantu z wymaganiem identyfikatora: TINK lub NO_PREFIX_WITH_PREHASH_ID

  4. SLH-DSA wymaga zainstalowania biblioteki Conscrypt jako dostawcy zabezpieczeń JCE. 

  5. ECIES wymaga krzywej NIST. 

  6. ECIES wymaga krzywej NIST.