1# SPDX-License-Identifier: GPL-2.0+
2#
3# Copyright (c) 2024 Linaro Limited
4# Author: Raymond Mao <raymond.mao@linaro.org>
5
6MBEDTLS_LIB_DIR = external/mbedtls/library
7
8# shim layer for hash
9obj-$(CONFIG_$(PHASE_)MD5_MBEDTLS) += md5.o
10obj-$(CONFIG_$(PHASE_)SHA1_MBEDTLS) += sha1.o
11obj-$(CONFIG_$(PHASE_)SHA256_MBEDTLS) += sha256.o
12obj-$(CONFIG_$(PHASE_)SHA512_MBEDTLS) += sha512.o
13
14# x509 libraries
15obj-$(CONFIG_$(PHASE_)ASYMMETRIC_PUBLIC_KEY_MBEDTLS) += \
16	public_key.o
17obj-$(CONFIG_$(PHASE_)X509_CERTIFICATE_PARSER_MBEDTLS) += \
18	x509_cert_parser.o
19obj-$(CONFIG_$(PHASE_)PKCS7_MESSAGE_PARSER_MBEDTLS) += pkcs7_parser.o
20obj-$(CONFIG_$(PHASE_)MSCODE_PARSER_MBEDTLS) += mscode_parser.o
21obj-$(CONFIG_$(PHASE_)RSA_PUBLIC_KEY_PARSER_MBEDTLS) += rsa_helper.o
22
23# MbedTLS crypto library
24obj-$(CONFIG_$(XPL_)MBEDTLS_LIB) += mbedtls_lib_crypto.o
25mbedtls_lib_crypto-y := \
26	$(MBEDTLS_LIB_DIR)/platform_util.o \
27	$(MBEDTLS_LIB_DIR)/constant_time.o \
28	$(MBEDTLS_LIB_DIR)/md.o
29
30mbedtls_lib_crypto-$(CONFIG_$(PHASE_)MD5_MBEDTLS) += $(MBEDTLS_LIB_DIR)/md5.o
31mbedtls_lib_crypto-$(CONFIG_$(PHASE_)SHA1_MBEDTLS) += $(MBEDTLS_LIB_DIR)/sha1.o
32mbedtls_lib_crypto-$(CONFIG_$(PHASE_)SHA256_MBEDTLS) += \
33	$(MBEDTLS_LIB_DIR)/sha256.o
34mbedtls_lib_crypto-$(CONFIG_$(PHASE_)SHA512_MBEDTLS) += \
35	$(MBEDTLS_LIB_DIR)/sha512.o
36mbedtls_lib_crypto-$(CONFIG_$(PHASE_)HKDF_MBEDTLS) += \
37	$(MBEDTLS_LIB_DIR)/hkdf.o
38
39# MbedTLS X509 library
40obj-$(CONFIG_$(XPL_)MBEDTLS_LIB_X509) += mbedtls_lib_x509.o
41mbedtls_lib_x509-y := $(MBEDTLS_LIB_DIR)/x509.o
42mbedtls_lib_x509-$(CONFIG_$(PHASE_)ASN1_DECODER_MBEDTLS) += \
43	$(MBEDTLS_LIB_DIR)/asn1parse.o \
44	$(MBEDTLS_LIB_DIR)/asn1write.o \
45	$(MBEDTLS_LIB_DIR)/oid.o
46mbedtls_lib_x509-$(CONFIG_$(PHASE_)RSA_PUBLIC_KEY_PARSER_MBEDTLS) += \
47	$(MBEDTLS_LIB_DIR)/bignum.o \
48	$(MBEDTLS_LIB_DIR)/bignum_core.o \
49	$(MBEDTLS_LIB_DIR)/rsa.o \
50	$(MBEDTLS_LIB_DIR)/rsa_alt_helpers.o
51mbedtls_lib_x509-$(CONFIG_$(PHASE_)ASYMMETRIC_PUBLIC_KEY_MBEDTLS) += \
52	$(MBEDTLS_LIB_DIR)/pk.o \
53	$(MBEDTLS_LIB_DIR)/pk_wrap.o \
54	$(MBEDTLS_LIB_DIR)/pkparse.o
55mbedtls_lib_x509-$(CONFIG_$(PHASE_)X509_CERTIFICATE_PARSER_MBEDTLS) += \
56	$(MBEDTLS_LIB_DIR)/x509_crl.o \
57	$(MBEDTLS_LIB_DIR)/x509_crt.o
58mbedtls_lib_x509-$(CONFIG_$(PHASE_)PKCS7_MESSAGE_PARSER_MBEDTLS) += \
59	$(MBEDTLS_LIB_DIR)/pkcs7.o
60
61#mbedTLS TLS support
62obj-$(CONFIG_$(XPL_)MBEDTLS_LIB_TLS) += mbedtls_lib_tls.o
63mbedtls_lib_tls-y := \
64	$(MBEDTLS_LIB_DIR)/mps_reader.o \
65	$(MBEDTLS_LIB_DIR)/mps_trace.o \
66	$(MBEDTLS_LIB_DIR)/net_sockets.o \
67	$(MBEDTLS_LIB_DIR)/pk_ecc.o \
68	$(MBEDTLS_LIB_DIR)/ssl_cache.o \
69	$(MBEDTLS_LIB_DIR)/ssl_ciphersuites.o \
70	$(MBEDTLS_LIB_DIR)/ssl_client.o \
71	$(MBEDTLS_LIB_DIR)/ssl_cookie.o \
72	$(MBEDTLS_LIB_DIR)/ssl_debug_helpers_generated.o \
73	$(MBEDTLS_LIB_DIR)/ssl_msg.o \
74	$(MBEDTLS_LIB_DIR)/ssl_ticket.o \
75	$(MBEDTLS_LIB_DIR)/ssl_tls.o \
76	$(MBEDTLS_LIB_DIR)/ssl_tls12_client.o \
77	$(MBEDTLS_LIB_DIR)/hmac_drbg.o \
78	$(MBEDTLS_LIB_DIR)/ctr_drbg.o \
79	$(MBEDTLS_LIB_DIR)/entropy.o \
80	$(MBEDTLS_LIB_DIR)/entropy_poll.o \
81	$(MBEDTLS_LIB_DIR)/aes.o \
82	$(MBEDTLS_LIB_DIR)/cipher.o \
83	$(MBEDTLS_LIB_DIR)/cipher_wrap.o \
84	$(MBEDTLS_LIB_DIR)/ecdh.o \
85	$(MBEDTLS_LIB_DIR)/ecdsa.o \
86	$(MBEDTLS_LIB_DIR)/ecp.o \
87	$(MBEDTLS_LIB_DIR)/ecp_curves.o \
88	$(MBEDTLS_LIB_DIR)/ecp_curves_new.o \
89	$(MBEDTLS_LIB_DIR)/gcm.o \
90