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

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

AEAD

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

סטרימינג AEAD

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

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 כן כן כן לא כן כן
HMAC-SHA2 כן כן כן לא כן כן
AES-CMAC כן כן כן לא כן כן

חתימה

הטמעה Java ‫C++‎
(BoringSSL)
‫C++
(OpenSSL)
Objective-C Go Python
ECDSA over NIST curves כן כן כן כן כן כן
Ed25519 כן כן כן כן כן כן
RSA-SSA-PKCS1 כן כן כן כן כן כן
RSA-SSA-PSS כן כן כן כן כן כן
ML-DSA כן2 כן לא לא כן כן
‫ML-DSA (External Mu)3 לא כן לא לא כן לא
SLH-DSA (SHA2-128S) כן4 כן לא לא כן כן

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

הטמעה Java ‫C++‎
(BoringSSL)
‫C++
(OpenSSL)
Objective-C Go Python
HPKE כן כן לא לא כן כן
ECIES עם AEAD ו-HKDF כן5 כן כן כן כן כן
ECIES עם DeterministicAEAD ו-HKDF כן6 כן כן לא כן כן

JWT MAC

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

JWT Signature

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

  1. כדי להשתמש ב-AES-GCM-SIV, צריך להתקין את Conscrypt כספק אבטחה של JCE. 

  2. כדי להשתמש ב-ML-DSA, צריך להתקין את Conscrypt כספק אבטחה של JCE. 

  3. משתמשים ב-ML-DSA במצב External Mu באמצעות הפרימיטיבים Prehash ו-SignPrehash, ונדרש וריאנט עם דרישת מזהה: TINK או NO_PREFIX_WITH_PREHASH_ID

  4. כדי להשתמש ב-SLH-DSA, צריך להתקין את Conscrypt כספק אבטחה של JCE. 

  5. ‫ECIES דורש עקומת NIST. 

  6. ‫ECIES דורש עקומת NIST.