言語でサポートされているキータイプ

次の表に、各プリミティブ がサポートする鍵タイプを言語別に示します。

AEAD

実装 Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-GCM はい はい はい はい
AES-GCM-SIV はい1 no no はい
AES-CTR-HMAC はい はい はい はい
AES-EAX はい はい はい no
KMS Envelope はい はい no はい
CHACHA20-POLY1305 no no no はい no
XCHACHA20-POLY1305 はい no はい はい

ストリーミング 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
NIST 曲線上の ECDSA はい はい はい はい
Ed25519 はい はい はい はい
RSA-SSA-PKCS1 はい はい はい はい
RSA-SSA-PSS はい はい はい はい
ML-DSA はい2 no no はい
SLH-DSA(SHA2-128S) はい3 no no はい

ハイブリッド暗号化

実装 Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HPKE はい no no はい
AEAD と HKDF を使用した ECIES はい4 はい はい はい
DeterministicAEAD と HKDF を使用した ECIES はい5 はい 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
NIST 曲線上の JWT ECDSA はい はい no はい
JWT RSA-SSA-PKCS1 はい はい no はい
JWT RSA-SSA-PSS はい はい no はい

  1. AES-GCM-SIV では、Conscrypt を JCE セキュリティ プロバイダとしてインストールする必要があります。

  2. ML-DSA では、Conscrypt を JCE セキュリティ プロバイダとしてインストールする必要があります。

  3. SLH-DSA では、Conscrypt を JCE セキュリティ プロバイダとしてインストールする必要があります。

  4. ECIES には NIST 曲線が必要です。

  5. ECIES には NIST 曲線が必要です。