ประเภทคีย์ที่ภาษารองรับ

ตารางต่อไปนี้แสดงรายการประเภทคีย์ที่พื้นฐานแต่ละรายการรองรับ โดยแยกตามภาษา

AEAD

การใช้งาน Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-GCM ใช่1 ใช่ ใช่ ใช่ ใช่ ใช่
AES-GCM-SIV ใช่2 ใช่ ไม่ ไม่ ใช่ ใช่
CTR สำหรับ AES ใช่ ใช่ ใช่ ใช่ ใช่ ใช่
เอเอสอีเอ็กซ์ ใช่ ใช่ ใช่ ใช่ ไม่ ใช่
ซอง KMS ใช่ ใช่ ใช่ ไม่ ใช่ ใช่
ชาชา20-POLY1305 ใช่ ไม่ ไม่ ไม่ ใช่ ไม่
XCHACHA20-POLY1305 ใช่ ใช่ ไม่ ใช่ ใช่ ใช่

AEAD สตรีมมิง

การใช้งาน Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-GCM-HKDF-STREAMING ใช่ ใช่ ใช่ ไม่ ใช่ ใช่
AES-CTR-HMAC-STREAMING ใช่ ใช่ ใช่ ไม่ ใช่ ใช่

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 เหนือเส้นโค้ง NIST ใช่ ใช่ ใช่ ใช่ ใช่ ใช่
Ed25519 ใช่ ใช่ ใช่ ใช่ ใช่ ใช่
RSA-SSA-PKCS1 ใช่ ใช่ ใช่ ใช่ ใช่ ใช่
RSA-SSA-PSS ใช่ ใช่ ใช่ ใช่ ใช่ ใช่

การเข้ารหัสแบบผสม

การใช้งาน Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HPKE ใช่ ใช่ ไม่ ไม่ ใช่ ใช่
ECIES กับ AEAD และ HKDF ใช่3 ใช่ ใช่ ใช่ ใช่ ใช่
ECIES ที่มี AssignisticAEAD และ HKDF ใช่4 ใช่ ใช่ ไม่ ใช่ ใช่

MAC ของ JWT

การใช้งาน Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
JWT HMAC-SHA2 ใช่ ใช่ ใช่ ไม่ ใช่ ใช่

ลายเซ็น JWT

การใช้งาน Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
JWT ECDSA เหนือเส้นโค้ง NIST ใช่ ใช่ ใช่ ไม่ ใช่ ใช่
JWT RSA-SSA-PKCS1 ใช่ ใช่ ใช่ ไม่ ใช่ ใช่
JWT RSA-SSA-PSS ใช่ ใช่ ใช่ ไม่ ใช่ ใช่

  1. AES-GCM ไม่ทำงานอย่างถูกต้องใน Android <=19

  2. ต้องติดตั้ง Conscrypt เป็นผู้ให้บริการด้านความปลอดภัย JCE

  3. ต้องใช้เส้นโค้ง NIST

  4. ต้องใช้เส้นโค้ง NIST