Итак, главный вопрос: «Могу ли я сохранить закрытый ключ OpenSSL (в частности, закрытый ключ RSA) с использованием аутентифицированного шифрования?».
OpenSSL поддерживает широкий спектр вариантов шифрования для ключей, однако, похоже, чтомногие из них поддерживаются только как выходы, а не как входы.Например, openssl genrsa -aes256
работает нормально и создает ключ, который можно расшифровать и использовать позже (но использует режим CBC), но если вы сделаете openssl genrsa -aes-256-gcm
, полученный ключ не сможет использоваться OpenSSL.Точное сообщение об ошибке зависит от версии, последняя версия 1.1.0h дает:
root@cb772d20894d:/# openssl genrsa -aes-256-gcm | openssl rsa
Generating RSA private key, 2048 bit long modulus
.................................................+++
................................................+++
e is 65537 (0x010001)
Enter pass phrase:
Verifying - Enter pass phrase:
Enter pass phrase:
unable to load Private Key
139772421357760:error:0906A065:PEM routines:PEM_do_header:bad decrypt:../crypto/pem/pem_lib.c:445:
В то время как более старые версии даже не достигают этого с:
140678952371864:error:0906B072:PEM routines:PEM_get_EVP_CIPHER_INFO:unsupported encryption:pem_lib.c:544:
Та же ошибкапоказано с aes-256-ocb
и aes-256-ccm
.Я думаю, что это все из доступных аутентифицированных шифров?Может, я где-то пропустил опцию в OpenSSL, чтобы разрешить это?