Typy kluczy obsługiwane przez język

W tabelach poniżej znajdziesz typy kluczy obsługiwane przez poszczególne elementy podstawowe, sklasyfikowane według języka.

program AEAD,

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

Strumieniowe przesyłanie 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

Szyfrowanie hybrydowe

Implementacja Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HPKE tak tak no no tak tak
ECIES z AEAD i HKDF tak3 tak tak tak tak tak
ECIES z DeterminismAEAD i HKDF tak4 tak tak no tak tak

Adres MAC JWT

Implementacja Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HMAC-SHA2 tokena JWT 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 nie działa prawidłowo na Androidzie w wersji <=19. 

  2. Wymaga zainstalowania Conscrypt jako dostawcy zabezpieczeń JCE. 

  3. Wymaga krzywej NIST. 

  4. Wymaga krzywej NIST.