Skip to content

Commit e056293

Browse files
committed
Default stub build updates
1 parent d7539f2 commit e056293

4 files changed

Lines changed: 36 additions & 24 deletions

File tree

default_stub/wp_default_stub.c

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,22 @@
1717
* along with wolfProvider. If not, see <http://www.gnu.org/licenses/>.
1818
*/
1919

20-
#include <openssl/provider.h>
20+
/* Note: to simplify the build process, we are not using the OpenSSL headers.
21+
* Instead, we are using functions that don't specify parameters. This
22+
* allows us to build the stub without having to clone OpenSSL first,
23+
* nor use the system OpenSSL headers.
24+
*/
2125

2226
/* Prototype of public function that initializes the wolfSSL provider. */
23-
OSSL_provider_init_fn wolfssl_provider_init;
27+
int wolfssl_provider_init();
2428

2529
/* Prototype for the wolfprov_provider_init function */
26-
int wolfprov_provider_init(const OSSL_CORE_HANDLE* handle,
27-
const OSSL_DISPATCH* in,
28-
const OSSL_DISPATCH** out,
29-
void** provCtx);
30+
int wolfprov_provider_init();
3031

3132
/*
3233
* Provider implementation stub
3334
*/
34-
int wolfprov_provider_init(const OSSL_CORE_HANDLE* handle,
35-
const OSSL_DISPATCH* in,
36-
const OSSL_DISPATCH** out,
37-
void** provCtx)
35+
int wolfprov_provider_init()
3836
{
3937
return 0;
4038
}

scripts/build-wolfprovider.sh

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -160,10 +160,6 @@ source ${SCRIPT_DIR}/utils-wolfprovider.sh
160160

161161
echo "Using openssl: $OPENSSL_TAG, wolfssl: $WOLFSSL_TAG"
162162

163-
if [ "$WOLFPROV_REPLACE_DEFAULT" = "1" ]; then
164-
build_default_stub
165-
fi
166-
167163
init_wolfprov
168164

169165
exit $?

scripts/utils-openssl.sh

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,6 @@ clone_openssl() {
6363

6464
if [ ! -d ${OPENSSL_SOURCE_DIR} ]; then
6565
printf "\tOpenSSL source directory not found: ${OPENSSL_SOURCE_DIR}\n"
66-
printf "\tParent directory:\n"
67-
tree -L 2 $(dirname ${OPENSSL_SOURCE_DIR}/..) || true
6866
CLONE_TAG=${USE_CUR_TAG:+${OPENSSL_TAG_CUR}}
6967
CLONE_TAG=${CLONE_TAG:-${OPENSSL_TAG}}
7068

@@ -165,7 +163,7 @@ install_openssl() {
165163
clone_openssl
166164
patch_openssl
167165
check_openssl_replace_default_mismatch
168-
cd ${OPENSSL_SOURCE_DIR}
166+
pushd ${OPENSSL_SOURCE_DIR} &> /dev/null
169167

170168
if [ ! -d ${OPENSSL_INSTALL_DIR} ]; then
171169
printf "\tConfigure OpenSSL ${OPENSSL_TAG} ... "
@@ -223,7 +221,7 @@ install_openssl() {
223221
printf "Done.\n"
224222
fi
225223

226-
cd ..
224+
popd &> /dev/null
227225
}
228226

229227
init_openssl() {

scripts/utils-wolfprovider.sh

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ source ${SCRIPT_DIR}/utils-general.sh
2525

2626
WOLFPROV_SOURCE_DIR=${SCRIPT_DIR}/..
2727
WOLFPROV_INSTALL_DIR=${SCRIPT_DIR}/../wolfprov-install
28+
LIBDEFAULT_STUB_SOURCE_DIR=${SCRIPT_DIR}/../default_stub
2829
LIBDEFAULT_STUB_INSTALL_DIR=${SCRIPT_DIR}/../libdefault-stub-install
2930
WOLFPROV_WITH_WOLFSSL=--with-wolfssl=${WOLFSSL_INSTALL_DIR}
3031

@@ -58,9 +59,12 @@ WOLFPROV_DEBUG=${WOLFPROV_DEBUG:-0}
5859
WOLFPROV_CLEAN=${WOLFPROV_CLEAN:-0}
5960
WOLFPROV_DISTCLEAN=${WOLFPROV_DISTCLEAN:-0}
6061

61-
build_default_stub() {
62+
install_default_stub() {
6263
printf "\nBuilding default stub library ...\n"
63-
cd ${SCRIPT_DIR}/../default_stub
64+
pushd ${LIBDEFAULT_STUB_SOURCE_DIR} &> /dev/null
65+
66+
# Ensure openssl is present for header files
67+
clone_openssl
6468

6569
printf "\tGenerate build system ... "
6670
if [ ! -e "configure" ]; then
@@ -104,7 +108,7 @@ build_default_stub() {
104108
fi
105109
printf "Done.\n"
106110

107-
cd ${SCRIPT_DIR}/..
111+
popd &> /dev/null
108112
}
109113

110114
clean_wolfprov() {
@@ -116,12 +120,21 @@ clean_wolfprov() {
116120
make clean >>$LOG_FILE 2>&1
117121
fi
118122
# Clean default_stub build artifacts
119-
if [ -f "default_stub/Makefile" ]; then
123+
if [ -f "${LIBDEFAULT_STUB_SOURCE_DIR}/Makefile" ]; then
120124
printf "Cleaning default stub ...\n"
121-
make -C default_stub clean >>$LOG_FILE 2>&1
125+
make -C ${LIBDEFAULT_STUB_SOURCE_DIR} clean >>$LOG_FILE 2>&1
122126
fi
123127
# Remove root libdefault.la file
124128
rm -f libdefault.la
129+
# Remove autoconf files in default_stub
130+
rm -f ${LIBDEFAULT_STUB_SOURCE_DIR}/aclocal.m4
131+
rm -f ${LIBDEFAULT_STUB_SOURCE_DIR}/config.h
132+
rm -f ${LIBDEFAULT_STUB_SOURCE_DIR}/config.log
133+
rm -f ${LIBDEFAULT_STUB_SOURCE_DIR}/config.status
134+
rm -f ${LIBDEFAULT_STUB_SOURCE_DIR}/configure
135+
rm -f ${LIBDEFAULT_STUB_SOURCE_DIR}/depcomp
136+
rm -f ${LIBDEFAULT_STUB_SOURCE_DIR}/install-sh
137+
# Remove entire wolfProvider install directory
125138
rm -rf ${WOLFPROV_INSTALL_DIR}
126139
fi
127140
if [ "$WOLFPROV_DISTCLEAN" -eq "1" ]; then
@@ -132,7 +145,7 @@ clean_wolfprov() {
132145
}
133146

134147
install_wolfprov() {
135-
cd ${WOLFPROV_SOURCE_DIR}
148+
pushd ${WOLFPROV_SOURCE_DIR} &> /dev/null
136149

137150
# Add stub library path for replace-default functionality after dependencies are installed
138151
if [ "$WOLFPROV_REPLACE_DEFAULT" = "1" ]; then
@@ -143,6 +156,11 @@ install_wolfprov() {
143156
fi
144157
fi
145158

159+
# Build stub first so we can link OpenSSL against it
160+
if [ "$WOLFPROV_REPLACE_DEFAULT" = "1" ]; then
161+
install_default_stub
162+
fi
163+
146164
init_openssl
147165
init_wolfssl
148166

@@ -209,6 +227,8 @@ install_wolfprov() {
209227
exit 1
210228
fi
211229
printf "Done.\n"
230+
231+
popd &> /dev/null
212232
}
213233

214234
init_wolfprov() {

0 commit comments

Comments
 (0)