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