2 # Copyright (C) 2011-2015 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR
)/rules.mk
13 PKG_BUILD_FLAGS
:=no-mips16 gc-sections no-lto
16 PKG_SOURCE_URL
=https
://github.com
/Mbed-TLS
/mbedtls.git
17 PKG_SOURCE_VERSION
:=2ca6c285a0dd3f33982dd57299012dacab1ff206
18 PKG_MIRROR_HASH
:=a684012126590b4e0b6ab41e244cc2af0d2bcfc4b6c94bf42fc37d2d08f0553e
20 PKG_LICENSE
:=GPL-2.0
-or-later
21 PKG_LICENSE_FILES
:=gpl-2.0.txt
22 PKG_CPE_ID
:=cpe
:/a
:arm
:mbed_tls
24 MBEDTLS_BUILD_OPTS_CURVES
= \
25 CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED \
26 CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED \
27 CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED \
28 CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED \
29 CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED \
30 CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED \
31 CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED \
32 CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED \
33 CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED \
34 CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED \
35 CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED \
36 CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED \
37 CONFIG_MBEDTLS_ECP_DP_CURVE448_ENABLED
39 MBEDTLS_BUILD_OPTS_CIPHERS
= \
40 CONFIG_MBEDTLS_AES_C \
41 CONFIG_MBEDTLS_CAMELLIA_C \
42 CONFIG_MBEDTLS_CCM_C \
43 CONFIG_MBEDTLS_CMAC_C \
44 CONFIG_MBEDTLS_DES_C \
45 CONFIG_MBEDTLS_GCM_C \
46 CONFIG_MBEDTLS_KEY_EXCHANGE_PSK_ENABLED \
47 CONFIG_MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED \
48 CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED \
49 CONFIG_MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \
50 CONFIG_MBEDTLS_KEY_EXCHANGE_RSA_ENABLED \
51 CONFIG_MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED \
52 CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \
53 CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED \
54 CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED \
55 CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED \
56 CONFIG_MBEDTLS_NIST_KW_C \
57 CONFIG_MBEDTLS_RIPEMD160_C \
58 CONFIG_MBEDTLS_RSA_NO_CRT \
59 CONFIG_MBEDTLS_XTEA_C \
60 CONFIG_MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \
61 CONFIG_MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \
62 CONFIG_MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED
65 $(MBEDTLS_BUILD_OPTS_CURVES
) \
66 $(MBEDTLS_BUILD_OPTS_CIPHERS
) \
67 CONFIG_MBEDTLS_CERTS_C \
68 CONFIG_MBEDTLS_CIPHER_MODE_OFB \
69 CONFIG_MBEDTLS_CIPHER_MODE_XTS \
70 CONFIG_MBEDTLS_DEBUG_C \
71 CONFIG_MBEDTLS_ENTROPY_FORCE_SHA256 \
72 CONFIG_MBEDTLS_HKDF_C \
73 CONFIG_MBEDTLS_PLATFORM_C \
74 CONFIG_MBEDTLS_SELF_TEST \
75 CONFIG_MBEDTLS_SSL_RENEGOTIATION \
76 CONFIG_MBEDTLS_SSL_TRUNCATED_HMAC \
77 CONFIG_MBEDTLS_THREADING_C \
78 CONFIG_MBEDTLS_THREADING_PTHREAD \
79 CONFIG_MBEDTLS_VERSION_C \
80 CONFIG_MBEDTLS_VERSION_FEATURES \
81 CONFIG_MBEDTLS_PSA_CRYPTO_CLIENT \
82 CONFIG_MBEDTLS_DEPRECATED_WARNING \
83 CONFIG_MBEDTLS_SSL_PROTO_TLS1_2 \
84 CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 \
85 CONFIG_MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
87 PKG_CONFIG_DEPENDS
:= $(MBEDTLS_BUILD_OPTS
)
89 include $(INCLUDE_DIR
)/package.mk
90 include $(INCLUDE_DIR
)/cmake.mk
92 define Package
/mbedtls
/Default
94 URL
:=https
://tls.mbed.org
97 define Package
/mbedtls
/Default
/description
98 The aim of the mbedtls project is to provide a quality
, open-source
99 cryptographic library written in C and targeted at embedded systems.
102 define Package
/libmbedtls
103 $(call Package
/mbedtls
/Default
)
112 define Package
/libmbedtls
/config
113 source
"$(SOURCE)/Config.in"
116 define Package
/mbedtls-util
117 $(call Package
/mbedtls
/Default
)
124 define Package
/libmbedtls
/description
125 $(call Package
/mbedtls
/Default
/description
)
126 This package contains the mbedtls library.
129 define Package
/mbedtls-util
/description
130 $(call Package
/mbedtls
/Default
/description
)
131 This package contains mbedtls helper programs for private key and
132 CSR generation
(gen_key
, cert_req
)
135 TARGET_CFLAGS
:= $(filter-out -O
%,$(TARGET_CFLAGS
))
138 -DCMAKE_POSITION_INDEPENDENT_CODE
=ON \
139 -DUSE_SHARED_MBEDTLS_LIBRARY
:Bool
=ON \
140 -DENABLE_TESTING
:Bool
=OFF \
141 -DENABLE_PROGRAMS
:Bool
=ON
144 $(call Build
/Prepare
/Default
)
146 $(if
$(strip $(foreach opt
,$(MBEDTLS_BUILD_OPTS
),$($(opt
)))),
147 $(foreach opt
,$(MBEDTLS_BUILD_OPTS
),
148 $(PKG_BUILD_DIR
)/scripts
/config.py \
149 -f
$(PKG_BUILD_DIR
)/include/mbedtls
/mbedtls_config.h \
150 $(if
$($(opt
)),set
,unset
) $(patsubst CONFIG_
%,%,$(opt
))),)
153 define Build
/InstallDev
154 $(INSTALL_DIR
) $(1)/usr
/include
156 $(PKG_INSTALL_DIR
)/usr
/include/mbedtls \
157 $(PKG_INSTALL_DIR
)/usr
/include/psa \
159 $(INSTALL_DIR
) $(1)/usr
/lib
160 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/lib
*.so
* $(1)/usr
/lib
/
161 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/lib
*.a
$(1)/usr
/lib
/
162 $(INSTALL_DIR
) $(1)/usr
/lib
/pkgconfig
164 $(PKG_INSTALL_DIR
)/usr
/lib
/pkgconfig
/mbedcrypto.
pc \
165 $(PKG_INSTALL_DIR
)/usr
/lib
/pkgconfig
/mbedtls.
pc \
166 $(PKG_INSTALL_DIR
)/usr
/lib
/pkgconfig
/mbedx509.
pc \
167 $(1)/usr
/lib
/pkgconfig
/
170 define Package
/libmbedtls
/install
171 $(INSTALL_DIR
) $(1)/usr
/lib
172 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/lib
*.so.
* $(1)/usr
/lib
/
175 define Package
/mbedtls-util
/install
176 $(INSTALL_DIR
) $(1)/usr
/bin
177 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/bin
/gen_key
$(1)/usr
/bin
/
178 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/bin
/cert_req
$(1)/usr
/bin
/
181 $(eval
$(call BuildPackage
,libmbedtls
))
182 $(eval
$(call BuildPackage
,mbedtls-util
))