diff --git a/src/os-utils.lisp b/src/os-utils.lisp index 13c39de..e0af79b 100644 --- a/src/os-utils.lisp +++ b/src/os-utils.lisp @@ -185,14 +185,15 @@ output-string))))))))) (defun ssl-key-has-empty-password-p (key-path) - (let* ((cmd-args (format nil "rsa -noout -text -in ~a" key-path)) - (process (run-external-program +openssl-bin+ - (text-utils:split-words cmd-args) - :input nil - :output nil - :error :output - :wait t))) - (process-exit-success-p process))) + (with-input-from-string (passphrase-stream (format nil "~%")) + (let* ((cmd-args (format nil "rsa -passin stdin -noout -text -in ~a" key-path)) + (process (run-external-program +openssl-bin+ + (text-utils:split-words cmd-args) + :input passphrase-stream + :output nil + :error t + :wait t))) + (process-exit-success-p process)))) (defun send-to-pipe (data program-and-args)