סוגי מפתחות נתמכים לפי שפה

בטבלאות הבאות מפורטים סוגי המפתחות שכל פרימיטיב תומך בהם, לפי שפה.

AEAD

הטמעה Java ‫C++‎
(BoringSSL)
‫C++
(OpenSSL)
Objective-C Go Python
AES-GCM כן1 כן כן כן כן כן
AES-GCM-SIV כן2 כן no no כן כן
AES-CTR-HMAC כן כן כן כן כן כן
AES-EAX כן כן כן כן no כן
KMS Envelope כן כן כן no כן כן
CHACHA20-POLY1305 כן no no no כן no
XCHACHA20-POLY1305 כן כן no כן כן כן

הצפנה מאומתת עם הצפנה בסטרימינג

הטמעה Java ‫C++‎
(BoringSSL)
‫C++
(OpenSSL)
Objective-C Go Python
AES-GCM-HKDF-STREAMING כן כן כן no כן כן
AES-CTR-HMAC-STREAMING כן כן כן no כן כן

Deterministic AEAD

הטמעה Java ‫C++‎
(BoringSSL)
‫C++
(OpenSSL)
Objective-C Go Python
AES-SIV כן כן כן כן כן כן

MAC

הטמעה Java ‫C++‎
(BoringSSL)
‫C++
(OpenSSL)
Objective-C Go Python
HMAC-SHA2 כן כן כן כן כן כן
AES-CMAC כן כן כן כן כן כן

PRF

הטמעה Java ‫C++‎
(BoringSSL)
‫C++
(OpenSSL)
Objective-C Go Python
HKDF-SHA2 כן כן כן no כן כן
HMAC-SHA2 כן כן כן no כן כן
AES-CMAC כן כן כן no כן כן

חתימה

הטמעה Java ‫C++‎
(BoringSSL)
‫C++
(OpenSSL)
Objective-C Go Python
‫ECDSA over NIST curves כן כן כן כן כן כן
Ed25519 כן כן כן כן כן כן
RSA-SSA-PKCS1 כן כן כן כן כן כן
RSA-SSA-PSS כן כן כן כן כן כן
ML-DSA כן (65) כן (65, 87) לא לא כן (44, ‏ 65, ‏ 87) לא
SLH-DSA (SHA2-128S) כן כן לא לא כן לא

הצפנה היברידית

הטמעה Java ‫C++‎
(BoringSSL)
‫C++
(OpenSSL)
Objective-C Go Python
HPKE כן כן no no כן כן
ECIES עם AEAD ו-HKDF כן3 כן כן כן כן כן
ECIES עם DeterministicAEAD ו-HKDF כן4 כן כן no כן כן

JWT MAC

הטמעה Java ‫C++‎
(BoringSSL)
‫C++
(OpenSSL)
Objective-C Go Python
JWT HMAC-SHA2 כן כן כן no כן כן

חתימת JWT

הטמעה Java ‫C++‎
(BoringSSL)
‫C++
(OpenSSL)
Objective-C Go Python
‫JWT ECDSA over NIST curves כן כן כן no כן כן
JWT RSA-SSA-PKCS1 כן כן כן no כן כן
JWT RSA-SSA-PSS כן כן כן no כן כן

  1. ‫AES-GCM לא פועל כמו שצריך ב-Android בגרסה ‎ <=19. 

  2. נדרשת התקנה של Conscrypt כספק אבטחה של JCE. 

  3. נדרשת עקומת NIST. 

  4. נדרשת עקומת NIST.