summaryrefslogtreecommitdiffstats
path: root/include/openssl-engine.mk
blob: 891d284f1264ffd144514f69097483bcfe198841 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2022-2023 Enéas Ulir de Queiroz

ENGINES_DIR=engines-3

define Package/openssl/engine/Default
  SECTION:=libs
  CATEGORY:=Libraries
  SUBMENU:=SSL
  DEPENDS:=libopenssl @OPENSSL_ENGINE +libopenssl-conf
endef

# 1 = engine name
# 2 - package name, defaults to libopenssl-$(1)
define Package/openssl/add-engine
  OSSL_ENG_PKG:=$(if $(2),$(2),libopenssl-$(1))
  Package/$$(OSSL_ENG_PKG)/conffiles:=/etc/ssl/engines.cnf.d/$(1).cnf

  define Package/$$(OSSL_ENG_PKG)/install
	$$(INSTALL_DIR)  $$(1)/usr/lib/$(ENGINES_DIR)
	$$(INSTALL_BIN)  $$(PKG_INSTALL_DIR)/usr/lib/$(ENGINES_DIR)/$(1).so \
			 $$(1)/usr/lib/$(ENGINES_DIR)
	$$(INSTALL_DIR)  $$(1)/etc/ssl/engines.cnf.d
	$$(INSTALL_DATA) ./files/$(1).cnf $$(1)/etc/ssl/engines.cnf.d/
  endef

  define Package/$$(OSSL_ENG_PKG)/postinst :=
#!/bin/sh
OPENSSL_UCI="$$$${IPKG_INSTROOT}/etc/config/openssl"

[ -z "$$$${IPKG_INSTROOT}" ] && uci -q get openssl.$(1) >/dev/null && exit 0

cat << EOF >> "$$$${OPENSSL_UCI}"

config engine '$(1)'
	option enabled '1'
EOF

[ -n "$$$${IPKG_INSTROOT}" ] || /etc/init.d/openssl reload
  endef

  define Package/$$(OSSL_ENG_PKG)/postrm :=
#!/bin/sh
[ -n "$$$${IPKG_INSTROOT}" ] && exit 0
uci delete openssl.$(1)
uci commit openssl
/etc/init.d/openssl reload
  endef
endef