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

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

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

ハイブリッド暗号化

実装 Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HPKE はい はい no no はい はい
ECIES と AEAD および HKDF 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. Android 19 以前では、AES-GCM が適切に機能しません。 

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

  3. NIST 曲線が必要です。 

  4. NIST 曲線が必要です。