語言支援的金鑰類型

下表列出各基本型別支援的主要型別,並依語言分類。

AEAD

導入作業 Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-GCM 是 是 是 是 是 是
AES-GCM-SIV 是1 是 否 否 是 是
AES-CTR-HMAC 是 是 是 是 是 是
AES-EAX 是 是 是 是 否 是
KMS 信封 是 是 是 否 是 是
CHACHA20-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
NIST 曲線上的 ECDSA 是 是 是 是 是 是
Ed25519 是 是 是 是 是 是
RSA-SSA-PKCS1 是 是 是 是 是 是
RSA-SSA-PSS 是 是 是 是 是 是
ML-DSA 是2 是 否 否 是 是
ML-DSA (外部 Mu)3 否 是 否 否 是 是
SLH-DSA (SHA2-128S) 是4 是 否 否 是 是

混合式加密

導入作業 Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HPKE 是 是 否 否 是 是
使用 AEAD 和 HKDF 的 ECIES 是5 是 是 是 是 是
ECIES,搭配 DeterministicAEAD 和 HKDF 是6 是 是 否 是 是

JWT MAC

導入作業 Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
JWT HMAC-SHA2 是 是 是 否 是 是

JWT 簽章

導入作業 Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
透過 NIST 曲線的 JWT ECDSA 是 是 是 否 是 是
JWT RSA-SSA-PKCS1 是 是 是 否 是 是
JWT RSA-SSA-PSS 是 是 是 否 是 是

  1. AES-GCM-SIV 需要安裝 Conscrypt 做為 JCE 安全性供應商。 ↩

  2. ML-DSA 需要安裝 Conscrypt 做為 JCE 安全性供應商。 ↩

  3. 外部 Mu 模式的 ML-DSA 是透過 Prehash 和 SignPrehash 基本型別使用,且需要具有 ID 需求的變體:TINK 或 NO_PREFIX_WITH_PREHASH_ID。 ↩

  4. SLH-DSA 需要安裝 Conscrypt 做為 JCE 安全性供應商。 ↩

  5. ECIES 需要 NIST 曲線。 ↩

  6. ECIES 需要 NIST 曲線。 ↩