언어에서 지원하는 키 유형

다음 표에는 각 기본 요소 가 지원하는 키 유형이 언어별로 분류되어 있습니다.

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 3 아니요 아니요
SLH-DSA (SHA2-128S) 4 아니요 아니요

하이브리드 암호화

구현 자바 C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Go Python
HPKE 아니요 아니요
AEAD 및 HKDF가 포함된 ECIES 5
DeterministicAEAD 및 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은 Android <=19에서 제대로 작동하지 않습니다.

  2. AES-GCM-SIV를 사용하려면 Conscrypt를 JCE 보안 제공업체로 설치해야 합니다.

  3. ML-DSA를 사용하려면 Conscrypt를 JCE 보안 제공업체로 설치해야 합니다.

  4. SLH-DSA를 사용하려면 Conscrypt를 JCE 보안 제공업체로 설치해야 합니다.

  5. ECIES에는 NIST 곡선이 필요합니다.

  6. ECIES에는 NIST 곡선이 필요합니다.