openssl-engine.mk 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. #
  3. # Copyright (C) 2022 Enéas Ulir de Queiroz
  4. ENGINES_DIR=engines-1.1
  5. define Package/openssl/engine/Default
  6. SECTION:=libs
  7. CATEGORY:=Libraries
  8. SUBMENU:=SSL
  9. DEPENDS:=libopenssl @OPENSSL_ENGINE +libopenssl-conf
  10. endef
  11. # 1 = engine name
  12. # 2 - package name, defaults to libopenssl-$(1)
  13. define Package/openssl/add-engine
  14. OSSL_ENG_PKG:=$(if $(2),$(2),libopenssl-$(1))
  15. Package/$$(OSSL_ENG_PKG)/conffiles:=/etc/ssl/engines.cnf.d/$(1).cnf
  16. define Package/$$(OSSL_ENG_PKG)/install
  17. $$(INSTALL_DIR) $$(1)/usr/lib/$(ENGINES_DIR)
  18. $$(INSTALL_BIN) $$(PKG_INSTALL_DIR)/usr/lib/$(ENGINES_DIR)/$(1).so \
  19. $$(1)/usr/lib/$(ENGINES_DIR)
  20. $$(INSTALL_DIR) $$(1)/etc/ssl/engines.cnf.d
  21. $$(INSTALL_DATA) ./files/$(1).cnf $$(1)/etc/ssl/engines.cnf.d/
  22. endef
  23. define Package/$$(OSSL_ENG_PKG)/postinst :=
  24. #!/bin/sh
  25. OPENSSL_UCI="$$$${IPKG_INSTROOT}/etc/config/openssl"
  26. [ -z "$$$${IPKG_INSTROOT}" ] && uci -q get openssl.$(1) >/dev/null && exit 0
  27. cat << EOF >> "$$$${OPENSSL_UCI}"
  28. config engine '$(1)'
  29. option enabled '1'
  30. EOF
  31. [ -n "$$$${IPKG_INSTROOT}" ] || /etc/init.d/openssl reload
  32. endef
  33. define Package/$$(OSSL_ENG_PKG)/postrm :=
  34. #!/bin/sh
  35. [ -n "$$$${IPKG_INSTROOT}" ] && exit 0
  36. uci delete openssl.$(1)
  37. uci commit openssl
  38. /etc/init.d/openssl reload
  39. endef
  40. endef