언어에서 지원하는 키 유형

다음 표에는 각 원시에서 지원하는 키 유형이 언어별로 분류되어 나열되어 있습니다.

AEAD

구현 자바 C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-GCM 1
AES-GCM-SIV 2 없음 없음
AES-CTR-HMAC
AES-EAX 없음
KMS 봉투 없음
CHACHA20-POLY1305 없음 없음 없음 없음
XCHACHA20-POLY1305 없음

스트리밍 AEAD

구현 자바 C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-GCM-HKDF-STREAMING 없음
AES-CTR-HMAC-STREAMING 없음

결정적 AEAD

구현 자바 C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-SIV

MAC

구현 자바 C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HMAC-SHA2
AES-CMAC

PRF

구현 자바 C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HKDF-SHA2 없음
HMAC-SHA2 없음
AES-CMAC 없음

서명

구현 자바 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) 아니요 아니요 아니요

하이브리드 암호화

구현 자바 C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HPKE 없음 없음
AEAD 및 HKDF를 사용하는 ECIES 3
결정적 AEAD 및 HKDF를 사용하는 ECIES 4 없음

JWT MAC

구현 자바 C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
JWT HMAC-SHA2 없음

JWT 서명

구현 자바 C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
NIST 곡선에 대한 JWT ECDSA 없음
JWT RSA-SSA-PKCS1 없음
JWT RSA-SSA-PSS 없음

  1. AES-GCM은 Android <=19에서 제대로 작동하지 않습니다. 

  2. Conscrypt가 JCE 보안 제공자로 설치되어야 합니다. 

  3. NIST 곡선이 필요합니다. 

  4. NIST 곡선이 필요합니다.