openssl: make UCI config aware of built-in engines
[openwrt/openwrt.git] / package / libs / openssl / Makefile
index b076a9c1fa1651a351d4f6e2401301023049254b..66872d54366944923bd015d65d0a8a6e951cdef1 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openssl
 PKG_VERSION:=3.0.8
-PKG_RELEASE:=5
+PKG_RELEASE:=6
 PKG_BUILD_FLAGS:=no-mips16 gc-sections
 
 PKG_BUILD_PARALLEL:=1
@@ -138,6 +138,30 @@ $(call Package/openssl/Default/description)
 This package installs the OpenSSL configuration file /etc/ssl/openssl.cnf.
 endef
 
+ifneq ($(CONFIG_OPENSSL_ENGINE_BUILTIN_PADLOCK)$(CONFIG_OPENSSL_ENGINE_BUILTIN_DEVCRYPTO),)
+define Package/libopenssl-conf/postinst
+#!/bin/sh
+OPENSSL_UCI="$${IPKG_INSTROOT}/etc/config/openssl"
+
+add_engine_config() {
+       if [ -z "$${IPKG_INSTROOT}" ] && uci -q get "openssl.$$1" >/dev/null; then
+               [ "$$(uci -q get "openssl.$$1.builtin")" = 1 ] && return
+               uci set "openssl.$$1.builtin=1" && uci commit openssl
+               return
+       fi
+       {
+               echo "engine '$$1'"
+               echo "  option enabled '1'"
+               echo "  option builtin '1'"
+               echo
+       } >>"$${OPENSSL_UCI}"
+}
+
+$(if $(CONFIG_OPENSSL_ENGINE_BUILTIN_DEVCRYPTO),add_engine_config devcrypto)
+$(if $(CONFIG_OPENSSL_ENGINE_BUILTIN_PADLOCK),add_engine_config padlock)
+endef
+endif
+
 $(eval $(call Package/openssl/add-engine,afalg))
 define Package/libopenssl-afalg
   $(call Package/openssl/Default)