xref: /optee_os/core/lib/libtomcrypt/sub.mk (revision df24e6517b6454cf906c16979ea0e7546c5c99d5)
1global-incdirs-y += include
2global-incdirs-y += src/headers
3
4cppflags-lib-y += -DARGTYPE=4  # Make LTC_ARGCHK() return on error
5cppflags-lib-y += -DLTC_CLEAN_STACK -DLTC_NO_TEST -DLTC_NO_PROTOTYPES
6cppflags-lib-y += -DLTC_NO_TABLES -DLTC_HASH_HELPERS
7cppflags-lib-$(_CFG_CORE_LTC_SIZE_OPTIMIZATION) += -DLTC_SMALL_CODE
8
9cppflags-lib-y += -DLTC_NO_CIPHERS
10
11ifneq (,$(filter y,$(_CFG_CORE_LTC_AES) $(_CFG_CORE_LTC_AES_DESC)))
12	cppflags-lib-y += -DLTC_RIJNDAEL
13endif
14ifeq ($(_CFG_CORE_LTC_DES),y)
15	cppflags-lib-y += -DLTC_DES
16endif
17
18cppflags-lib-y += -DLTC_NO_MODES
19
20ifeq ($(_CFG_CORE_LTC_ECB),y)
21	cppflags-lib-y += -DLTC_ECB_MODE
22endif
23ifeq ($(_CFG_CORE_LTC_CBC),y)
24	cppflags-lib-y += -DLTC_CBC_MODE
25endif
26ifeq ($(_CFG_CORE_LTC_CTR),y)
27	cppflags-lib-y += -DLTC_CTR_MODE
28endif
29ifeq ($(_CFG_CORE_LTC_XTS),y)
30	cppflags-lib-y += -DLTC_XTS_MODE
31endif
32
33cppflags-lib-y += -DLTC_NO_HASHES
34
35ifeq ($(_CFG_CORE_LTC_MD5),y)
36	cppflags-lib-y += -DLTC_MD5
37endif
38ifeq ($(_CFG_CORE_LTC_SHA1),y)
39	cppflags-lib-y += -DLTC_SHA1
40endif
41ifeq ($(_CFG_CORE_LTC_SHA1_ARM32_CE),y)
42	cppflags-lib-y += -DLTC_SHA1_ARM32_CE
43endif
44ifeq ($(_CFG_CORE_LTC_SHA1_ARM64_CE),y)
45	cppflags-lib-y += -DLTC_SHA1_ARM64_CE
46endif
47ifeq ($(_CFG_CORE_LTC_SHA224),y)
48	cppflags-lib-y += -DLTC_SHA224
49endif
50ifneq (,$(filter y,$(_CFG_CORE_LTC_SHA256) $(_CFG_CORE_LTC_SHA256_DESC)))
51	cppflags-lib-y += -DLTC_SHA256
52endif
53ifeq ($(_CFG_CORE_LTC_SHA256_ARM32_CE),y)
54	cppflags-lib-y += -DLTC_SHA256_ARM32_CE
55endif
56ifeq ($(_CFG_CORE_LTC_SHA256_ARM64_CE),y)
57	cppflags-lib-y += -DLTC_SHA256_ARM64_CE
58endif
59ifneq (,$(filter y,$(_CFG_CORE_LTC_SHA384) $(_CFG_CORE_LTC_SHA384_DESC)))
60	cppflags-lib-y += -DLTC_SHA384
61endif
62ifneq (,$(filter y,$(_CFG_CORE_LTC_SHA512) $(_CFG_CORE_LTC_SHA512_DESC)))
63	cppflags-lib-y += -DLTC_SHA512
64endif
65ifeq ($(_CFG_CORE_LTC_SHA512_256),y)
66	cppflags-lib-y += -DLTC_SHA512_256
67endif
68
69cppflags-lib-y += -DLTC_NO_MACS
70
71ifeq ($(_CFG_CORE_LTC_HMAC),y)
72	cppflags-lib-y += -DLTC_HMAC
73endif
74ifeq ($(_CFG_CORE_LTC_CMAC),y)
75	cppflags-lib-y += -DLTC_OMAC
76endif
77ifeq ($(_CFG_CORE_LTC_CCM),y)
78	cppflags-lib-y += -DLTC_CCM_MODE
79endif
80ifeq ($(_CFG_CORE_LTC_GCM),y)
81	cppflags-lib-y += -DLTC_GCM_MODE
82endif
83
84cppflags-lib-y += -DLTC_NO_PK
85
86ifeq ($(_CFG_CORE_LTC_RSA),y)
87   cppflags-lib-y += -DLTC_MRSA
88endif
89ifeq ($(_CFG_CORE_LTC_DSA),y)
90   cppflags-lib-y += -DLTC_MDSA
91endif
92ifeq ($(_CFG_CORE_LTC_DH),y)
93   cppflags-lib-y += -DLTC_MDH
94endif
95ifeq ($(_CFG_CORE_LTC_ECC),y)
96   cppflags-lib-y += -DLTC_MECC
97
98   # use Shamir's trick for point mul (speeds up signature verification)
99   cppflags-lib-y += -DLTC_ECC_SHAMIR
100
101   cppflags-lib-y += -DLTC_ECC192
102   cppflags-lib-y += -DLTC_ECC224
103   cppflags-lib-y += -DLTC_ECC256
104   cppflags-lib-y += -DLTC_ECC384
105   cppflags-lib-y += -DLTC_ECC521
106
107   # ECC 521 bits is the max supported key size
108   cppflags-lib-y += -DLTC_MAX_ECC=521
109endif
110ifneq (,$(filter y,$(_CFG_CORE_LTC_SM2_DSA) $(_CFG_CORE_LTC_SM2_PKE)))
111   cppflags-lib-y += -DLTC_ECC_SM2
112endif
113
114cppflags-lib-y += -DLTC_NO_PKCS
115
116ifneq (,$(filter y,$(_CFG_CORE_LTC_RSA) $(_CFG_CORE_LTC_DSA) $(_CFG_CORE_LTC_ECC) $(_CFG_CORE_LTC_HASH)))
117   cppflags-lib-y += -DLTC_DER
118endif
119
120cppflags-lib-y += -DLTC_NO_PRNGS -DLTC_FORTUNA
121
122cflags-lib-$(_CFG_CORE_LTC_SIZE_OPTIMIZATION) += -Os
123
124subdirs-y += src
125
126srcs-$(_CFG_CORE_LTC_HASH) += hash.c
127srcs-$(_CFG_CORE_LTC_HMAC) += hmac.c
128srcs-$(_CFG_CORE_LTC_CMAC) += cmac.c
129srcs-$(_CFG_CORE_LTC_ECB) += ecb.c
130srcs-$(_CFG_CORE_LTC_CBC) += cbc.c
131srcs-$(_CFG_CORE_LTC_CTR) += ctr.c
132srcs-$(_CFG_CORE_LTC_XTS) += xts.c
133srcs-$(_CFG_CORE_LTC_CCM) += ccm.c
134srcs-$(_CFG_CORE_LTC_GCM) += gcm.c
135srcs-$(_CFG_CORE_LTC_DSA) += dsa.c
136srcs-$(_CFG_CORE_LTC_ECC) += ecc.c
137srcs-$(_CFG_CORE_LTC_RSA) += rsa.c
138srcs-$(_CFG_CORE_LTC_DH) += dh.c
139srcs-$(_CFG_CORE_LTC_AES) += aes.c
140srcs-$(_CFG_CORE_LTC_SM2_DSA) += sm2-dsa.c
141srcs-$(_CFG_CORE_LTC_SM2_PKE) += sm2-pke.c
142srcs-$(_CFG_CORE_LTC_SM2_KEP) += sm2-kep.c
143srcs-$(if $(filter y,$(_CFG_CORE_LTC_SM2_PKE) $(_CFG_CORE_LTC_SM2_KEP),y),y) += sm2_kdf.c
144
145ifeq ($(_CFG_CORE_LTC_ACIPHER),y)
146ifeq ($(_CFG_CORE_LTC_MPI),y)
147srcs-y += mpi_desc.c
148else
149srcs-y += mpa_desc.c
150# Get mpa.h which normally is an internal .h file
151cppflags-mpa_desc.c-y += -Ilib/libmpa
152cflags-mpa_desc.c-y += -Wno-unused-parameter
153endif
154endif
155
156srcs-y += tomcrypt.c
157
158