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

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

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 ใช่ ใช่ค่ะ ใช่ no ใช่ ใช่
CHACHA20-POLY1305 ใช่ no no no ใช่ no
XCHACHA20-POLY1305 ใช่ ใช่ no ใช่ ใช่ค่ะ ใช่

Streaming AEAD

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

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 บนเส้นโค้ง NIST ใช่ ใช่ค่ะ ใช่ค่ะ ใช่ค่ะ ใช่ค่ะ ใช่
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 บนเส้นโค้ง NIST ใช่ ใช่ค่ะ ใช่ no ใช่ ใช่
JWT RSA-SSA-PKCS1 ใช่ ใช่ค่ะ ใช่ no ใช่ ใช่
JWT RSA-SSA-PSS ใช่ ใช่ค่ะ ใช่ no ใช่ ใช่

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

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

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

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