mirror of https://github.com/wolfSSL/wolfssl.git
examples/pem/pem.c: don't wolfCrypt_Cleanup() unless wolfcrypt_inited;
scripts/pem.test: * add setup for WOLFSSL_NO_DER_TO_PEM, * exit early with skip code if executable dependencies are missing or WOLFSSL_NO_PEM or NO_CODING, and * add clean skip clauses to convert_to_pem(), compare_pem(), and pem_der_exp(), if WOLFSSL_NO_DER_TO_PEM.pull/10262/head
parent
e601e04444
commit
8b6739296c
|
|
@ -755,6 +755,7 @@ int main(int argc, char* argv[])
|
|||
#ifdef DEBUG_WOLFSSL
|
||||
int log = 0;
|
||||
#endif
|
||||
int wolfcrypt_inited = 0;
|
||||
|
||||
progname = strrchr(argv[0], '/');
|
||||
if (progname)
|
||||
|
|
@ -979,6 +980,7 @@ int main(int argc, char* argv[])
|
|||
progname, wc_GetErrorString(ret));
|
||||
exit(1);
|
||||
}
|
||||
wolfcrypt_inited = 1;
|
||||
|
||||
/* Convert PEM type string to value. */
|
||||
if (type_str != NULL) {
|
||||
|
|
@ -1075,10 +1077,12 @@ out:
|
|||
if ((out_file != stdout) && (out_file != NULL))
|
||||
(void)fclose(out_file);
|
||||
|
||||
ret = wolfCrypt_Cleanup();
|
||||
if (ret != 0) {
|
||||
fprintf(stderr, "%s: wolfCrypt_Cleanup() failed: %s.\n",
|
||||
progname, wc_GetErrorString(ret));
|
||||
if (wolfcrypt_inited) {
|
||||
ret = wolfCrypt_Cleanup();
|
||||
if (ret != 0) {
|
||||
fprintf(stderr, "%s: wolfCrypt_Cleanup() failed: %s.\n",
|
||||
progname, wc_GetErrorString(ret));
|
||||
}
|
||||
}
|
||||
|
||||
return (ret == 0) ? 0 : 1;
|
||||
|
|
|
|||
|
|
@ -19,6 +19,16 @@ CR=$'\n'
|
|||
ENC_STRING="encrypt"
|
||||
DER_TO_PEM_STRING="input is DER and output is PEM"
|
||||
|
||||
if ! "$PEM_EXE" --help >/dev/null 2>&1; then
|
||||
echo "$PEM_EXE not found -- skipping pem.test."
|
||||
exit 77
|
||||
fi
|
||||
|
||||
if ! "$ASN1_EXE" --help >/dev/null 2>&1; then
|
||||
echo "$ASN1_EXE not found -- skipping pem.test."
|
||||
exit 77
|
||||
fi
|
||||
|
||||
if grep -q -E '^#define HAVE_FIPS$' wolfssl/options.h; then
|
||||
HAVE_FIPS=1
|
||||
fi
|
||||
|
|
@ -51,6 +61,41 @@ if ! grep -q -E '^#define NO_DH$' wolfssl/options.h; then
|
|||
HAVE_DH=1
|
||||
fi
|
||||
|
||||
if grep -q -E '^#define WOLFSSL_KEY_GEN$' wolfssl/options.h; then
|
||||
WOLFSSL_KEY_GEN=1
|
||||
fi
|
||||
|
||||
if grep -q -E '^#define WOLFSSL_CERT_GEN$' wolfssl/options.h; then
|
||||
WOLFSSL_CERT_GEN=1
|
||||
fi
|
||||
|
||||
if grep -q -E '^#define OPENSSL_EXTRA$' wolfssl/options.h; then
|
||||
OPENSSL_EXTRA=1
|
||||
fi
|
||||
|
||||
if [[ ! -v WOLFSSL_KEY_GEN && ! -v WOLFSSL_CERT_GEN && ! -v OPENSSL_EXTRA ]]; then
|
||||
WOLFSSL_NO_DER_TO_PEM=1
|
||||
fi
|
||||
|
||||
if grep -q -E '^#define WOLFSSL_NO_PEM$' wolfssl/options.h; then
|
||||
WOLFSSL_NO_PEM=1
|
||||
fi
|
||||
|
||||
if grep -q -E '^#define NO_CODING$' wolfssl/options.h; then
|
||||
NO_CODING=1
|
||||
fi
|
||||
|
||||
if [[ -v WOLFSSL_NO_PEM ]]; then
|
||||
echo "WOLFSSL_NO_PEM is configured -- skipping pem.test."
|
||||
exit 77
|
||||
fi
|
||||
|
||||
if [[ -v NO_CODING ]]; then
|
||||
echo "NO_CODING is configured -- skipping pem.test."
|
||||
exit 77
|
||||
fi
|
||||
|
||||
|
||||
# Cleanup temporaries created during testing.
|
||||
do_cleanup() {
|
||||
echo
|
||||
|
|
@ -210,6 +255,11 @@ compare_der() {
|
|||
#
|
||||
# @param [in] $* Command line parameters to pem example.
|
||||
convert_to_pem() {
|
||||
if [[ -v WOLFSSL_NO_DER_TO_PEM ]]; then
|
||||
echo ' Skipping -- WOLFSSL_NO_DER_TO_PEM'
|
||||
TEST_SKIP_CNT=$((TEST_SKIP_CNT+1))
|
||||
return 0
|
||||
fi
|
||||
if [ "$SKIP" = "" -a "$FAILED" = "" ]; then
|
||||
echo " $PEM_EXE --der -t \"$PEM_TYPE\" $* -out $tmp_pem_file"
|
||||
$PEM_EXE --der "$@" -t "$PEM_TYPE" -out $tmp_pem_file
|
||||
|
|
@ -239,6 +289,11 @@ compare_pem() {
|
|||
# @param [in] $3 PEM type expected in PEM file and to place in created PEM
|
||||
# file.
|
||||
pem_der_exp() {
|
||||
if [[ -v WOLFSSL_NO_DER_TO_PEM ]]; then
|
||||
echo ' Skipping -- WOLFSSL_NO_DER_TO_PEM'
|
||||
TEST_SKIP_CNT=$((TEST_SKIP_CNT+1))
|
||||
return 0
|
||||
fi
|
||||
if [ "$SKIP" = "" -a "$FAILED" = "" ]; then
|
||||
PEM_FILE=$1
|
||||
DER_FILE=$2
|
||||
|
|
@ -269,6 +324,11 @@ pem_der_exp() {
|
|||
#
|
||||
# @param [in] $@ Command line parameters to pem example when encrypting.
|
||||
der_pem_enc() {
|
||||
if [[ -v WOLFSSL_NO_DER_TO_PEM ]]; then
|
||||
echo ' Skipping -- WOLFSSL_NO_DER_TO_PEM'
|
||||
TEST_SKIP_CNT=$((TEST_SKIP_CNT+1))
|
||||
return 0
|
||||
fi
|
||||
PEM_TYPE="ENCRYPTED PRIVATE KEY"
|
||||
convert_to_pem -in ./certs/server-key.der -p yassl123 "$@" || return $?
|
||||
convert_to_der -in $tmp_pem_file -p yassl123 || return $?
|
||||
|
|
|
|||
Loading…
Reference in New Issue