diff --git a/default_stub/wp_default_stub.c b/default_stub/wp_default_stub.c
index 52d9ea28..34b0bc88 100644
--- a/default_stub/wp_default_stub.c
+++ b/default_stub/wp_default_stub.c
@@ -17,24 +17,22 @@
* along with wolfProvider. If not, see .
*/
-#include
+/* Note: to simplify the build process, we are not using the OpenSSL headers.
+ * Instead, we are using functions that don't specify parameters. This
+ * allows us to build the stub without having to clone OpenSSL first,
+ * nor use the system OpenSSL headers.
+ */
/* Prototype of public function that initializes the wolfSSL provider. */
-OSSL_provider_init_fn wolfssl_provider_init;
+int wolfssl_provider_init();
/* Prototype for the wolfprov_provider_init function */
-int wolfprov_provider_init(const OSSL_CORE_HANDLE* handle,
- const OSSL_DISPATCH* in,
- const OSSL_DISPATCH** out,
- void** provCtx);
+int wolfprov_provider_init();
/*
* Provider implementation stub
*/
-int wolfprov_provider_init(const OSSL_CORE_HANDLE* handle,
- const OSSL_DISPATCH* in,
- const OSSL_DISPATCH** out,
- void** provCtx)
+int wolfprov_provider_init()
{
return 0;
}
diff --git a/scripts/build-wolfprovider.sh b/scripts/build-wolfprovider.sh
index 79c8c274..ad25d106 100755
--- a/scripts/build-wolfprovider.sh
+++ b/scripts/build-wolfprovider.sh
@@ -160,10 +160,6 @@ source ${SCRIPT_DIR}/utils-wolfprovider.sh
echo "Using openssl: $OPENSSL_TAG, wolfssl: $WOLFSSL_TAG"
-if [ "$WOLFPROV_REPLACE_DEFAULT" = "1" ]; then
- build_default_stub
-fi
-
init_wolfprov
exit $?
diff --git a/scripts/utils-openssl.sh b/scripts/utils-openssl.sh
index cd3d5780..89703aac 100755
--- a/scripts/utils-openssl.sh
+++ b/scripts/utils-openssl.sh
@@ -63,8 +63,6 @@ clone_openssl() {
if [ ! -d ${OPENSSL_SOURCE_DIR} ]; then
printf "\tOpenSSL source directory not found: ${OPENSSL_SOURCE_DIR}\n"
- printf "\tParent directory:\n"
- tree -L 2 $(dirname ${OPENSSL_SOURCE_DIR}/..) || true
CLONE_TAG=${USE_CUR_TAG:+${OPENSSL_TAG_CUR}}
CLONE_TAG=${CLONE_TAG:-${OPENSSL_TAG}}
@@ -165,7 +163,7 @@ install_openssl() {
clone_openssl
patch_openssl
check_openssl_replace_default_mismatch
- cd ${OPENSSL_SOURCE_DIR}
+ pushd ${OPENSSL_SOURCE_DIR} &> /dev/null
if [ ! -d ${OPENSSL_INSTALL_DIR} ]; then
printf "\tConfigure OpenSSL ${OPENSSL_TAG} ... "
@@ -223,7 +221,7 @@ install_openssl() {
printf "Done.\n"
fi
- cd ..
+ popd &> /dev/null
}
init_openssl() {
diff --git a/scripts/utils-wolfprovider.sh b/scripts/utils-wolfprovider.sh
index e3dc5696..0b7a1163 100644
--- a/scripts/utils-wolfprovider.sh
+++ b/scripts/utils-wolfprovider.sh
@@ -25,6 +25,7 @@ source ${SCRIPT_DIR}/utils-general.sh
WOLFPROV_SOURCE_DIR=${SCRIPT_DIR}/..
WOLFPROV_INSTALL_DIR=${SCRIPT_DIR}/../wolfprov-install
+LIBDEFAULT_STUB_SOURCE_DIR=${SCRIPT_DIR}/../default_stub
LIBDEFAULT_STUB_INSTALL_DIR=${SCRIPT_DIR}/../libdefault-stub-install
WOLFPROV_WITH_WOLFSSL=--with-wolfssl=${WOLFSSL_INSTALL_DIR}
@@ -58,9 +59,12 @@ WOLFPROV_DEBUG=${WOLFPROV_DEBUG:-0}
WOLFPROV_CLEAN=${WOLFPROV_CLEAN:-0}
WOLFPROV_DISTCLEAN=${WOLFPROV_DISTCLEAN:-0}
-build_default_stub() {
+install_default_stub() {
printf "\nBuilding default stub library ...\n"
- cd ${SCRIPT_DIR}/../default_stub
+ pushd ${LIBDEFAULT_STUB_SOURCE_DIR} &> /dev/null
+
+ # Ensure openssl is present for header files
+ clone_openssl
printf "\tGenerate build system ... "
if [ ! -e "configure" ]; then
@@ -104,7 +108,7 @@ build_default_stub() {
fi
printf "Done.\n"
- cd ${SCRIPT_DIR}/..
+ popd &> /dev/null
}
clean_wolfprov() {
@@ -116,12 +120,21 @@ clean_wolfprov() {
make clean >>$LOG_FILE 2>&1
fi
# Clean default_stub build artifacts
- if [ -f "default_stub/Makefile" ]; then
+ if [ -f "${LIBDEFAULT_STUB_SOURCE_DIR}/Makefile" ]; then
printf "Cleaning default stub ...\n"
- make -C default_stub clean >>$LOG_FILE 2>&1
+ make -C ${LIBDEFAULT_STUB_SOURCE_DIR} clean >>$LOG_FILE 2>&1
fi
# Remove root libdefault.la file
rm -f libdefault.la
+ # Remove autoconf files in default_stub
+ rm -f ${LIBDEFAULT_STUB_SOURCE_DIR}/aclocal.m4
+ rm -f ${LIBDEFAULT_STUB_SOURCE_DIR}/config.h
+ rm -f ${LIBDEFAULT_STUB_SOURCE_DIR}/config.log
+ rm -f ${LIBDEFAULT_STUB_SOURCE_DIR}/config.status
+ rm -f ${LIBDEFAULT_STUB_SOURCE_DIR}/configure
+ rm -f ${LIBDEFAULT_STUB_SOURCE_DIR}/depcomp
+ rm -f ${LIBDEFAULT_STUB_SOURCE_DIR}/install-sh
+ # Remove entire wolfProvider install directory
rm -rf ${WOLFPROV_INSTALL_DIR}
fi
if [ "$WOLFPROV_DISTCLEAN" -eq "1" ]; then
@@ -132,7 +145,7 @@ clean_wolfprov() {
}
install_wolfprov() {
- cd ${WOLFPROV_SOURCE_DIR}
+ pushd ${WOLFPROV_SOURCE_DIR} &> /dev/null
# Add stub library path for replace-default functionality after dependencies are installed
if [ "$WOLFPROV_REPLACE_DEFAULT" = "1" ]; then
@@ -143,6 +156,11 @@ install_wolfprov() {
fi
fi
+ # Build stub first so we can link OpenSSL against it
+ if [ "$WOLFPROV_REPLACE_DEFAULT" = "1" ]; then
+ install_default_stub
+ fi
+
init_openssl
init_wolfssl
@@ -209,6 +227,8 @@ install_wolfprov() {
exit 1
fi
printf "Done.\n"
+
+ popd &> /dev/null
}
init_wolfprov() {