أنواع المفاتيح المتوافقة مع اللغة

تسرد الجداول التالية أنواع المفاتيح التي يدعمها كل نوع أساسي، مصنّفة حسب اللغة.

AEAD

التنفيذ جافا C++‎
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-GCM نعم نعم نعم نعم نعم نعم
AES-GCM-SIV yes1 نعم لا لا نعم نعم
AES-CTR-HMAC نعم نعم نعم نعم نعم نعم
AES-EAX نعم نعم نعم نعم لا نعم
KMS Envelope نعم نعم نعم لا نعم نعم
CHACHA20-POLY1305 نعم لا لا لا نعم لا
XCHACHA20-POLY1305 نعم نعم لا نعم نعم نعم

Streaming AEAD

التنفيذ جافا C++‎
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-GCM-HKDF-STREAMING نعم نعم نعم لا نعم نعم
AES-CTR-HMAC-STREAMING نعم نعم نعم لا نعم نعم

تشفير AEAD الحتمي

التنفيذ جافا C++‎
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-SIV نعم نعم نعم نعم نعم نعم

التحكم في الوصول للوسائط

التنفيذ جافا C++‎
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HMAC-SHA2 نعم نعم نعم نعم نعم نعم
AES-CMAC نعم نعم نعم نعم نعم نعم

PRF

التنفيذ جافا C++‎
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HKDF-SHA2 نعم نعم نعم لا نعم نعم
HMAC-SHA2 نعم نعم نعم لا نعم نعم
AES-CMAC نعم نعم نعم لا نعم نعم

التوقيع

التنفيذ جافا C++‎
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
توقيع ECDSA على منحنيات NIST نعم نعم نعم نعم نعم نعم
Ed25519 نعم نعم نعم نعم نعم نعم
RSA-SSA-PKCS1 نعم نعم نعم نعم نعم نعم
RSA-SSA-PSS نعم نعم نعم نعم نعم نعم
ML-DSA نعم2 نعم لا لا نعم نعم
ML-DSA (External Mu)3 لا نعم لا لا نعم لا
SLH-DSA (SHA2-128S) نعم4 نعم لا لا نعم نعم

التشفير المختلط

التنفيذ جافا C++‎
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HPKE نعم نعم لا لا نعم نعم
ECIES مع AEAD وHKDF نعم5 نعم نعم نعم نعم نعم
ECIES with DeterministicAEAD and HKDF نعم6 نعم نعم لا نعم نعم

عنوان MAC لرمز JWT

التنفيذ جافا C++‎
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
JWT HMAC-SHA2 نعم نعم نعم لا نعم نعم

توقيع JWT

التنفيذ جافا C++‎
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
توقيع ECDSA لرمز JWT على منحنيات NIST نعم نعم نعم لا نعم نعم
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.