Skip to content

Commit 9d70142

Browse files
committed
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 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.
1 parent e601e04 commit 9d70142

2 files changed

Lines changed: 58 additions & 4 deletions

File tree

examples/pem/pem.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -755,6 +755,7 @@ int main(int argc, char* argv[])
755755
#ifdef DEBUG_WOLFSSL
756756
int log = 0;
757757
#endif
758+
int wolfcrypt_inited = 0;
758759

759760
progname = strrchr(argv[0], '/');
760761
if (progname)
@@ -979,6 +980,7 @@ int main(int argc, char* argv[])
979980
progname, wc_GetErrorString(ret));
980981
exit(1);
981982
}
983+
wolfcrypt_inited = 1;
982984

983985
/* Convert PEM type string to value. */
984986
if (type_str != NULL) {
@@ -1075,10 +1077,12 @@ int main(int argc, char* argv[])
10751077
if ((out_file != stdout) && (out_file != NULL))
10761078
(void)fclose(out_file);
10771079

1078-
ret = wolfCrypt_Cleanup();
1079-
if (ret != 0) {
1080-
fprintf(stderr, "%s: wolfCrypt_Cleanup() failed: %s.\n",
1081-
progname, wc_GetErrorString(ret));
1080+
if (wolfcrypt_inited) {
1081+
ret = wolfCrypt_Cleanup();
1082+
if (ret != 0) {
1083+
fprintf(stderr, "%s: wolfCrypt_Cleanup() failed: %s.\n",
1084+
progname, wc_GetErrorString(ret));
1085+
}
10821086
}
10831087

10841088
return (ret == 0) ? 0 : 1;

scripts/pem.test

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,41 @@ if ! grep -q -E '^#define NO_DH$' wolfssl/options.h; then
5151
HAVE_DH=1
5252
fi
5353

54+
if grep -q -E '^#define WOLFSSL_KEY_GEN$' wolfssl/options.h; then
55+
WOLFSSL_KEY_GEN=1
56+
fi
57+
58+
if grep -q -E '^#define WOLFSSL_CERT_GEN$' wolfssl/options.h; then
59+
WOLFSSL_CERT_GEN=1
60+
fi
61+
62+
if grep -q -E '^#define OPENSSL_EXTRA$' wolfssl/options.h; then
63+
OPENSSL_EXTRA=1
64+
fi
65+
66+
if [[ ! (-v WOLFSSL_KEY_GEN || -v WOLFSSL_CERT_GEN || -v OPENSSL_EXTRA) ]]; then
67+
WOLFSSL_NO_DER_TO_PEM=1
68+
fi
69+
70+
if grep -q -E '^#define WOLFSSL_NO_PEM$' wolfssl/options.h; then
71+
WOLFSSL_NO_PEM=1
72+
fi
73+
74+
if grep -q -E '^#define NO_CODING$' wolfssl/options.h; then
75+
NO_CODING=1
76+
fi
77+
78+
if [[ -v WOLFSSL_NO_PEM ]]; then
79+
echo "WOLFSSL_NO_PEM is configured -- skipping pem.test."
80+
exit 77
81+
fi
82+
83+
if [[ -v NO_CODING ]]; then
84+
echo "NO_CODING is configured -- skipping pem.test."
85+
exit 77
86+
fi
87+
88+
5489
# Cleanup temporaries created during testing.
5590
do_cleanup() {
5691
echo
@@ -210,6 +245,11 @@ compare_der() {
210245
#
211246
# @param [in] $* Command line parameters to pem example.
212247
convert_to_pem() {
248+
if [[ ! -v WOLFSSL_NO_DER_TO_PEM ]]; then
249+
echo ' Skipping -- WOLFSSL_NO_DER_TO_PEM'
250+
TEST_SKIP_CNT=$((TEST_SKIP_CNT+1))
251+
return 0
252+
fi
213253
if [ "$SKIP" = "" -a "$FAILED" = "" ]; then
214254
echo " $PEM_EXE --der -t \"$PEM_TYPE\" $* -out $tmp_pem_file"
215255
$PEM_EXE --der "$@" -t "$PEM_TYPE" -out $tmp_pem_file
@@ -239,6 +279,11 @@ compare_pem() {
239279
# @param [in] $3 PEM type expected in PEM file and to place in created PEM
240280
# file.
241281
pem_der_exp() {
282+
if [[ ! -v WOLFSSL_NO_DER_TO_PEM ]]; then
283+
echo ' Skipping -- WOLFSSL_NO_DER_TO_PEM'
284+
TEST_SKIP_CNT=$((TEST_SKIP_CNT+1))
285+
return 0
286+
fi
242287
if [ "$SKIP" = "" -a "$FAILED" = "" ]; then
243288
PEM_FILE=$1
244289
DER_FILE=$2
@@ -269,6 +314,11 @@ pem_der_exp() {
269314
#
270315
# @param [in] $@ Command line parameters to pem example when encrypting.
271316
der_pem_enc() {
317+
if [[ ! -v WOLFSSL_NO_DER_TO_PEM ]]; then
318+
echo ' Skipping -- WOLFSSL_NO_DER_TO_PEM'
319+
TEST_SKIP_CNT=$((TEST_SKIP_CNT+1))
320+
return 0
321+
fi
272322
PEM_TYPE="ENCRYPTED PRIVATE KEY"
273323
convert_to_pem -in ./certs/server-key.der -p yassl123 "$@" || return $?
274324
convert_to_der -in $tmp_pem_file -p yassl123 || return $?

0 commit comments

Comments
 (0)