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

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

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 はい はい はい

ストリーミング 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 あり(65) はい(65、87) × × あり(44、65、87) ×
SLH-DSA(SHA2-128S) はい はい × いいえ はい ×

ハイブリッド暗号化

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

  1. AES-GCM は Android <=19 では正しく動作しません。 

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

  3. NIST 曲線が必要です。 

  4. NIST 曲線が必要です。