언어에서 지원하는 키 유형

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

아랍에미리트

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

스트리밍 AEAD

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

확정적 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 없음
HMAC-SHA2 없음
AES-CMAC 없음

서명

구현 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 없음 없음
AEAD 및 HKDF가 있는 ECIES 3
DeterministicAEAD 및 HKDF를 사용하는 ECIES 4 없음

JWT MAC

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

JWT 서명

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