1 # SPDX-License-Identifier: GPL-2.0
6 obj-
$(CONFIG_CRYPTO
) += crypto.o
7 crypto-y
:= api.o cipher.o compress.o
9 obj-
$(CONFIG_CRYPTO_ENGINE
) += crypto_engine.o
10 obj-
$(CONFIG_CRYPTO_FIPS
) += fips.o
12 crypto_algapi-
$(CONFIG_PROC_FS
) += proc.o
13 crypto_algapi-y
:= algapi.o scatterwalk.o
$(crypto_algapi-y
)
14 obj-
$(CONFIG_CRYPTO_ALGAPI2
) += crypto_algapi.o
16 obj-
$(CONFIG_CRYPTO_AEAD2
) += aead.o
17 obj-
$(CONFIG_CRYPTO_GENIV
) += geniv.o
19 obj-
$(CONFIG_CRYPTO_SKCIPHER2
) += skcipher.o
20 obj-
$(CONFIG_CRYPTO_SEQIV
) += seqiv.o
21 obj-
$(CONFIG_CRYPTO_ECHAINIV
) += echainiv.o
23 crypto_hash-y
+= ahash.o
24 crypto_hash-y
+= shash.o
25 obj-
$(CONFIG_CRYPTO_HASH2
) += crypto_hash.o
27 obj-
$(CONFIG_CRYPTO_AKCIPHER2
) += akcipher.o
28 obj-
$(CONFIG_CRYPTO_SIG2
) += sig.o
29 obj-
$(CONFIG_CRYPTO_KPP2
) += kpp.o
32 dh_generic-y
+= dh_helper.o
33 obj-
$(CONFIG_CRYPTO_DH
) += dh_generic.o
35 $(obj
)/rsapubkey.asn1.o
: $(obj
)/rsapubkey.asn1.c
$(obj
)/rsapubkey.asn1.h
36 $(obj
)/rsaprivkey.asn1.o
: $(obj
)/rsaprivkey.asn1.c
$(obj
)/rsaprivkey.asn1.h
37 $(obj
)/rsa_helper.o
: $(obj
)/rsapubkey.asn1.h
$(obj
)/rsaprivkey.asn1.h
39 rsa_generic-y
:= rsapubkey.asn1.o
40 rsa_generic-y
+= rsaprivkey.asn1.o
41 rsa_generic-y
+= rsa.o
42 rsa_generic-y
+= rsa_helper.o
43 rsa_generic-y
+= rsa-pkcs1pad.o
44 obj-
$(CONFIG_CRYPTO_RSA
) += rsa_generic.o
46 $(obj
)/sm2signature.asn1.o
: $(obj
)/sm2signature.asn1.c
$(obj
)/sm2signature.asn1.h
47 $(obj
)/sm2.o
: $(obj
)/sm2signature.asn1.h
49 sm2_generic-y
+= sm2signature.asn1.o
50 sm2_generic-y
+= sm2.o
52 obj-
$(CONFIG_CRYPTO_SM2
) += sm2_generic.o
54 $(obj
)/ecdsasignature.asn1.o
: $(obj
)/ecdsasignature.asn1.c
$(obj
)/ecdsasignature.asn1.h
55 $(obj
)/ecdsa.o
: $(obj
)/ecdsasignature.asn1.h
56 ecdsa_generic-y
+= ecdsa.o
57 ecdsa_generic-y
+= ecdsasignature.asn1.o
58 obj-
$(CONFIG_CRYPTO_ECDSA
) += ecdsa_generic.o
60 crypto_acompress-y
:= acompress.o
61 crypto_acompress-y
+= scompress.o
62 obj-
$(CONFIG_CRYPTO_ACOMP2
) += crypto_acompress.o
64 cryptomgr-y
:= algboss.o testmgr.o
66 obj-
$(CONFIG_CRYPTO_MANAGER2
) += cryptomgr.o
67 obj-
$(CONFIG_CRYPTO_USER
) += crypto_user.o
68 crypto_user-y
:= crypto_user_base.o
69 crypto_user-
$(CONFIG_CRYPTO_STATS
) += crypto_user_stat.o
70 obj-
$(CONFIG_CRYPTO_CMAC
) += cmac.o
71 obj-
$(CONFIG_CRYPTO_HMAC
) += hmac.o
72 obj-
$(CONFIG_CRYPTO_VMAC
) += vmac.o
73 obj-
$(CONFIG_CRYPTO_XCBC
) += xcbc.o
74 obj-
$(CONFIG_CRYPTO_NULL2
) += crypto_null.o
75 obj-
$(CONFIG_CRYPTO_MD4
) += md4.o
76 obj-
$(CONFIG_CRYPTO_MD5
) += md5.o
77 obj-
$(CONFIG_CRYPTO_RMD160
) += rmd160.o
78 obj-
$(CONFIG_CRYPTO_SHA1
) += sha1_generic.o
79 obj-
$(CONFIG_CRYPTO_SHA256
) += sha256_generic.o
80 obj-
$(CONFIG_CRYPTO_SHA512
) += sha512_generic.o
81 obj-
$(CONFIG_CRYPTO_SHA3
) += sha3_generic.o
82 obj-
$(CONFIG_CRYPTO_SM3
) += sm3.o
83 obj-
$(CONFIG_CRYPTO_SM3_GENERIC
) += sm3_generic.o
84 obj-
$(CONFIG_CRYPTO_STREEBOG
) += streebog_generic.o
85 obj-
$(CONFIG_CRYPTO_WP512
) += wp512.o
86 CFLAGS_wp512.o
:= $(call cc-option
,-fno-schedule-insns
) # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79149
87 obj-
$(CONFIG_CRYPTO_BLAKE2B
) += blake2b_generic.o
88 CFLAGS_blake2b_generic.o
:= -Wframe-larger-than
=4096 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105930
89 obj-
$(CONFIG_CRYPTO_ECB
) += ecb.o
90 obj-
$(CONFIG_CRYPTO_CBC
) += cbc.o
91 obj-
$(CONFIG_CRYPTO_CFB
) += cfb.o
92 obj-
$(CONFIG_CRYPTO_PCBC
) += pcbc.o
93 obj-
$(CONFIG_CRYPTO_CTS
) += cts.o
94 obj-
$(CONFIG_CRYPTO_LRW
) += lrw.o
95 obj-
$(CONFIG_CRYPTO_XTS
) += xts.o
96 obj-
$(CONFIG_CRYPTO_CTR
) += ctr.o
97 obj-
$(CONFIG_CRYPTO_XCTR
) += xctr.o
98 obj-
$(CONFIG_CRYPTO_HCTR2
) += hctr2.o
99 obj-
$(CONFIG_CRYPTO_KEYWRAP
) += keywrap.o
100 obj-
$(CONFIG_CRYPTO_ADIANTUM
) += adiantum.o
101 obj-
$(CONFIG_CRYPTO_NHPOLY1305
) += nhpoly1305.o
102 obj-
$(CONFIG_CRYPTO_GCM
) += gcm.o
103 obj-
$(CONFIG_CRYPTO_CCM
) += ccm.o
104 obj-
$(CONFIG_CRYPTO_CHACHA20POLY1305
) += chacha20poly1305.o
105 obj-
$(CONFIG_CRYPTO_AEGIS128
) += aegis128.o
106 aegis128-y
:= aegis128-core.o
109 CFLAGS_aegis128-neon-inner.o
+= -ffreestanding
-march
=armv8-a
-mfloat-abi
=softfp
110 CFLAGS_aegis128-neon-inner.o
+= -mfpu
=crypto-neon-fp-armv8
111 aegis128-
$(CONFIG_CRYPTO_AEGIS128_SIMD
) += aegis128-neon.o aegis128-neon-inner.o
114 aegis128-cflags-y
:= -ffreestanding
-mcpu
=generic
+crypto
115 aegis128-cflags-
$(CONFIG_CC_IS_GCC
) += -ffixed-q16
-ffixed-q17
-ffixed-q18 \
116 -ffixed-q19
-ffixed-q20
-ffixed-q21 \
117 -ffixed-q22
-ffixed-q23
-ffixed-q24 \
118 -ffixed-q25
-ffixed-q26
-ffixed-q27 \
119 -ffixed-q28
-ffixed-q29
-ffixed-q30 \
121 CFLAGS_aegis128-neon-inner.o
+= $(aegis128-cflags-y
)
122 CFLAGS_REMOVE_aegis128-neon-inner.o
+= -mgeneral-regs-only
123 aegis128-
$(CONFIG_CRYPTO_AEGIS128_SIMD
) += aegis128-neon.o aegis128-neon-inner.o
125 # Enable <arm_neon.h>
126 CFLAGS_aegis128-neon-inner.o
+= -isystem
$(shell $(CC
) -print-file-name
=include)
128 obj-
$(CONFIG_CRYPTO_PCRYPT
) += pcrypt.o
129 obj-
$(CONFIG_CRYPTO_CRYPTD
) += cryptd.o
130 obj-
$(CONFIG_CRYPTO_DES
) += des_generic.o
131 obj-
$(CONFIG_CRYPTO_FCRYPT
) += fcrypt.o
132 obj-
$(CONFIG_CRYPTO_BLOWFISH
) += blowfish_generic.o
133 obj-
$(CONFIG_CRYPTO_BLOWFISH_COMMON
) += blowfish_common.o
134 obj-
$(CONFIG_CRYPTO_TWOFISH
) += twofish_generic.o
135 obj-
$(CONFIG_CRYPTO_TWOFISH_COMMON
) += twofish_common.o
136 obj-
$(CONFIG_CRYPTO_SERPENT
) += serpent_generic.o
137 CFLAGS_serpent_generic.o
:= $(call cc-option
,-fsched-pressure
) # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79149
138 obj-
$(CONFIG_CRYPTO_AES
) += aes_generic.o
139 CFLAGS_aes_generic.o
:= $(call cc-option
,-fno-code-hoisting
) # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83356
140 obj-
$(CONFIG_CRYPTO_SM4
) += sm4.o
141 obj-
$(CONFIG_CRYPTO_SM4_GENERIC
) += sm4_generic.o
142 obj-
$(CONFIG_CRYPTO_AES_TI
) += aes_ti.o
143 obj-
$(CONFIG_CRYPTO_CAMELLIA
) += camellia_generic.o
144 obj-
$(CONFIG_CRYPTO_CAST_COMMON
) += cast_common.o
145 obj-
$(CONFIG_CRYPTO_CAST5
) += cast5_generic.o
146 obj-
$(CONFIG_CRYPTO_CAST6
) += cast6_generic.o
147 obj-
$(CONFIG_CRYPTO_ARC4
) += arc4.o
148 obj-
$(CONFIG_CRYPTO_TEA
) += tea.o
149 obj-
$(CONFIG_CRYPTO_KHAZAD
) += khazad.o
150 obj-
$(CONFIG_CRYPTO_ANUBIS
) += anubis.o
151 obj-
$(CONFIG_CRYPTO_SEED
) += seed.o
152 obj-
$(CONFIG_CRYPTO_ARIA
) += aria_generic.o
153 obj-
$(CONFIG_CRYPTO_CHACHA20
) += chacha_generic.o
154 obj-
$(CONFIG_CRYPTO_POLY1305
) += poly1305_generic.o
155 obj-
$(CONFIG_CRYPTO_DEFLATE
) += deflate.o
156 obj-
$(CONFIG_CRYPTO_MICHAEL_MIC
) += michael_mic.o
157 obj-
$(CONFIG_CRYPTO_CRC32C
) += crc32c_generic.o
158 obj-
$(CONFIG_CRYPTO_CRC32
) += crc32_generic.o
159 obj-
$(CONFIG_CRYPTO_CRCT10DIF
) += crct10dif_common.o crct10dif_generic.o
160 obj-
$(CONFIG_CRYPTO_CRC64_ROCKSOFT
) += crc64_rocksoft_generic.o
161 obj-
$(CONFIG_CRYPTO_AUTHENC
) += authenc.o authencesn.o
162 obj-
$(CONFIG_CRYPTO_LZO
) += lzo.o lzo-rle.o
163 obj-
$(CONFIG_CRYPTO_LZ4
) += lz4.o
164 obj-
$(CONFIG_CRYPTO_LZ4HC
) += lz4hc.o
165 obj-
$(CONFIG_CRYPTO_XXHASH
) += xxhash_generic.o
166 obj-
$(CONFIG_CRYPTO_842
) += 842.o
167 obj-
$(CONFIG_CRYPTO_RNG2
) += rng.o
168 obj-
$(CONFIG_CRYPTO_ANSI_CPRNG
) += ansi_cprng.o
169 obj-
$(CONFIG_CRYPTO_DRBG
) += drbg.o
170 obj-
$(CONFIG_CRYPTO_JITTERENTROPY
) += jitterentropy_rng.o
171 CFLAGS_jitterentropy.o
= -O0
172 KASAN_SANITIZE_jitterentropy.o
= n
173 UBSAN_SANITIZE_jitterentropy.o
= n
174 jitterentropy_rng-y
:= jitterentropy.o jitterentropy-kcapi.o
175 obj-
$(CONFIG_CRYPTO_JITTERENTROPY_TESTINTERFACE
) += jitterentropy-testing.o
176 obj-
$(CONFIG_CRYPTO_TEST
) += tcrypt.o
177 obj-
$(CONFIG_CRYPTO_GHASH
) += ghash-generic.o
178 obj-
$(CONFIG_CRYPTO_POLYVAL
) += polyval-generic.o
179 obj-
$(CONFIG_CRYPTO_USER_API
) += af_alg.o
180 obj-
$(CONFIG_CRYPTO_USER_API_HASH
) += algif_hash.o
181 obj-
$(CONFIG_CRYPTO_USER_API_SKCIPHER
) += algif_skcipher.o
182 obj-
$(CONFIG_CRYPTO_USER_API_RNG
) += algif_rng.o
183 obj-
$(CONFIG_CRYPTO_USER_API_AEAD
) += algif_aead.o
184 obj-
$(CONFIG_CRYPTO_ZSTD
) += zstd.o
185 obj-
$(CONFIG_CRYPTO_OFB
) += ofb.o
186 obj-
$(CONFIG_CRYPTO_ECC
) += ecc.o
187 obj-
$(CONFIG_CRYPTO_ESSIV
) += essiv.o
188 obj-
$(CONFIG_CRYPTO_CURVE25519
) += curve25519-generic.o
190 ecdh_generic-y
+= ecdh.o
191 ecdh_generic-y
+= ecdh_helper.o
192 obj-
$(CONFIG_CRYPTO_ECDH
) += ecdh_generic.o
194 $(obj
)/ecrdsa_params.asn1.o
: $(obj
)/ecrdsa_params.asn1.c
$(obj
)/ecrdsa_params.asn1.h
195 $(obj
)/ecrdsa_pub_key.asn1.o
: $(obj
)/ecrdsa_pub_key.asn1.c
$(obj
)/ecrdsa_pub_key.asn1.h
196 $(obj
)/ecrdsa.o
: $(obj
)/ecrdsa_params.asn1.h
$(obj
)/ecrdsa_pub_key.asn1.h
197 ecrdsa_generic-y
+= ecrdsa.o
198 ecrdsa_generic-y
+= ecrdsa_params.asn1.o
199 ecrdsa_generic-y
+= ecrdsa_pub_key.asn1.o
200 obj-
$(CONFIG_CRYPTO_ECRDSA
) += ecrdsa_generic.o
203 # generic algorithms and the async_tx api
205 obj-
$(CONFIG_XOR_BLOCKS
) += xor.o
206 obj-
$(CONFIG_ASYNC_CORE
) += async_tx
/
207 obj-
$(CONFIG_ASYMMETRIC_KEY_TYPE
) += asymmetric_keys
/
208 obj-
$(CONFIG_CRYPTO_HASH_INFO
) += hash_info.o
209 crypto_simd-y
:= simd.o
210 obj-
$(CONFIG_CRYPTO_SIMD
) += crypto_simd.o
213 # Key derivation function
215 obj-
$(CONFIG_CRYPTO_KDF800108_CTR
) += kdf_sp800108.o