Skip to content

Commit 2d38c93

Browse files
committed
Update command line tests for WPFF
1 parent 4a353fc commit 2d38c93

File tree

5 files changed

+79
-50
lines changed

5 files changed

+79
-50
lines changed

scripts/cmd_test/cmd-test-common.sh

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
# You should have received a copy of the GNU General Public License
1818
# along with wolfProvider. If not, see <http://www.gnu.org/licenses/>.
1919

20+
OPENSSL_BIN=${OPENSSL_BIN:-openssl}
21+
2022
cmd_test_env_setup() {
2123
local log_file_name=$1
2224
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
@@ -48,35 +50,52 @@ cmd_test_env_setup() {
4850
echo "OPENSSL_BIN: ${OPENSSL_BIN}"
4951
}
5052

53+
# Check if default provider is in use
54+
# Note that this may be wolfProvider if built as replace-default
55+
is_default_provider() {
56+
return $($OPENSSL_BIN list -providers | grep -qi "default")
57+
}
58+
5159
# Function to use default provider only
5260
use_default_provider() {
5361
unset OPENSSL_MODULES
5462
unset OPENSSL_CONF
5563

5664
# Verify that we are using the default provider
57-
if ${OPENSSL_BIN} list -providers | grep -q "wolfprov"; then
58-
echo "FAIL: unable to switch to default provider, wolfProvider is still active"
65+
if ! is_default_provider; then
66+
echo "FAIL: unable to switch to default provider"
67+
openssl list -providers
5968
exit 1
6069
fi
6170
echo "Switched to default provider"
6271
}
6372

73+
is_wolf_provider() {
74+
return $($OPENSSL_BIN list -providers | grep -qi "wolfSSL Provider")
75+
}
76+
6477
# Function to use wolf provider only
6578
use_wolf_provider() {
6679
export OPENSSL_MODULES=$WOLFPROV_PATH
6780
export OPENSSL_CONF=${WOLFPROV_CONFIG}
6881

6982
# Verify that we are using wolfProvider
70-
if ! ${OPENSSL_BIN} list -providers | grep -q "wolfprov"; then
71-
echo "FAIL: unable to switch to wolfProvider, default provider is still active"
83+
if ! is_wolf_provider; then
84+
echo "FAIL: unable to switch to wolfProvider"
7285
exit 1
7386
fi
7487
echo "Switched to wolfProvider"
7588
}
7689

90+
is_replace_default() {
91+
return $($OPENSSL_BIN list -providers | grep -qi "wolfSSL Provider")
92+
}
93+
7794
# Helper function to handle force fail checks
7895
check_force_fail() {
79-
if [ "${WOLFPROV_FORCE_FAIL}" = "1" ]; then
96+
if is_default_provider && ! is_replace_default; then
97+
echo "OPENSSL Default provider active, no forced failures expected."
98+
elif [ "${WOLFPROV_FORCE_FAIL}" = "1" ]; then
8099
echo "[PASS] Test passed when force fail was enabled"
81100
FORCE_FAIL_PASSED=1
82101
fi

scripts/cmd_test/ecc-cmd-test.sh

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,18 @@ test_sign_verify_pkeyutl() {
117117
local data_file="ecc_outputs/test_data.txt"
118118

119119
echo -e "\n=== Testing ECC (${curve}) Sign/Verify with pkeyutl Using ${provider_name} ==="
120+
121+
if [ ! -f "$key_file" ] || [ ! -f "$pub_key_file" ]; then
122+
echo "[FAIL] Key files for ECC (${curve}) not found, cannot run sign/verify tests"
123+
FAIL=1
124+
exit 1
125+
fi
126+
127+
if [ ! -f "$data_file" ]; then
128+
echo "[FAIL] Test data file not found, cannot run sign/verify tests"
129+
FAIL=1
130+
exit 1
131+
fi
120132

121133
# Test 1: Sign and verify with OpenSSL default
122134
use_default_provider
@@ -193,6 +205,12 @@ generate_and_test_key() {
193205
provider_name=$(get_provider_name "$provider_args")
194206

195207
echo -e "\n=== Testing ECC Key Generation (${curve}) with ${provider_name} ==="
208+
209+
if [ -f "$output_file" ]; then
210+
echo "ECC key file $output_file already exists, removing it."
211+
rm -f "$output_file"
212+
fi
213+
196214
echo "Generating ECC key (${curve})..."
197215

198216
if $OPENSSL_BIN genpkey -algorithm EC \
@@ -239,6 +257,14 @@ for curve in "${CURVES[@]}"; do
239257
# Generate key with current provider
240258
generate_and_test_key "$curve" "$test_provider"
241259

260+
# If WPFF is set, we need to run again to actually create the
261+
# key files
262+
if [ $WOLFPROV_FORCE_FAIL -ne 0 ]; then
263+
WOLFPROV_FORCE_FAIL=0
264+
generate_and_test_key "$curve" "$test_provider"
265+
WOLFPROV_FORCE_FAIL=1
266+
fi
267+
242268
# Test sign/verify interoperability
243269
test_sign_verify_pkeyutl "$curve" "$test_provider"
244270
done

scripts/cmd_test/req-cmd-test.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,16 @@ test_cert_creation() {
3535
local cert_file="req_outputs/cert_${curve}_${hash_alg}_${req_provider_name//lib/}.pem"
3636

3737
echo -e "\n=== Testing Certificate Creation (${curve}/${hash_alg}) - req with ${req_provider_name} ==="
38+
39+
if [ -f "$key_file" ]; then
40+
echo "Key file $key_file already exists, removing it."
41+
rm -f "$key_file"
42+
fi
43+
44+
if [ -f "$cert_file" ]; then
45+
echo "Certificate file $cert_file already exists, removing it."
46+
rm -f "$cert_file"
47+
fi
3848

3949
# Generate EC key with default provider
4050
echo "Generating EC key with curve ${curve} using default provider..."

scripts/cmd_test/rsa-cmd-test.sh

Lines changed: 19 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -37,23 +37,8 @@ KEY_TYPES=("RSA" "RSA-PSS")
3737
KEY_SIZES=("2048" "3072" "4096")
3838
PROVIDER_ARGS=("-provider-path $WOLFPROV_PATH -provider libwolfprov" "-provider default")
3939

40-
OPENSSL_BIN=${OPENSSL_BIN:-openssl}
41-
4240
echo "=== Running RSA Key Generation Tests ==="
4341

44-
rsa_check_force_fail() {
45-
local openssl_providers=$($OPENSSL_BIN list -providers)
46-
is_openssl_default_provider=$(echo "$openssl_providers" | grep -qi "OpenSSL Default Provider" && echo 1 || echo 0)
47-
if [ $is_openssl_default_provider -eq 1 ]; then
48-
# With the OpenSSL provider, don't expect failures
49-
echo "OPENSSL Default provider active, no forced failures expected."
50-
elif [ "${WOLFPROV_FORCE_FAIL}" = "1" ]; then
51-
echo "[PASS] Test passed when force fail was enabled"
52-
FORCE_FAIL_PASSED=1
53-
exit 1
54-
fi
55-
}
56-
5742
# Function to validate key
5843
validate_key() {
5944
local key_type=$1
@@ -76,15 +61,15 @@ validate_key() {
7661
return
7762
else
7863
echo "[PASS] ${key_type} key file exists and has content"
79-
rsa_check_force_fail
64+
check_force_fail
8065
fi
8166

8267
# Only try to extract public key if file exists and has content
8368
local pub_key_file="rsa_outputs/${key_type}_${key_size}_pub.pem"
8469
if $OPENSSL_BIN pkey -in "$key_file" -pubout -out "$pub_key_file" \
8570
${provider_args} -passin pass: >/dev/null; then
8671
echo "[PASS] ${key_type} Public key extraction successful"
87-
rsa_check_force_fail
72+
check_force_fail
8873
else
8974
echo "[FAIL] ${key_type} Public key extraction failed"
9075
FAIL=1
@@ -169,6 +154,8 @@ test_sign_verify_pkeyutl() {
169154

170155
# Get the provider name
171156
provider_name=$(get_provider_name "$provider_args")
157+
158+
echo -e "\n=== Testing ${key_type} (${key_size}) Sign/Verify with pkeyutl Using ${provider_name} ==="
172159

173160
# Handle different key naming conventions
174161
local key_prefix="${key_type}"
@@ -192,18 +179,16 @@ test_sign_verify_pkeyutl() {
192179
exit 1
193180
fi
194181

195-
echo -e "\n=== Testing ${key_type} (${key_size}) Sign/Verify with pkeyutl Using ${provider_name} ==="
196-
197182
# Test 1: Sign and verify with OpenSSL default
198183
use_default_provider
199184
echo "Test 1: Sign and verify with OpenSSL default (${key_type})"
200185
local default_sig_file="rsa_outputs/${key_prefix}_${key_size}_default_sig.bin"
201186
if $sign_func "$key_file" "$data_file" "$default_sig_file" "$provider_args"; then
202187
echo "[PASS] Signing with OpenSSL default successful"
203-
rsa_check_force_fail
188+
check_force_fail
204189
if $verify_func "$pub_key_file" "$data_file" "$default_sig_file" "$provider_args"; then
205190
echo "[PASS] Default provider verify successful"
206-
rsa_check_force_fail
191+
check_force_fail
207192
else
208193
echo "[FAIL] Default provider verify failed"
209194
FAIL=1
@@ -219,10 +204,10 @@ test_sign_verify_pkeyutl() {
219204
local wolf_sig_file="rsa_outputs/${key_prefix}_${key_size}_wolf_sig.bin"
220205
if $sign_func "$key_file" "$data_file" "$wolf_sig_file" "$provider_args"; then
221206
echo "[PASS] Signing with wolfProvider successful"
222-
rsa_check_force_fail
207+
check_force_fail
223208
if $verify_func "$pub_key_file" "$data_file" "$wolf_sig_file" "$provider_args"; then
224209
echo "[PASS] wolfProvider sign/verify successful"
225-
rsa_check_force_fail
210+
check_force_fail
226211
else
227212
echo "[FAIL] wolfProvider verify failed"
228213
FAIL=1
@@ -238,7 +223,7 @@ test_sign_verify_pkeyutl() {
238223
use_wolf_provider
239224
if $verify_func "$pub_key_file" "$data_file" "$default_sig_file" "$provider_args"; then
240225
echo "[PASS] wolfProvider can verify OpenSSL default signature"
241-
rsa_check_force_fail
226+
check_force_fail
242227
else
243228
echo "[FAIL] wolfProvider cannot verify OpenSSL default signature"
244229
FAIL=1
@@ -248,7 +233,7 @@ test_sign_verify_pkeyutl() {
248233
echo "Test 4: Cross-provider verification (wolf sign, default verify)"
249234
if $verify_func "$pub_key_file" "$data_file" "$wolf_sig_file" "$provider_args"; then
250235
echo "[PASS] OpenSSL default can verify wolfProvider signature"
251-
rsa_check_force_fail
236+
check_force_fail
252237
else
253238
echo "[FAIL] OpenSSL default cannot verify wolfProvider signature"
254239
FAIL=1
@@ -263,15 +248,16 @@ generate_and_test_key() {
263248
local provider_args=$3
264249
local output_file="rsa_outputs/${key_type}_${key_size}.pem"
265250

251+
# Get the provider name
252+
provider_name=$(get_provider_name "$provider_args")
253+
254+
echo -e "\n=== Testing ${key_type} Key Generation (${key_size}) with ${provider_name} ==="
255+
266256
if [ -f "$output_file" ]; then
267257
echo "Output file $output_file already exists, removing it."
268258
rm -f "$output_file"
269259
fi
270260

271-
# Get the provider name
272-
provider_name=$(get_provider_name "$provider_args")
273-
274-
echo -e "\n=== Testing ${key_type} Key Generation (${key_size}) with ${provider_name} ==="
275261
echo "Generating ${key_type} key (${key_size})..."
276262
if [ "$key_type" = "RSA-PSS" ]; then
277263
# For RSA-PSS, specify all parameters
@@ -283,7 +269,7 @@ generate_and_test_key() {
283269
-pkeyopt rsa_pss_keygen_saltlen:-1 \
284270
-out "$output_file" 2>/dev/null; then
285271
echo "[PASS] RSA-PSS key generation successful"
286-
rsa_check_force_fail
272+
check_force_fail
287273
else
288274
echo "[FAIL] RSA-PSS key generation failed"
289275
FAIL=1
@@ -295,7 +281,7 @@ generate_and_test_key() {
295281
-pkeyopt rsa_keygen_bits:${key_size} \
296282
-out "$output_file" 2>/dev/null; then
297283
echo "[PASS] RSA key generation successful"
298-
rsa_check_force_fail
284+
check_force_fail
299285
else
300286
echo "[FAIL] RSA key generation failed"
301287
FAIL=1
@@ -305,7 +291,7 @@ generate_and_test_key() {
305291
# Verify the key was generated
306292
if [ -s "$output_file" ]; then
307293
echo "[PASS] ${key_type} key (${key_size}) generation successful"
308-
rsa_check_force_fail
294+
check_force_fail
309295
else
310296
echo "[FAIL] ${key_type} key (${key_size}) generation failed"
311297
FAIL=1
@@ -322,7 +308,7 @@ generate_and_test_key() {
322308
if $OPENSSL_BIN pkey -in "$output_file" -check \
323309
${provider_args} -passin pass: >/dev/null; then
324310
echo "[PASS] ${provider_name} can use ${key_type} key (${key_size})"
325-
rsa_check_force_fail
311+
check_force_fail
326312
else
327313
echo "[FAIL] ${provider_name} cannot use ${key_type} key (${key_size})"
328314
FAIL=1

scripts/verify-install.sh

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,6 @@ verify_wolfprovider() {
200200
local replace_default="$2"
201201
local no_wp="$3"
202202

203-
is_openssl_fips=$(echo "$openssl_version" | grep -v "nonfips" | grep -qi "fips" && echo 1 || echo 0)
204203
is_openssl_replace_default=$(echo "$openssl_version" | grep -qi "wolfProvider" && echo 1 || echo 0)
205204
is_openssl_default_provider=$(echo "$openssl_providers" | grep -qi "OpenSSL Default Provider" && echo 1 || echo 0)
206205

@@ -215,7 +214,6 @@ verify_wolfprovider() {
215214
echo "fips: $fips"
216215
echo "replace_default: $replace_default"
217216
echo "no_wp: $no_wp"
218-
echo "DEBUG: is_openssl_fips: $is_openssl_fips"
219217
echo "DEBUG: is_openssl_replace_default: $is_openssl_replace_default"
220218
echo "DEBUG: is_openssl_default_provider: $is_openssl_default_provider"
221219
echo "DEBUG: is_wp_active: $is_wp_active"
@@ -251,16 +249,6 @@ verify_wolfprovider() {
251249
elif [ $is_wp_default -ne 1 ]; then
252250
handle_error "wolfProvider is not the default provider"
253251
fi
254-
255-
if [ $fips -eq 1 ]; then
256-
if [ $is_openssl_fips -ne 1 ]; then
257-
handle_error "OpenSSL is not FIPS"
258-
fi
259-
else
260-
if [ $is_openssl_fips -eq 1 ]; then
261-
handle_error "OpenSSL is FIPS"
262-
fi
263-
fi
264252
else
265253
if [ $is_openssl_replace_default -eq 1 ]; then
266254
handle_error "OpenSSL is replace default"

0 commit comments

Comments
 (0)