ตารางต่อไปนี้แสดงรายการประเภทคีย์ที่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 | ใช่ | ใช่ |
-
AES-GCM ทำงานไม่ถูกต้องใน Android <=19 ↩
-
ต้องติดตั้ง Conscrypt เป็นผู้ให้บริการความปลอดภัย JCE ↩
-
ต้องใช้เส้นโค้ง NIST ↩
-
ต้องใช้เส้นโค้ง NIST ↩