Я пытаюсь отправить двоичные данные через popen3, однако я получаю сообщение об ошибке.open3 popen3 двоичные данные
Команда оболочки Я выдача является:
key = File.open('path.key').read
Open3.popen3("openssl pkcs8 -inform DER -outform PEM -passin pass:#{password}") do |stdin, stdout, stderr|
stdin.print(key)
unless (err = stderr.read).empty? then raise err end
stdout.read
end
где ключ двоичного файла. OpenSSL говорит, что ключ недействителен, и я царапаю голову.
Теперь, если я выполняю команду, имея OpenSSL читать непосредственно из файловой системы вместо того, чтобы передать его через стандартный ввод работает правильно
"openssl pkcs8 -in path.key -inform DER -outform PEM -passin pass:#{password}"
Есть проблема кодировки я не в курсе ? Или это просто невозможно. Поскольку я буду получать файлы ключей через веб-сервис, я бы предпочел не сохранять их на диск и открыть их для чтения, а вместо этого сделать весь процесс в памяти.
Спасибо за ваше время