@@ -16,15 +16,19 @@ source "${UTILS_DIR}/utils-wolfprovider.sh"
1616# Initialize the environment
1717init_wolfprov
1818
19+ # Fail flag
20+ FAIL=0
21+
1922# Verify wolfProvider is properly loaded
2023echo -e " \nVerifying wolfProvider configuration:"
2124if ! $OPENSSL_BIN list -providers | grep -q " wolf" ; then
2225 echo " [FAIL] wolfProvider not found in OpenSSL providers!"
2326 echo " Current provider list:"
2427 $OPENSSL_BIN list -providers
25- exit 1
28+ FAIL=1
29+ else
30+ echo " [PASS] wolfProvider is properly configured"
2631fi
27- echo " [PASS] wolfProvider is properly configured"
2832
2933# Print environment for verification
3034echo " Environment variables:"
@@ -41,7 +45,6 @@ KEY_SIZES=("128" "192" "256")
4145# Only include modes supported by wolfProvider
4246MODES=(" ecb" " cbc" " ctr" " cfb" )
4347
44-
4548echo " === Running AES Algorithm Comparisons ==="
4649
4750# Run tests for each key size and mode
@@ -60,45 +63,69 @@ for key_size in "${KEY_SIZES[@]}"; do
6063 enc_file=" aes_outputs/aes${key_size} _${mode} .enc"
6164 dec_file=" aes_outputs/aes${key_size} _${mode} .dec"
6265
63- # Interop testing: Encrypt with default provider, decrypt with wolfProvider
66+ # Interop testing: Encrypt with default provider, decrypt with wolfProvider
6467 echo " Interop testing (encrypt with default, decrypt with wolfProvider):"
6568
6669 # Encryption with OpenSSL default provider
67- $OPENSSL_BIN enc -aes-${key_size} -${mode} -K $key $iv -provider default \
68- -in test.txt -out " $enc_file " -p
70+ if ! $OPENSSL_BIN enc -aes-${key_size} -${mode} -K $key $iv -provider default \
71+ -in test.txt -out " $enc_file " -p; then
72+ echo " [FAIL] Interop AES-${key_size} -${mode} : OpenSSL encrypt failed"
73+ FAIL=1
74+ fi
6975
7076 # Decryption with wolfProvider
71- $OPENSSL_BIN enc -aes-${key_size} -${mode} -K $key $iv -provider-path $WOLFPROV_PATH -provider libwolfprov \
72- -in " $enc_file " -out " $dec_file " -d -p
77+ if ! $OPENSSL_BIN enc -aes-${key_size} -${mode} -K $key $iv -provider-path $WOLFPROV_PATH -provider libwolfprov \
78+ -in " $enc_file " -out " $dec_file " -d -p; then
79+ echo " [FAIL] Interop AES-${key_size} -${mode} : wolfProvider decrypt failed"
80+ FAIL=1
81+ fi
7382
74- if cmp -s " test.txt" " $dec_file " ; then
75- echo " [PASS] Interop AES-${key_size} -${mode} : OpenSSL encrypt, wolfProvider decrypt"
83+ if [ $FAIL -eq 0 ]; then
84+ if cmp -s " test.txt" " $dec_file " ; then
85+ echo " [PASS] Interop AES-${key_size} -${mode} : OpenSSL encrypt, wolfProvider decrypt"
86+ else
87+ echo " [FAIL] Interop AES-${key_size} -${mode} : OpenSSL encrypt, wolfProvider decrypt"
88+ FAIL=1
89+ fi
7690 else
77- echo " [FAIL] Interop AES-${key_size} -${mode} : OpenSSL encrypt, wolfProvider decrypt"
78- exit 1
91+ echo " [INFO] Cannot verify encryption/decryption - no key available"
7992 fi
8093
8194 # Interop testing: Encrypt with wolfProvider, decrypt with default provider
8295 echo " Interop testing (encrypt with wolfProvider, decrypt with default):"
8396
8497 # Encryption with wolfProvider
85- $OPENSSL_BIN enc -aes-${key_size} -${mode} -K $key $iv -provider-path $WOLFPROV_PATH -provider libwolfprov \
86- -in test.txt -out " $enc_file " -p
98+ if ! $OPENSSL_BIN enc -aes-${key_size} -${mode} -K $key $iv -provider-path $WOLFPROV_PATH -provider libwolfprov \
99+ -in test.txt -out " $enc_file " -p; then
100+ echo " [FAIL] Interop AES-${key_size} -${mode} : wolfProvider encrypt failed"
101+ FAIL=1
102+ fi
87103
88104 # Decryption with OpenSSL default provider
89- $OPENSSL_BIN enc -aes-${key_size} -${mode} -K $key $iv -provider default \
90- -in " $enc_file " -out " $dec_file " -d -p
105+ if ! $OPENSSL_BIN enc -aes-${key_size} -${mode} -K $key $iv -provider default \
106+ -in " $enc_file " -out " $dec_file " -d -p; then
107+ echo " [FAIL] Interop AES-${key_size} -${mode} : OpenSSL decrypt failed"
108+ FAIL=1
109+ fi
91110
92- if cmp -s " test.txt" " $dec_file " ; then
93- echo " [PASS] Interop AES-${key_size} -${mode} : wolfProvider encrypt, OpenSSL decrypt"
111+ if [ $FAIL -eq 0 ]; then
112+ if cmp -s " test.txt" " $dec_file " ; then
113+ echo " [PASS] Interop AES-${key_size} -${mode} : wolfProvider encrypt, OpenSSL decrypt"
114+ else
115+ echo " [FAIL] Interop AES-${key_size} -${mode} : wolfProvider encrypt, OpenSSL decrypt"
116+ FAIL=1
117+ fi
94118 else
95- echo " [FAIL] Interop AES-${key_size} -${mode} : wolfProvider encrypt, OpenSSL decrypt"
96- exit 1
119+ echo " [INFO] Cannot verify encryption/decryption - no key available"
97120 fi
98121 done
99122done
100123
101- # End of AES testing
102-
103- echo -e " \n=== All AES tests completed successfully ==="
104- exit 0
124+ # Change end of script to check FAIL flag
125+ if [ $FAIL -eq 0 ]; then
126+ echo -e " \n=== All AES tests completed successfully ==="
127+ exit 0
128+ else
129+ echo -e " \n=== AES tests completed with failures ==="
130+ exit 1
131+ fi
0 commit comments