Skip to content

Commit a29736f

Browse files
committed
Update location of default openssl.cnf
1 parent 0279fa8 commit a29736f

File tree

12 files changed

+84
-63
lines changed

12 files changed

+84
-63
lines changed

.github/workflows/debian-package.yml

Lines changed: 40 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ jobs:
4545
WOLFSSL_PACKAGES_PATH: /tmp/wolfssl-packages
4646
OPENSSL_PACKAGES_PATH: /tmp/openssl-packages
4747
WOLFPROV_PACKAGES_PATH: /tmp/wolfprov-packages
48+
WOLFPROV_CONF_FILE: /etc/ssl/openssl.cnf.d/wolfprovider.conf
4849
steps:
4950
- name: Checkout wolfProvider
5051
uses: actions/checkout@v4
@@ -83,17 +84,16 @@ jobs:
8384
8485
- name: Test OpenSSL provider functionality
8586
run: |
86-
PROVIDER_CONF="/usr/lib/ssl/openssl.cnf.d/wolfprovider.conf"
87-
PROVIDER_CONF_BACKUP="/tmp/wolfprovider.conf.backup"
87+
WOLFPROV_CONF_BACKUP="/tmp/wolfprovider.conf.backup"
8888
8989
# Temporarily move wolfprovider config so we can toggle between providers
9090
echo "Temporarily disabling wolfprovider for default provider tests:"
9191
mkdir -p /tmp/openssl-test
92-
if [ -f $PROVIDER_CONF ]; then
93-
mv $PROVIDER_CONF $PROVIDER_CONF_BACKUP
94-
echo " - Moved $PROVIDER_CONF to $PROVIDER_CONF_BACKUP"
92+
if [ -f $WOLFPROV_CONF_FILE ]; then
93+
mv $WOLFPROV_CONF_FILE $WOLFPROV_CONF_BACKUP
94+
echo " - Moved $WOLFPROV_CONF_FILE to $WOLFPROV_CONF_BACKUP"
9595
else
96-
echo "$PROVIDER_CONF not found!"
96+
echo "$WOLFPROV_CONF_FILE not found!"
9797
exit 1
9898
fi
9999
@@ -103,16 +103,36 @@ jobs:
103103
104104
# Restore wolfprovider configuration
105105
echo "Restoring wolfprovider configuration:"
106-
if [ -f $PROVIDER_CONF_BACKUP ]; then
107-
mv $PROVIDER_CONF_BACKUP $PROVIDER_CONF
108-
echo " - Restored $PROVIDER_CONF from $PROVIDER_CONF_BACKUP"
106+
if [ -f $WOLFPROV_CONF_BACKUP ]; then
107+
mv $WOLFPROV_CONF_BACKUP $WOLFPROV_CONF_FILE
108+
echo " - Restored $WOLFPROV_CONF_FILE from $WOLFPROV_CONF_BACKUP"
109109
fi
110110
111111
echo "PASS: All provider interoperability tests successful"
112112
113113
- name: Uninstall package and verify cleanup
114114
run: |
115115
# Uninstall the package
116+
apt-get remove -y libwolfprov
117+
118+
# Verify default OpenSSL provider is active
119+
echo "Verifying Default Provider is Active:"
120+
openssl list -providers
121+
122+
# Verify that the default provider is present and active
123+
echo "Checking default provider status:"
124+
if openssl list -providers | grep -q "default" && \
125+
openssl list -providers | grep -q "OpenSSL Default Provider" && \
126+
openssl list -providers | grep -q "status: active"; then
127+
echo "Default provider is present and active"
128+
else
129+
echo "Default provider verification failed"
130+
echo "Provider output:"
131+
openssl list -providers
132+
exit 1
133+
fi
134+
135+
# Purge the package to remove all files
116136
apt-get remove --purge -y libwolfprov
117137
118138
# Verify the package is removed
@@ -125,27 +145,24 @@ jobs:
125145
fi
126146
127147
# Check if the config file is removed
128-
if [ -f /usr/lib/ssl/openssl.cnf.d/wolfprovider.conf ]; then
148+
if [ -f $WOLFPROV_CONF_FILE ]; then
129149
echo "wolfprovider.conf still exists after package removal"
130-
ls -la /usr/lib/ssl/openssl.cnf.d/
150+
ls -la $(dirname $WOLFPROV_CONF_FILE)
131151
exit 1
132152
else
133153
echo "wolfprovider.conf successfully removed"
134154
fi
135155
136156
# Check if the library files are removed
137-
if [ -f /usr/lib/*/ossl-modules/libwolfprov.so ]; then
157+
WOLFPROV_OBJS=$(find /usr/lib -name "libwolfprov.so*")
158+
if [ -n "$WOLFPROV_OBJS" ]; then
138159
echo "libwolfprov.so still exists after package removal"
139-
find /usr/lib -name "libwolfprov.so*" 2>/dev/null || true
160+
echo "$WOLFPROV_OBJS"
140161
exit 1
141162
else
142163
echo "libwolfprov.so successfully removed"
143164
fi
144165
145-
# Verify default OpenSSL provider is active
146-
echo "Verifying Default Provider is Active:"
147-
openssl list -providers
148-
149166
# Verify that the default provider is present and active
150167
echo "Checking default provider status:"
151168
if openssl list -providers | grep -q "default" && \
@@ -181,6 +198,7 @@ jobs:
181198
WOLFSSL_PACKAGES_PATH: /tmp/wolfssl-packages
182199
OPENSSL_PACKAGES_PATH: /tmp/openssl-packages
183200
WOLFPROV_PACKAGES_PATH: /tmp/wolfprov-packages
201+
WOLFPROV_CONF_FILE: /etc/ssl/openssl.cnf.d/wolfprovider.conf
184202
steps:
185203
- name: Checkout wolfProvider
186204
uses: actions/checkout@v4
@@ -251,17 +269,18 @@ jobs:
251269
echo "Verifying wolfprov configuration..."
252270
253271
# Check if configuration file exists
254-
if [ -f /usr/lib/ssl/openssl.cnf.d/wolfprovider.conf ]; then
272+
if [ -f $WOLFPROV_CONF_FILE ]; then
255273
echo "SUCCESS: wolfprovider.conf exists"
256-
cat /usr/lib/ssl/openssl.cnf.d/wolfprovider.conf
274+
cat $WOLFPROV_CONF_FILE
257275
else
258276
echo "WARNING: wolfprovider.conf not found"
259277
fi
260278
261279
# Check if library file exists
262-
if [ -f /usr/lib/*/ossl-modules/libwolfprov.so ]; then
280+
WOLFPROV_OBJS=$(find /usr/lib -name "libwolfprov.so*")
281+
if [ -n "$WOLFPROV_OBJS" ]; then
263282
echo "SUCCESS: libwolfprov.so exists"
264-
find /usr/lib -name "libwolfprov.so*" 2>/dev/null
283+
echo "$WOLFPROV_OBJS"
265284
else
266285
echo "WARNING: libwolfprov.so not found"
267286
fi

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ test/**/*.trs
8484
test/**/*.o
8585
test/**/.deps/
8686
test/**/.dirstamp
87+
req_outputs
88+
scripts/cmd_test/req-test.log
8789

8890
IDE/Android/android-ndk-r26b/
8991
IDE/Android/openssl-source/
@@ -118,4 +120,5 @@ debian/libssl3*
118120
!debian/*.docs
119121
!debian/*.links
120122
!debian/*.triggers
123+
!debian/shlib.local
121124

debian/libwolfprov.install

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
usr/lib/*/ossl-modules/libwolfprov.so.0.0.0
2-
usr/lib/ssl/openssl.cnf.d
3-
usr/lib/ssl/openssl.cnf.d/wolfprovider.conf
2+
etc/ssl/openssl.cnf.d
3+
etc/ssl/openssl.cnf.d/wolfprovider.conf

debian/libwolfprov.postinst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
set -e
33

44
# Define the include line to add to the openssl.cnf file
5-
INCLUDE_LINE=".include /usr/lib/ssl/openssl.cnf.d/wolfprovider.conf"
5+
INCLUDE_LINE=".include /etc/ssl/openssl.cnf.d/wolfprovider.conf"
66

77
# Search for the openssl.cnf file in /usr, /lib and /etc
88
CONF_FILES=$(find /usr /lib /etc -name openssl.cnf 2>/dev/null)

debian/libwolfprov.postrm

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/bin/sh
2+
set -e
3+
4+
# On removal/purge of libwolfprov, ensure any include of wolfprovider.conf
5+
# is removed from system openssl.cnf files to avoid stale includes.
6+
7+
# Search for the openssl.cnf file in /usr, /lib and /etc
8+
CONF_FILES=$(find /usr /lib /etc -name openssl.cnf 2>/dev/null)
9+
10+
case "$1" in
11+
remove|purge)
12+
for CONF_FILE in $CONF_FILES; do
13+
# Remove any line containing both ".include" and "wolfprovider.conf"
14+
sed -i '/\.include/ { /wolfprovider\.conf/ d; }' "$CONF_FILE"
15+
printf "Removed wolfprovider include line(s) from %s\n" "$CONF_FILE"
16+
done
17+
;;
18+
esac
19+
20+
#DEBHELPER#
21+
exit 0
22+
23+

debian/libwolfprov.triggers

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,4 @@ interest-noawait /etc/ssl/openssl.cnf
33
interest-noawait /etc/ssl/openssl.cnf.d
44
interest-noawait /lib/ssl/openssl.cnf
55
interest-noawait /lib/ssl/openssl.cnf.d
6-
interest-noawait /usr/lib/ssl/openssl.cnf
7-
interest-noawait /usr/lib/ssl/openssl.cnf.d
86

debian/openssl.install

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
usr/bin/openssl
2-
usr/share/openssl-defaults/openssl.cnf
2+
etc/ssl/openssl.cnf

debian/openssl.links

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# openssl expects the conf file under /usr/lib/ssl, so ensure the symlink
2+
# is set to match the normal install
3+
/etc/ssl/openssl.cnf /usr/lib/ssl/openssl.cnf
4+
# Other symlinks expected by Debian
5+
/etc/ssl/certs /usr/lib/ssl/certs
6+
/etc/ssl/private /usr/lib/ssl/private

debian/openssl.postinst

Lines changed: 0 additions & 19 deletions
This file was deleted.

debian/openssl.postrm

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)