@@ -38,6 +38,7 @@ opensslversion="$( \
3838case "$opensslversion" in
3939 3.*) # Engines directory prefix for OpenSSL 3.x
4040 LIBP11_LT_OLDEST="3"
41+ LIBP11_OSSL_PROVIDER="yes"
4142 debian_ssl_prefix="engines-3";;
4243 1.1.*) # Engines directory prefix for OpenSSL 1.1.x
4344 LIBP11_LT_OLDEST="3"
@@ -50,6 +51,13 @@ case "$opensslversion" in
5051 debian_ssl_prefix="ssl/engines";;
5152esac
5253
54+ case "$OSSL_PKG_VERSION" in
55+ 3.*)
56+ AC_MSG_NOTICE ( [ 3.*] )
57+ LIBP11_OSSL_PROVIDER="yes";;
58+ esac
59+
60+ AM_CONDITIONAL([ LIBP11_OSSL_PROVIDER] , [ test x$LIBP11_OSSL_PROVIDER = xyes] )
5361
5462# LT Version numbers, remember to change them just *before* a release.
5563# (Code changed: REVISION++)
@@ -156,6 +164,29 @@ AC_ARG_ENABLE(
156164 [ enable_static_engine="no"]
157165)
158166
167+ AC_ARG_WITH (
168+ [ modulesdir] ,
169+ [ AS_HELP_STRING ( [ --with-modulesdir] , [ OpenSSL3 providers directory] ) ] ,
170+ [ providersexecdir="${withval}"] ,
171+ [
172+ providersexecdir="`$PKG_CONFIG --variable=modulesdir --silence-errors libcrypto`"
173+ if test "${providersexecdir}" = ""; then
174+ libcryptodir="`$PKG_CONFIG --variable=libdir --silence-errors libcrypto || \
175+ $PKG_CONFIG --variable=libdir openssl`"
176+ if test -d "$libcryptodir/$debian_ssl_prefix"; then
177+ # Debian-based OpenSSL package (for example Ubuntu)
178+ providersexecdir="$libcryptodir/$debian_ssl_prefix"
179+ else # Default OpenSSL providers directory
180+ providersexecdir="$libcryptodir/ossl-modules"
181+ fi
182+ if test "${prefix}" != "NONE" -o "${exec_prefix}" != "NONE"; then
183+ # Override the autodetected value with the default
184+ providersexecdir="\$(libdir)"
185+ fi
186+ fi
187+ ]
188+ )
189+
159190AC_ARG_WITH (
160191 [ pkcs11-module] ,
161192 [ AS_HELP_STRING ( [ --with-pkcs11-module] , [ default PKCS11 module] ) ] ,
@@ -220,6 +251,7 @@ pkgconfigdir="\$(libdir)/pkgconfig"
220251AC_SUBST ( [ pkgconfigdir] )
221252AC_SUBST ( [ apidocdir] )
222253AC_SUBST ( [ enginesexecdir] )
254+ AC_SUBST ( [ providersexecdir] )
223255AC_SUBST ( [ LIBP11_VERSION_MAJOR] )
224256AC_SUBST ( [ LIBP11_VERSION_MINOR] )
225257AC_SUBST ( [ LIBP11_VERSION_FIX] )
@@ -262,6 +294,7 @@ AC_CONFIG_FILES([
262294 src/libp11.pc
263295 src/libp11.rc
264296 src/pkcs11.rc
297+ src/pkcs11prov.rc
265298 doc/Makefile
266299 doc/doxygen.conf
267300 examples/Makefile
@@ -289,6 +322,7 @@ libp11 has been configured with the following options:
289322Version: ${PACKAGE_VERSION}
290323libp11 directory: $(eval eval eval echo "${libdir}")
291324Engine directory: ${enginesexecdir}
325+ Provider directory: ${providersexecdir}
292326Default PKCS11 module: ${pkcs11_module}
293327API doc support: ${enable_api_doc}
294328Static PKCS# 11 engine ${enable_static_engine}
0 commit comments