Befehl in einem Skript schlägt fehl?

Befehl in einem Skript schlägt fehl?

Ich versuche, den OpenSSL- ecBefehl zu skripten. Das Skript wird verwendet, um eine Sammlung von Schlüsseln zu validieren, die von einer anderen Bibliothek erstellt wurden. Das Skript wird unten nach der Frage angezeigt.

Folgendes funktioniert von einem Terminal aus:

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

Folgendes funktioniert von einem Terminal aus:

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

Wenn ich jedoch das letzte Skript ausführe, werde ich zur Eingabe eines Kennworts aufgefordert:

$ ./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:

Derselbe Code funktioniert im Skript für RSA- und DSA-Schlüssel. Das Problem betrifft nur den verschlüsselten privaten EC-Schlüssel.

Irgendwelche Ideen, wie man das umgehen kann?


#! /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

Antwort1

Ich hasse solche Antworten, aber ich kann das Problem seit dem Neustart des MacBook Pro nicht reproduzieren. Die Antwort in diesem Fall scheint also ein Neustart zu sein. Seufz...

Ich möchte die Frage schließen, da das Problem nicht reproduzierbar ist.

verwandte Informationen