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

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

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 エンベロープ はい はい 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 はい
ML-DSA(外部 Mu)3 no はい no no はい
SLH-DSA(SHA2-128S) はい4 はい no no はい

ハイブリッド暗号化

実装 Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HPKE はい はい no no はい
AEAD と HKDF を使用した ECIES はい5 はい はい
DeterministicAEAD と HKDF を使用した ECIES はい6 はい はい 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. 外部 Mu モードの ML-DSA は、Prehash プリミティブと SignPrehash プリミティブを介して使用されます。ID 要件(TINK または NO_PREFIX_WITH_PREHASH_ID)のあるバリアントが必要です。 

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

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

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