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

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

АЕАД

Выполнение Джава С++
(СкучныйSSL)
С++
(ОпенSSL)
Цель-C Идти Питон
AES-GCM да 1 да да да да да
AES-GCM-SIV да 2 да нет нет да да
AES-CTR-HMAC да да да да да да
AES-EAX да да да да нет да
KMS-конверт да да да нет да да
ЧАЧА20-ПОЛИ1305 да нет нет нет да нет
XCHACHA20-POLY1305 да да нет да да да

Потоковое AEAD

Выполнение Джава С++
(СкучныйSSL)
С++
(ОпенSSL)
Цель-C Идти Питон
AES-GCM-HKDF-СТРИМИНГ да да да нет да да
AES-CTR-HMAC-СТРИМИНГ да да да нет да да

Детерминированный AEAD

Выполнение Джава С++
(СкучныйSSL)
С++
(ОпенSSL)
Цель-C Идти Питон
АЕС-СИВ да да да да да да

MAC

Выполнение Джава С++
(СкучныйSSL)
С++
(ОпенSSL)
Цель-C Идти Питон
HMAC-SHA2 да да да да да да
AES-CMAC да да да да да да

ПРФ

Выполнение Джава С++
(СкучныйSSL)
С++
(ОпенSSL)
Цель-C Идти Питон
ХКДФ-ША2 да да да нет да да
HMAC-SHA2 да да да нет да да
AES-CMAC да да да нет да да

Подпись

Выполнение Джава С++
(СкучныйSSL)
С++
(ОпенSSL)
Цель-C Идти Питон
ECDSA по кривым NIST да да да да да да
Ed25519 да да да да да да
RSA-SSA-PKCS1 да да да да да да
RSA-SSA-PSS да да да да да да

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

Выполнение Джава С++
(СкучныйSSL)
С++
(ОпенSSL)
Цель-C Идти Питон
ХПКЕ да да нет нет да да
ECIES с AEAD и HKDF да 3 да да да да да
ECIES с DeterministicAEAD и HKDF да 4 да да нет да да

JWT MAC

Выполнение Джава С++
(СкучныйSSL)
С++
(ОпенSSL)
Цель-C Идти Питон
JWT HMAC-SHA2 да да да нет да да

Подпись JWT

Выполнение Джава С++
(СкучныйSSL)
С++
(ОпенSSL)
Цель-C Идти Питон
JWT ECDSA по кривым NIST да да да нет да да
JWT RSA-SSA-PKCS1 да да да нет да да
JWT RSA-SSA-PSS да да да нет да да

  1. AES-GCM не работает должным образом на Android <= 19.

  2. Требуется установка Conscrypt в качестве поставщика безопасности JCE.

  3. Требуется кривая NIST.

  4. Требуется кривая NIST.