1 # SPDX-License-Identifier: GPL-2.0
6 obj-
$(CONFIG_CRYPTO
) += crypto.o
7 crypto-y
:= api.o cipher.o compress.o memneq.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_AEAD2
) += 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_KPP2
) += kpp.o
31 dh_generic-y
+= dh_helper.o
32 obj-
$(CONFIG_CRYPTO_DH
) += dh_generic.o
34 $(obj
)/rsapubkey.asn1.o
: $(obj
)/rsapubkey.asn1.c
$(obj
)/rsapubkey.asn1.h
35 $(obj
)/rsaprivkey.asn1.o
: $(obj
)/rsaprivkey.asn1.c
$(obj
)/rsaprivkey.asn1.h
36 $(obj
)/rsa_helper.o
: $(obj
)/rsapubkey.asn1.h
$(obj
)/rsaprivkey.asn1.h
38 rsa_generic-y
:= rsapubkey.asn1.o
39 rsa_generic-y
+= rsaprivkey.asn1.o
40 rsa_generic-y
+= rsa.o
41 rsa_generic-y
+= rsa_helper.o
42 rsa_generic-y
+= rsa-pkcs1pad.o
43 obj-
$(CONFIG_CRYPTO_RSA
) += rsa_generic.o
45 $(obj
)/sm2signature.asn1.o
: $(obj
)/sm2signature.asn1.c
$(obj
)/sm2signature.asn1.h
46 $(obj
)/sm2.o
: $(obj
)/sm2signature.asn1.h
48 sm2_generic-y
+= sm2signature.asn1.o
49 sm2_generic-y
+= sm2.o
51 obj-
$(CONFIG_CRYPTO_SM2
) += sm2_generic.o
53 crypto_acompress-y
:= acompress.o
54 crypto_acompress-y
+= scompress.o
55 obj-
$(CONFIG_CRYPTO_ACOMP2
) += crypto_acompress.o
57 cryptomgr-y
:= algboss.o testmgr.o
59 obj-
$(CONFIG_CRYPTO_MANAGER2
) += cryptomgr.o
60 obj-
$(CONFIG_CRYPTO_USER
) += crypto_user.o
61 crypto_user-y
:= crypto_user_base.o
62 crypto_user-
$(CONFIG_CRYPTO_STATS
) += crypto_user_stat.o
63 obj-
$(CONFIG_CRYPTO_CMAC
) += cmac.o
64 obj-
$(CONFIG_CRYPTO_HMAC
) += hmac.o
65 obj-
$(CONFIG_CRYPTO_VMAC
) += vmac.o
66 obj-
$(CONFIG_CRYPTO_XCBC
) += xcbc.o
67 obj-
$(CONFIG_CRYPTO_NULL2
) += crypto_null.o
68 obj-
$(CONFIG_CRYPTO_MD4
) += md4.o
69 obj-
$(CONFIG_CRYPTO_MD5
) += md5.o
70 obj-
$(CONFIG_CRYPTO_RMD128
) += rmd128.o
71 obj-
$(CONFIG_CRYPTO_RMD160
) += rmd160.o
72 obj-
$(CONFIG_CRYPTO_RMD256
) += rmd256.o
73 obj-
$(CONFIG_CRYPTO_RMD320
) += rmd320.o
74 obj-
$(CONFIG_CRYPTO_SHA1
) += sha1_generic.o
75 obj-
$(CONFIG_CRYPTO_SHA256
) += sha256_generic.o
76 obj-
$(CONFIG_CRYPTO_SHA512
) += sha512_generic.o
77 obj-
$(CONFIG_CRYPTO_SHA3
) += sha3_generic.o
78 obj-
$(CONFIG_CRYPTO_SM3
) += sm3_generic.o
79 obj-
$(CONFIG_CRYPTO_STREEBOG
) += streebog_generic.o
80 obj-
$(CONFIG_CRYPTO_WP512
) += wp512.o
81 CFLAGS_wp512.o
:= $(call cc-option
,-fno-schedule-insns
) # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79149
82 obj-
$(CONFIG_CRYPTO_TGR192
) += tgr192.o
83 obj-
$(CONFIG_CRYPTO_BLAKE2B
) += blake2b_generic.o
84 obj-
$(CONFIG_CRYPTO_BLAKE2S
) += blake2s_generic.o
85 obj-
$(CONFIG_CRYPTO_GF128MUL
) += gf128mul.o
86 obj-
$(CONFIG_CRYPTO_ECB
) += ecb.o
87 obj-
$(CONFIG_CRYPTO_CBC
) += cbc.o
88 obj-
$(CONFIG_CRYPTO_CFB
) += cfb.o
89 obj-
$(CONFIG_CRYPTO_PCBC
) += pcbc.o
90 obj-
$(CONFIG_CRYPTO_CTS
) += cts.o
91 obj-
$(CONFIG_CRYPTO_LRW
) += lrw.o
92 obj-
$(CONFIG_CRYPTO_XTS
) += xts.o
93 obj-
$(CONFIG_CRYPTO_CTR
) += ctr.o
94 obj-
$(CONFIG_CRYPTO_KEYWRAP
) += keywrap.o
95 obj-
$(CONFIG_CRYPTO_ADIANTUM
) += adiantum.o
96 obj-
$(CONFIG_CRYPTO_NHPOLY1305
) += nhpoly1305.o
97 obj-
$(CONFIG_CRYPTO_GCM
) += gcm.o
98 obj-
$(CONFIG_CRYPTO_CCM
) += ccm.o
99 obj-
$(CONFIG_CRYPTO_CHACHA20POLY1305
) += chacha20poly1305.o
100 obj-
$(CONFIG_CRYPTO_AEGIS128
) += aegis128.o
101 aegis128-y
:= aegis128-core.o
104 CFLAGS_aegis128-neon-inner.o
+= -ffreestanding
-march
=armv8-a
-mfloat-abi
=softfp
105 CFLAGS_aegis128-neon-inner.o
+= -mfpu
=crypto-neon-fp-armv8
106 aegis128-
$(CONFIG_CRYPTO_AEGIS128_SIMD
) += aegis128-neon.o aegis128-neon-inner.o
109 aegis128-cflags-y
:= -ffreestanding
-mcpu
=generic
+crypto
110 aegis128-cflags-
$(CONFIG_CC_IS_GCC
) += -ffixed-q16
-ffixed-q17
-ffixed-q18 \
111 -ffixed-q19
-ffixed-q20
-ffixed-q21 \
112 -ffixed-q22
-ffixed-q23
-ffixed-q24 \
113 -ffixed-q25
-ffixed-q26
-ffixed-q27 \
114 -ffixed-q28
-ffixed-q29
-ffixed-q30 \
116 CFLAGS_aegis128-neon-inner.o
+= $(aegis128-cflags-y
)
117 CFLAGS_REMOVE_aegis128-neon-inner.o
+= -mgeneral-regs-only
118 aegis128-
$(CONFIG_CRYPTO_AEGIS128_SIMD
) += aegis128-neon.o aegis128-neon-inner.o
121 obj-
$(CONFIG_CRYPTO_PCRYPT
) += pcrypt.o
122 obj-
$(CONFIG_CRYPTO_CRYPTD
) += cryptd.o
123 obj-
$(CONFIG_CRYPTO_DES
) += des_generic.o
124 obj-
$(CONFIG_CRYPTO_FCRYPT
) += fcrypt.o
125 obj-
$(CONFIG_CRYPTO_BLOWFISH
) += blowfish_generic.o
126 obj-
$(CONFIG_CRYPTO_BLOWFISH_COMMON
) += blowfish_common.o
127 obj-
$(CONFIG_CRYPTO_TWOFISH
) += twofish_generic.o
128 obj-
$(CONFIG_CRYPTO_TWOFISH_COMMON
) += twofish_common.o
129 obj-
$(CONFIG_CRYPTO_SERPENT
) += serpent_generic.o
130 CFLAGS_serpent_generic.o
:= $(call cc-option
,-fsched-pressure
) # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79149
131 obj-
$(CONFIG_CRYPTO_AES
) += aes_generic.o
132 CFLAGS_aes_generic.o
:= $(call cc-option
,-fno-code-hoisting
) # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83356
133 obj-
$(CONFIG_CRYPTO_SM4
) += sm4_generic.o
134 obj-
$(CONFIG_CRYPTO_AES_TI
) += aes_ti.o
135 obj-
$(CONFIG_CRYPTO_CAMELLIA
) += camellia_generic.o
136 obj-
$(CONFIG_CRYPTO_CAST_COMMON
) += cast_common.o
137 obj-
$(CONFIG_CRYPTO_CAST5
) += cast5_generic.o
138 obj-
$(CONFIG_CRYPTO_CAST6
) += cast6_generic.o
139 obj-
$(CONFIG_CRYPTO_ARC4
) += arc4.o
140 obj-
$(CONFIG_CRYPTO_TEA
) += tea.o
141 obj-
$(CONFIG_CRYPTO_KHAZAD
) += khazad.o
142 obj-
$(CONFIG_CRYPTO_ANUBIS
) += anubis.o
143 obj-
$(CONFIG_CRYPTO_SEED
) += seed.o
144 obj-
$(CONFIG_CRYPTO_SALSA20
) += salsa20_generic.o
145 obj-
$(CONFIG_CRYPTO_CHACHA20
) += chacha_generic.o
146 obj-
$(CONFIG_CRYPTO_POLY1305
) += poly1305_generic.o
147 obj-
$(CONFIG_CRYPTO_DEFLATE
) += deflate.o
148 obj-
$(CONFIG_CRYPTO_MICHAEL_MIC
) += michael_mic.o
149 obj-
$(CONFIG_CRYPTO_CRC32C
) += crc32c_generic.o
150 obj-
$(CONFIG_CRYPTO_CRC32
) += crc32_generic.o
151 obj-
$(CONFIG_CRYPTO_CRCT10DIF
) += crct10dif_common.o crct10dif_generic.o
152 obj-
$(CONFIG_CRYPTO_AUTHENC
) += authenc.o authencesn.o
153 obj-
$(CONFIG_CRYPTO_LZO
) += lzo.o lzo-rle.o
154 obj-
$(CONFIG_CRYPTO_LZ4
) += lz4.o
155 obj-
$(CONFIG_CRYPTO_LZ4HC
) += lz4hc.o
156 obj-
$(CONFIG_CRYPTO_XXHASH
) += xxhash_generic.o
157 obj-
$(CONFIG_CRYPTO_842
) += 842.o
158 obj-
$(CONFIG_CRYPTO_RNG2
) += rng.o
159 obj-
$(CONFIG_CRYPTO_ANSI_CPRNG
) += ansi_cprng.o
160 obj-
$(CONFIG_CRYPTO_DRBG
) += drbg.o
161 obj-
$(CONFIG_CRYPTO_JITTERENTROPY
) += jitterentropy_rng.o
162 CFLAGS_jitterentropy.o
= -O0
163 KASAN_SANITIZE_jitterentropy.o
= n
164 UBSAN_SANITIZE_jitterentropy.o
= n
165 jitterentropy_rng-y
:= jitterentropy.o jitterentropy-kcapi.o
166 obj-
$(CONFIG_CRYPTO_TEST
) += tcrypt.o
167 obj-
$(CONFIG_CRYPTO_GHASH
) += ghash-generic.o
168 obj-
$(CONFIG_CRYPTO_USER_API
) += af_alg.o
169 obj-
$(CONFIG_CRYPTO_USER_API_HASH
) += algif_hash.o
170 obj-
$(CONFIG_CRYPTO_USER_API_SKCIPHER
) += algif_skcipher.o
171 obj-
$(CONFIG_CRYPTO_USER_API_RNG
) += algif_rng.o
172 obj-
$(CONFIG_CRYPTO_USER_API_AEAD
) += algif_aead.o
173 obj-
$(CONFIG_CRYPTO_ZSTD
) += zstd.o
174 obj-
$(CONFIG_CRYPTO_OFB
) += ofb.o
175 obj-
$(CONFIG_CRYPTO_ECC
) += ecc.o
176 obj-
$(CONFIG_CRYPTO_ESSIV
) += essiv.o
177 obj-
$(CONFIG_CRYPTO_CURVE25519
) += curve25519-generic.o
179 ecdh_generic-y
+= ecdh.o
180 ecdh_generic-y
+= ecdh_helper.o
181 obj-
$(CONFIG_CRYPTO_ECDH
) += ecdh_generic.o
183 $(obj
)/ecrdsa_params.asn1.o
: $(obj
)/ecrdsa_params.asn1.c
$(obj
)/ecrdsa_params.asn1.h
184 $(obj
)/ecrdsa_pub_key.asn1.o
: $(obj
)/ecrdsa_pub_key.asn1.c
$(obj
)/ecrdsa_pub_key.asn1.h
185 $(obj
)/ecrdsa.o
: $(obj
)/ecrdsa_params.asn1.h
$(obj
)/ecrdsa_pub_key.asn1.h
186 ecrdsa_generic-y
+= ecrdsa.o
187 ecrdsa_generic-y
+= ecrdsa_params.asn1.o
188 ecrdsa_generic-y
+= ecrdsa_pub_key.asn1.o
189 obj-
$(CONFIG_CRYPTO_ECRDSA
) += ecrdsa_generic.o
192 # generic algorithms and the async_tx api
194 obj-
$(CONFIG_XOR_BLOCKS
) += xor.o
195 obj-
$(CONFIG_ASYNC_CORE
) += async_tx
/
196 obj-
$(CONFIG_ASYMMETRIC_KEY_TYPE
) += asymmetric_keys
/
197 obj-
$(CONFIG_CRYPTO_HASH_INFO
) += hash_info.o
198 crypto_simd-y
:= simd.o
199 obj-
$(CONFIG_CRYPTO_SIMD
) += crypto_simd.o