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