Как я могу избежать отката openssl, чтобы спросить пароль через /dev/tty

Я мог бы избежать ввода пароля с OpenSSL 1.0.2g, когда он получил зашифрованный ключ без пароля, но с OpenSSL 1.1.0g я не могу больше этого делать.

Можно ли избежать запроса пароля при любых обстоятельствах?

Моя проблема

openssl rsa -in "${KEY_PATH}" -passin "pass:${PASSPHRASE}"

Если пользователь пропустил настройку ${PASSPHRASE} для зашифрованного ключа, старый openssl возвращается с ошибкой, но новые запасные варианты для чтения парольной фразы через /dev/tty (проверено strace)

Я пытался достичь оригинального поведения со всеми доступными -passin методы (в руководстве openssl), но все они теперь вернулись к пользовательскому вводу.

Могу ли я как-то закрыть /dev/tty для команды, чтобы избежать этого поведения блокировки в автоматической среде?

Простое воспроизведение

openssl genrsa -aes128 -passout 'pass:foobar' -out 'enc.key' 1024
openssl rsa -in 'enc.key' -passin 'pass:'

С OpenSSL 1.0.2g:

unable to load Private Key
139745720125080:error:0906A068:PEM routines:PEM_do_header:bad password read:pem_lib.c:457:

Удалил сообщение об ошибке и прервал с не 0 код выхода, как я и ожидал.

С OpenSSL 1.1.0g:

Enter pass phrase for enc.key:

Блокировка...

Смешная часть

Если пароль не пустой, но плохой, оба эти openssl версии терпят неудачу и не пытаются запросить фразу-пароль через консоль.:)

0 ответов

Другие вопросы по тегам