Unterstützte Schlüsseltypen nach Sprache

In den folgenden Tabellen sind die Schlüsseltypen aufgeführt, die von den einzelnen Primitiven unterstützt werden, klassifiziert nach Sprache.

AEAD

Implementierung Java C++ 
(BoringSSL)
C++ 
(OpenSSL)
Objective-C Ok Python
AES-GCM Ja1 Ja Ja Ja Ja Ja
AES-GCM-SIV Ja2 Ja no no Ja Ja
AES-CTR-HMAC Ja Ja Ja Ja Ja Ja
AES-EAX Ja Ja Ja Ja no Ja
KMS-Umschlag Ja Ja Ja no Ja Ja
CHACHA20-POLY1305 Ja no no no Ja no
XCHACHA20-POLY1305 Ja Ja no Ja Ja Ja

Streaming-AEAD

Implementierung Java C++ 
(BoringSSL)
C++ 
(OpenSSL)
Objective-C Ok Python
AES-GCM-HKDF-STREAMING Ja Ja Ja no Ja Ja
AES-CTR-HMAC-STREAMING Ja Ja Ja no Ja Ja

Deterministisches AEAD

Implementierung Java C++ 
(BoringSSL)
C++ 
(OpenSSL)
Objective-C Ok Python
AES-SIV Ja Ja Ja Ja Ja Ja

MAC

Implementierung Java C++ 
(BoringSSL)
C++ 
(OpenSSL)
Objective-C Ok Python
HMAC-SHA2 Ja Ja Ja Ja Ja Ja
AES-CMAC Ja Ja Ja Ja Ja Ja

PRF

Implementierung Java C++ 
(BoringSSL)
C++ 
(OpenSSL)
Objective-C Ok Python
HKDF-SHA2 Ja Ja Ja no Ja Ja
HMAC-SHA2 Ja Ja Ja no Ja Ja
AES-CMAC Ja Ja Ja no Ja Ja

Unterschrift

Implementierung Java C++ 
(BoringSSL)
C++ 
(OpenSSL)
Objective-C Ok Python
ECDSA über NIST-Kurven Ja Ja Ja Ja Ja Ja
Ed25519 Ja Ja Ja Ja Ja Ja
RSA-SSA-PKCS1 Ja Ja Ja Ja Ja Ja
RSA-SSA-PSS Ja Ja Ja Ja Ja Ja
ML-DSA Ja3 Ja no no Ja Ja
SLH-DSA (SHA2-128S) Ja4 Ja no no Ja Ja

Hybridverschlüsselung

Implementierung Java C++ 
(BoringSSL)
C++ 
(OpenSSL)
Objective-C Ok Python
HPKE Ja Ja no no Ja Ja
ECIES mit AEAD und HKDF Ja5 Ja Ja Ja Ja Ja
ECIES mit DeterministicAEAD und HKDF Ja6 Ja Ja no Ja Ja

JWT-MAC

Implementierung Java C++ 
(BoringSSL)
C++ 
(OpenSSL)
Objective-C Ok Python
JWT HMAC-SHA2 Ja Ja Ja no Ja Ja

JWT-Signatur

Implementierung Java C++ 
(BoringSSL)
C++ 
(OpenSSL)
Objective-C Ok Python
JWT ECDSA über NIST-Kurven Ja Ja Ja no Ja Ja
JWT RSA-SSA-PKCS1 Ja Ja Ja no Ja Ja
JWT RSA-SSA-PSS Ja Ja Ja no Ja Ja

  1. AES-GCM funktioniert auf Android <=19 nicht richtig

  2. Für AES-GCM-SIV muss Conscrypt als JCE-Sicherheitsanbieter installiert sein. 

  3. Für ML-DSA muss Conscrypt als JCE-Sicherheitsanbieter installiert sein. 

  4. Für SLH-DSA muss Conscrypt als JCE-Sicherheitsanbieter installiert sein. 

  5. Für ECIES ist eine NIST-Kurve erforderlich. 

  6. Für ECIES ist eine NIST-Kurve erforderlich.