Типы ключей, поддерживаемые языком

В следующих таблицах перечислены основные типы, поддерживаемые каждым примитивом , сгруппированные по языкам программирования.

АЭАД

Выполнение Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Идти Python
AES-GCM да 1 да да да да да
AES-GCM-SIV да 2 да нет нет да да
AES-CTR-HMAC да да да да да да
AES-EAX да да да да нет да
Конверт KMS да да да нет да да
CHACHA20-POLY1305 да нет нет нет да нет
XCHACHA20-POLY1305 да да нет да да да

Трансляция AEAD

Выполнение Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Идти Python
AES-GCM-HKDF-STREAMING да да да нет да да
AES-CTR-HMAC-STREAMING да да да нет да да

Детерминированная АЭАД

Выполнение Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Идти Python
AES-SIV да да да да да да

MAC

Выполнение Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Идти Python
HMAC-SHA2 да да да да да да
AES-CMAC да да да да да да

ПРФ

Выполнение Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Идти Python
HKDF-SHA2 да да да нет да да
HMAC-SHA2 да да да нет да да
AES-CMAC да да да нет да да

Подпись

Выполнение Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Идти Python
ECDSA на кривых NIST да да да да да да
Ed25519 да да да да да да
RSA-SSA-PKCS1 да да да да да да
RSA-SSA-PSS да да да да да да
ML-DSA да 3 да нет нет да да
SLH-DSA (SHA2-128S) да 4 да нет нет да да

Гибридное шифрование

Выполнение Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Идти Python
HPKE да да нет нет да да
ECIES совместно с AEAD и HKDF да 5 да да да да да
ECIES с DeterministicAEAD и HKDF да 6 да да нет да да

JWT MAC

Выполнение Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Идти Python
JWT HMAC-SHA2 да да да нет да да

Подпись JWT

Выполнение Java C++
(BoringSSL)
C++
(OpenSSL)
Objective-C Идти Python
JWT ECDSA на кривых NIST да да да нет да да
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.