Skip to content

Commit 47187da

Browse files
authored
Merge branch 'master' into wp-debian-standalone-no-install
2 parents 305529d + 5140cc3 commit 47187da

22 files changed

Lines changed: 741 additions & 371 deletions

.github/workflows/cmdline.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,5 @@ jobs:
3535
3636
- name: Run tests
3737
run: |
38+
source scripts/env-setup
3839
${{ matrix.force_fail }} ${{ matrix.debug }} ./scripts/cmd_test/do-cmd-tests.sh

.github/workflows/debian-package.yml

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -99,31 +99,11 @@ jobs:
9999
${{ matrix.fips_ref == 'FIPS' && '--fips' || '' }}
100100
101101
- name: Test OpenSSL provider functionality
102+
shell: bash
102103
run: |
103-
WOLFPROV_CONF_BACKUP="/tmp/wolfprovider.conf.backup"
104-
105-
# Temporarily move wolfprovider config so we can toggle between providers
106-
echo "Temporarily disabling wolfprovider for default provider tests:"
107-
mkdir -p /tmp/openssl-test
108-
if [ -f $WOLFPROV_CONF_FILE ]; then
109-
mv $WOLFPROV_CONF_FILE $WOLFPROV_CONF_BACKUP
110-
echo " - Moved $WOLFPROV_CONF_FILE to $WOLFPROV_CONF_BACKUP"
111-
else
112-
echo "$WOLFPROV_CONF_FILE not found!"
113-
exit 1
114-
fi
115-
116104
# Run the do-cmd-test.sh script to execute interoperability tests
117105
echo "Running OpenSSL provider interoperability tests..."
118-
OPENSSL_BIN=$(eval which openssl) ${{ matrix.force_fail }} ${{ matrix.fips_ref == 'FIPS' && 'WOLFSSL_ISFIPS=1' || '' }} ./scripts/cmd_test/do-cmd-tests.sh
119-
120-
# Restore wolfprovider configuration
121-
echo "Restoring wolfprovider configuration:"
122-
if [ -f $WOLFPROV_CONF_BACKUP ]; then
123-
mv $WOLFPROV_CONF_BACKUP $WOLFPROV_CONF_FILE
124-
echo " - Restored $WOLFPROV_CONF_FILE from $WOLFPROV_CONF_BACKUP"
125-
fi
126-
106+
OPENSSL_BIN=$(eval which openssl) ${{ matrix.replace_default && 'WOLFPROV_REPLACE_DEFAULT=1' || '' }} ${{ matrix.force_fail }} ${{ matrix.fips_ref == 'FIPS' && 'WOLFSSL_ISFIPS=1' || '' }} ./scripts/cmd_test/do-cmd-tests.sh
127107
echo "PASS: All provider interoperability tests successful"
128108
129109
- name: Uninstall package and verify cleanup

.github/workflows/fips-ready.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,6 @@ jobs:
5757
# Run cmd tests to verify functionality
5858
export WOLFSSL_ISFIPS=1
5959
export ${{matrix.force_fail}}
60+
source scripts/env-setup
6061
6162
${{ matrix.force_fail }} ./scripts/cmd_test/do-cmd-tests.sh

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,12 @@ test/**/*.trs
8484
test/**/*.o
8585
test/**/.deps/
8686
test/**/.dirstamp
87+
aes_outputs
88+
ecc_outputs
89+
hash_outputs
8790
req_outputs
88-
scripts/cmd_test/req-test.log
91+
rsa_outputs
92+
scripts/cmd_test/*.log
8993

9094
IDE/Android/android-ndk-r26b/
9195
IDE/Android/openssl-source/

configure.ac

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,12 +124,24 @@ AS_IF([ test "x$ENABLED_SINGLETHREADED" = "xno" ],[
124124
])
125125

126126
# Replace default provider
127+
# Check if -DWOLFPROV_REPLACE_DEFAULT is in CFLAGS/CPPFLAGS first (for Yocto/CFLAGS usage)
128+
ENABLED_REPLACE_DEFAULT=no
129+
case " $CFLAGS $CPPFLAGS " in
130+
*" -DWOLFPROV_REPLACE_DEFAULT "*|*" -DWOLFPROV_REPLACE_DEFAULT="*)
131+
ENABLED_REPLACE_DEFAULT=yes
132+
;;
133+
esac
134+
127135
AC_ARG_ENABLE([replace-default],
128-
[AS_HELP_STRING([--enable-replace-default],[Build real libdefault.so from wp_default_replace.c (default: disabled).])],
136+
[AS_HELP_STRING([--enable-replace-default],[Build real libdefault.so from wp_default_replace.c (default: disabled). Can also be enabled via -DWOLFPROV_REPLACE_DEFAULT in CFLAGS.])],
129137
[ ENABLED_REPLACE_DEFAULT=$enableval ],
130-
[ ENABLED_REPLACE_DEFAULT=no ]
138+
[ ]
131139
)
132140

141+
if test "x$ENABLED_REPLACE_DEFAULT" = "xyes"; then
142+
AM_CFLAGS="$AM_CFLAGS -DWOLFPROV_REPLACE_DEFAULT"
143+
fi
144+
133145
AM_CONDITIONAL([BUILD_REPLACE_DEFAULT], [test "x$ENABLED_REPLACE_DEFAULT" = "xyes"])
134146

135147
# Set OpenSSL lib directory for installing libdefault.so

scripts/cmd_test/aes-cmd-test.sh

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,18 @@
1919
# You should have received a copy of the GNU General Public License
2020
# along with wolfProvider. If not, see <http://www.gnu.org/licenses/>.
2121

22-
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
23-
source "${SCRIPT_DIR}/cmd-test-common.sh"
24-
source "${SCRIPT_DIR}/clean-cmd-test.sh"
25-
cmd_test_env_setup "aes-test.log"
26-
clean_cmd_test "aes"
22+
CMD_TEST_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
23+
source "${CMD_TEST_DIR}/cmd-test-common.sh"
24+
source "${CMD_TEST_DIR}/clean-cmd-test.sh"
2725

28-
# Redirect all output to log file
29-
exec > >(tee -a "$LOG_FILE") 2>&1
26+
if [ -z "${DO_CMD_TESTS:-}" ]; then
27+
echo "This script is designed to be called from do-cmd-tests.sh"
28+
echo "Do not run this script directly - use do-cmd-tests.sh instead"
29+
exit 1
30+
fi
31+
32+
cmd_test_init "aes-test.log"
33+
clean_cmd_test "aes"
3034

3135
# Create test data and output directories
3236
mkdir -p aes_outputs
@@ -42,8 +46,6 @@ else
4246
MODES=("ecb" "cbc" "ctr" "cfb")
4347
fi
4448

45-
echo "=== Running AES Algorithm Comparisons ==="
46-
4749
# Run tests for each key size and mode
4850
for key_size in "${KEY_SIZES[@]}"; do
4951
for mode in "${MODES[@]}"; do
@@ -67,14 +69,16 @@ for key_size in "${KEY_SIZES[@]}"; do
6769
echo "Interop testing (encrypt with default, decrypt with wolfProvider):"
6870

6971
# Encryption with OpenSSL default provider
70-
if ! $OPENSSL_BIN enc -aes-${key_size}-${mode} -K "$key" $iv -provider default \
72+
use_default_provider
73+
if ! $OPENSSL_BIN enc -aes-${key_size}-${mode} -K "$key" $iv \
7174
-in aes_outputs/test_data.txt -out "$enc_file" -p; then
7275
echo "[FAIL] Interop AES-${key_size}-${mode}: OpenSSL encrypt failed"
7376
FAIL=1
7477
fi
7578

7679
# Decryption with wolfProvider
77-
if ! $OPENSSL_BIN enc -aes-${key_size}-${mode} -K "$key" $iv -provider-path "$WOLFPROV_PATH" -provider libwolfprov \
80+
use_wolf_provider
81+
if ! $OPENSSL_BIN enc -aes-${key_size}-${mode} -K "$key" $iv \
7882
-in "$enc_file" -out "$dec_file" -d -p; then
7983
echo "[FAIL] Interop AES-${key_size}-${mode}: wolfProvider decrypt failed"
8084
FAIL=1
@@ -96,14 +100,16 @@ for key_size in "${KEY_SIZES[@]}"; do
96100
echo "Interop testing (encrypt with wolfProvider, decrypt with default):"
97101

98102
# Encryption with wolfProvider
99-
if ! $OPENSSL_BIN enc -aes-${key_size}-${mode} -K "$key" $iv -provider-path "$WOLFPROV_PATH" -provider libwolfprov \
103+
use_wolf_provider
104+
if ! $OPENSSL_BIN enc -aes-${key_size}-${mode} -K "$key" $iv \
100105
-in aes_outputs/test_data.txt -out "$enc_file" -p; then
101106
echo "[FAIL] Interop AES-${key_size}-${mode}: wolfProvider encrypt failed"
102107
FAIL=1
103108
fi
104109

105110
# Decryption with OpenSSL default provider
106-
if ! $OPENSSL_BIN enc -aes-${key_size}-${mode} -K "$key" $iv -provider default \
111+
use_default_provider
112+
if ! $OPENSSL_BIN enc -aes-${key_size}-${mode} -K "$key" $iv \
107113
-in "$enc_file" -out "$dec_file" -d -p; then
108114
echo "[FAIL] Interop AES-${key_size}-${mode}: OpenSSL decrypt failed"
109115
FAIL=1

scripts/cmd_test/clean-cmd-test.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@
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+
if [ -z "${DO_CMD_TESTS:-}" ]; then
21+
echo "This script is designed to be called from do-cmd-tests.sh"
22+
echo "Do not run this script directly - use do-cmd-tests.sh instead"
23+
exit 1
24+
fi
25+
2026
# Function to clean up specific command test artifacts
2127
clean_cmd_test() {
2228
local test_type=$1

0 commit comments

Comments
 (0)