Các loại khoá được hỗ trợ theo ngôn ngữ

Các bảng sau đây liệt kê các loại khoá chính mà mỗi nguyên hàm hỗ trợ, được phân loại theo ngôn ngữ.

AEAD

Triển khai Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-GCM 1
AES-GCM-SIV 2 không không
AES-CTR-HMAC
AES-EAX không
KMS Envelope không
CHACHA20-POLY1305 không không không không
XCHACHA20-POLY1305 không

Truyền trực tuyến AEAD

Triển khai Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-GCM-HKDF-STREAMING không
AES-CTR-HMAC-STREAMING không

AEAD xác định

Triển khai Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-SIV

MAC

Triển khai Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HMAC-SHA2
AES-CMAC

PRF

Triển khai Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HKDF-SHA2 không
HMAC-SHA2 không
AES-CMAC không

Chữ ký

Triển khai Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
ECDSA trên các đường cong NIST
Ed25519
RSA-SSA-PKCS1
RSA-SSA-PSS
ML-DSA 3 không không
SLH-DSA (SHA2-128S) 4 không không

Mã hoá kết hợp

Triển khai Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HPKE không không
ECIES có AEAD và HKDF 5
ECIES có DeterministicAEAD và HKDF 6 không

JWT MAC

Triển khai Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
JWT HMAC-SHA2 không

Chữ ký JWT

Triển khai Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
JWT ECDSA trên các đường cong NIST không
JWT RSA-SSA-PKCS1 không
JWT RSA-SSA-PSS không

  1. AES-GCM hoạt động không đúng cách trên Android <=19.

  2. AES-GCM-SIV yêu cầu cài đặt Conscrypt làm nhà cung cấp bảo mật JCE.

  3. ML-DSA yêu cầu cài đặt Conscrypt làm nhà cung cấp bảo mật JCE.

  4. SLH-DSA yêu cầu cài đặt Conscrypt làm nhà cung cấp bảo mật JCE.

  5. ECIES yêu cầu đường cong NIST.

  6. ECIES yêu cầu đường cong NIST.