O comando falha em um script?

O comando falha em um script?

Estou tentando criar um script do eccomando OpenSSL. O script é usado para validar uma coleção de chaves produzidas por outra biblioteca. O script é mostrado abaixo após a pergunta.

O seguinte funciona em um terminal:

openssl ec -in ec-enc-priv-xxx.pem -passin pass:test -text -noout

O seguinte funciona em um terminal:

openssl ec -in ec-enc-priv-xxx.pem -passin pass:test -text -noout >/dev/null

No entanto, quando faço o script do último, uma senha é solicitada:

$ ./pem-verify.sh 
read RSA key
read RSA key
read RSA key
read DSA key
read DSA key
read DSA key
read EC key
read EC key
Enter PEM pass phrase:

O mesmo código funciona para chaves RSA e DSA no script. O problema ocorre apenas com a chave privada EC criptografada.

Alguma idéia de como contornar isso?


#! /bin/sh

# Script to verify the test keys written by pem-test.cpp

#################
# RSA keys

# The RSA command returns 0 on success

openssl rsa -in rsa-pub-xxx.pem -pubin -text -noout >/dev/null
RET=$?
if [ $RET -ne 0 ];then
  echo "Failed to read RSA public key"
fi

openssl rsa -in rsa-priv-xxx.pem -text -noout >/dev/null
RET=$?
if [ $RET -ne 0 ];then
  echo "Failed to read RSA private key"
fi

openssl rsa -in rsa-enc-priv-xxx.pem -passin pass:test -text -noout >/dev/null
RET=$?
if [ $RET -ne 0 ];then
  echo "Failed to read encrypted RSA private key"
fi

#################
# DSA keys

# The DSA command is broken. It returns 1 when using '-noout' option
#  instead of 0. A patch was submitted to RT.

openssl dsa -in dsa-pub-xxx.pem -pubin -text -noout >/dev/null

openssl dsa -in dsa-priv-xxx.pem -text -noout >/dev/null

openssl dsa -in dsa-enc-priv-xxx.pem -passin pass:test -text -noout >/dev/null

#################
# EC keys

# The EC command returns 0 on success

openssl ec -in ec-pub-xxx.pem -pubin -text -noout >/dev/null
RET=$?
if [ $RET -ne 0 ];then
  echo "Failed to read EC public key"
fi

openssl ec -in ec-priv-xxx.pem -text -noout >/dev/null
RET=$?
if [ $RET -ne 0 ];then
  echo "Failed to read EC private key"
fi

openssl ec -in ec-enc-priv-xxx.pem -passin pass:test -text -noout >/dev/null
RET=$?
if [ $RET -ne 0 ];then
  echo "Failed to read encrypted EC private key"
fi

Responder1

Desprezo esse tipo de resposta, mas não consigo duplicar o problema desde a reinicialização do MacBook Pro. Portanto, a resposta neste caso parece ser reiniciar. Suspirar...

Passando para encerrar a questão porque o problema não é reproduzível.

informação relacionada