언어에서 지원하는 키 유형

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

AEAD

구현 자바 C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
AES-GCM
AES-GCM-SIV 1 없음 없음
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 2 없음 없음
ML-DSA (외부 Mu)3 없음 없음 없음 없음
SLH-DSA (SHA2-128S) 4 없음 없음

하이브리드 암호화

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

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-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 곡선이 필요합니다.