]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - crypto/Kconfig
[CRYPTO] scatterwalk: Prepare for block ciphers
[mirror_ubuntu-bionic-kernel.git] / crypto / Kconfig
CommitLineData
1da177e4
LT
1#
2# Cryptographic API Configuration
3#
4
5menu "Cryptographic options"
6
7config CRYPTO
8 bool "Cryptographic API"
9 help
10 This option provides the core Cryptographic API.
11
cce9e06d
HX
12if CRYPTO
13
14config CRYPTO_ALGAPI
15 tristate
16 help
17 This option provides the API for cryptographic algorithms.
18
2b8c19db
HX
19config CRYPTO_MANAGER
20 tristate "Cryptographic algorithm manager"
21 select CRYPTO_ALGAPI
22 default m
23 help
24 Create default cryptographic template instantiations such as
25 cbc(aes).
26
1da177e4
LT
27config CRYPTO_HMAC
28 bool "HMAC support"
1da177e4
LT
29 help
30 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
31 This is required for IPSec.
32
33config CRYPTO_NULL
34 tristate "Null algorithms"
cce9e06d 35 select CRYPTO_ALGAPI
1da177e4
LT
36 help
37 These are 'Null' algorithms, used by IPsec, which do nothing.
38
39config CRYPTO_MD4
40 tristate "MD4 digest algorithm"
cce9e06d 41 select CRYPTO_ALGAPI
1da177e4
LT
42 help
43 MD4 message digest algorithm (RFC1320).
44
45config CRYPTO_MD5
46 tristate "MD5 digest algorithm"
cce9e06d 47 select CRYPTO_ALGAPI
1da177e4
LT
48 help
49 MD5 message digest algorithm (RFC1321).
50
51config CRYPTO_SHA1
52 tristate "SHA1 digest algorithm"
cce9e06d 53 select CRYPTO_ALGAPI
1da177e4
LT
54 help
55 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
56
c1e26e1e
JG
57config CRYPTO_SHA1_S390
58 tristate "SHA1 digest algorithm (s390)"
cce9e06d
HX
59 depends on S390
60 select CRYPTO_ALGAPI
1da177e4 61 help
0a497c17 62 This is the s390 hardware accelerated implementation of the
1da177e4
LT
63 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
64
65config CRYPTO_SHA256
66 tristate "SHA256 digest algorithm"
cce9e06d 67 select CRYPTO_ALGAPI
1da177e4
LT
68 help
69 SHA256 secure hash standard (DFIPS 180-2).
70
71 This version of SHA implements a 256 bit hash with 128 bits of
72 security against collision attacks.
73
0a497c17
JG
74config CRYPTO_SHA256_S390
75 tristate "SHA256 digest algorithm (s390)"
cce9e06d
HX
76 depends on S390
77 select CRYPTO_ALGAPI
0a497c17
JG
78 help
79 This is the s390 hardware accelerated implementation of the
80 SHA256 secure hash standard (DFIPS 180-2).
81
82 This version of SHA implements a 256 bit hash with 128 bits of
83 security against collision attacks.
84
1da177e4
LT
85config CRYPTO_SHA512
86 tristate "SHA384 and SHA512 digest algorithms"
cce9e06d 87 select CRYPTO_ALGAPI
1da177e4
LT
88 help
89 SHA512 secure hash standard (DFIPS 180-2).
90
91 This version of SHA implements a 512 bit hash with 256 bits of
92 security against collision attacks.
93
94 This code also includes SHA-384, a 384 bit hash with 192 bits
95 of security against collision attacks.
96
97config CRYPTO_WP512
98 tristate "Whirlpool digest algorithms"
cce9e06d 99 select CRYPTO_ALGAPI
1da177e4
LT
100 help
101 Whirlpool hash algorithm 512, 384 and 256-bit hashes
102
103 Whirlpool-512 is part of the NESSIE cryptographic primitives.
104 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
105
106 See also:
107 <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
108
109config CRYPTO_TGR192
110 tristate "Tiger digest algorithms"
cce9e06d 111 select CRYPTO_ALGAPI
1da177e4
LT
112 help
113 Tiger hash algorithm 192, 160 and 128-bit hashes
114
115 Tiger is a hash function optimized for 64-bit processors while
116 still having decent performance on 32-bit processors.
117 Tiger was developed by Ross Anderson and Eli Biham.
118
119 See also:
120 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
121
122config CRYPTO_DES
123 tristate "DES and Triple DES EDE cipher algorithms"
cce9e06d 124 select CRYPTO_ALGAPI
1da177e4
LT
125 help
126 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
127
c1e26e1e
JG
128config CRYPTO_DES_S390
129 tristate "DES and Triple DES cipher algorithms (s390)"
cce9e06d
HX
130 depends on S390
131 select CRYPTO_ALGAPI
1da177e4
LT
132 help
133 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
134
135config CRYPTO_BLOWFISH
136 tristate "Blowfish cipher algorithm"
cce9e06d 137 select CRYPTO_ALGAPI
1da177e4
LT
138 help
139 Blowfish cipher algorithm, by Bruce Schneier.
140
141 This is a variable key length cipher which can use keys from 32
142 bits to 448 bits in length. It's fast, simple and specifically
143 designed for use on "large microprocessors".
144
145 See also:
146 <http://www.schneier.com/blowfish.html>
147
148config CRYPTO_TWOFISH
149 tristate "Twofish cipher algorithm"
cce9e06d 150 select CRYPTO_ALGAPI
2729bb42 151 select CRYPTO_TWOFISH_COMMON
1da177e4
LT
152 help
153 Twofish cipher algorithm.
154
155 Twofish was submitted as an AES (Advanced Encryption Standard)
156 candidate cipher by researchers at CounterPane Systems. It is a
157 16 round block cipher supporting key sizes of 128, 192, and 256
158 bits.
159
160 See also:
161 <http://www.schneier.com/twofish.html>
162
2729bb42
JF
163config CRYPTO_TWOFISH_COMMON
164 tristate
2729bb42
JF
165 help
166 Common parts of the Twofish cipher algorithm shared by the
167 generic c and the assembler implementations.
168
b9f535ff
JF
169config CRYPTO_TWOFISH_586
170 tristate "Twofish cipher algorithms (i586)"
cce9e06d
HX
171 depends on (X86 || UML_X86) && !64BIT
172 select CRYPTO_ALGAPI
b9f535ff
JF
173 select CRYPTO_TWOFISH_COMMON
174 help
175 Twofish cipher algorithm.
176
177 Twofish was submitted as an AES (Advanced Encryption Standard)
178 candidate cipher by researchers at CounterPane Systems. It is a
179 16 round block cipher supporting key sizes of 128, 192, and 256
180 bits.
181
182 See also:
183 <http://www.schneier.com/twofish.html>
184
eaf44088
JF
185config CRYPTO_TWOFISH_X86_64
186 tristate "Twofish cipher algorithm (x86_64)"
cce9e06d
HX
187 depends on (X86 || UML_X86) && 64BIT
188 select CRYPTO_ALGAPI
eaf44088
JF
189 select CRYPTO_TWOFISH_COMMON
190 help
191 Twofish cipher algorithm (x86_64).
192
193 Twofish was submitted as an AES (Advanced Encryption Standard)
194 candidate cipher by researchers at CounterPane Systems. It is a
195 16 round block cipher supporting key sizes of 128, 192, and 256
196 bits.
197
198 See also:
199 <http://www.schneier.com/twofish.html>
200
1da177e4
LT
201config CRYPTO_SERPENT
202 tristate "Serpent cipher algorithm"
cce9e06d 203 select CRYPTO_ALGAPI
1da177e4
LT
204 help
205 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
206
207 Keys are allowed to be from 0 to 256 bits in length, in steps
208 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
209 variant of Serpent for compatibility with old kerneli code.
210
211 See also:
212 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
213
214config CRYPTO_AES
215 tristate "AES cipher algorithms"
cce9e06d 216 select CRYPTO_ALGAPI
1da177e4
LT
217 help
218 AES cipher algorithms (FIPS-197). AES uses the Rijndael
219 algorithm.
220
221 Rijndael appears to be consistently a very good performer in
222 both hardware and software across a wide range of computing
223 environments regardless of its use in feedback or non-feedback
224 modes. Its key setup time is excellent, and its key agility is
225 good. Rijndael's very low memory requirements make it very well
226 suited for restricted-space environments, in which it also
227 demonstrates excellent performance. Rijndael's operations are
228 among the easiest to defend against power and timing attacks.
229
230 The AES specifies three key sizes: 128, 192 and 256 bits
231
232 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
233
234config CRYPTO_AES_586
235 tristate "AES cipher algorithms (i586)"
cce9e06d
HX
236 depends on (X86 || UML_X86) && !64BIT
237 select CRYPTO_ALGAPI
1da177e4
LT
238 help
239 AES cipher algorithms (FIPS-197). AES uses the Rijndael
240 algorithm.
241
242 Rijndael appears to be consistently a very good performer in
243 both hardware and software across a wide range of computing
244 environments regardless of its use in feedback or non-feedback
245 modes. Its key setup time is excellent, and its key agility is
246 good. Rijndael's very low memory requirements make it very well
247 suited for restricted-space environments, in which it also
248 demonstrates excellent performance. Rijndael's operations are
249 among the easiest to defend against power and timing attacks.
250
251 The AES specifies three key sizes: 128, 192 and 256 bits
a2a892a2
AS
252
253 See <http://csrc.nist.gov/encryption/aes/> for more information.
254
255config CRYPTO_AES_X86_64
256 tristate "AES cipher algorithms (x86_64)"
cce9e06d
HX
257 depends on (X86 || UML_X86) && 64BIT
258 select CRYPTO_ALGAPI
a2a892a2
AS
259 help
260 AES cipher algorithms (FIPS-197). AES uses the Rijndael
261 algorithm.
262
263 Rijndael appears to be consistently a very good performer in
264 both hardware and software across a wide range of computing
265 environments regardless of its use in feedback or non-feedback
266 modes. Its key setup time is excellent, and its key agility is
267 good. Rijndael's very low memory requirements make it very well
268 suited for restricted-space environments, in which it also
269 demonstrates excellent performance. Rijndael's operations are
270 among the easiest to defend against power and timing attacks.
271
272 The AES specifies three key sizes: 128, 192 and 256 bits
1da177e4
LT
273
274 See <http://csrc.nist.gov/encryption/aes/> for more information.
275
bf754ae8
JG
276config CRYPTO_AES_S390
277 tristate "AES cipher algorithms (s390)"
cce9e06d
HX
278 depends on S390
279 select CRYPTO_ALGAPI
bf754ae8
JG
280 help
281 This is the s390 hardware accelerated implementation of the
282 AES cipher algorithms (FIPS-197). AES uses the Rijndael
283 algorithm.
284
285 Rijndael appears to be consistently a very good performer in
286 both hardware and software across a wide range of computing
287 environments regardless of its use in feedback or non-feedback
288 modes. Its key setup time is excellent, and its key agility is
289 good. Rijndael's very low memory requirements make it very well
290 suited for restricted-space environments, in which it also
291 demonstrates excellent performance. Rijndael's operations are
292 among the easiest to defend against power and timing attacks.
293
294 On s390 the System z9-109 currently only supports the key size
295 of 128 bit.
296
1da177e4
LT
297config CRYPTO_CAST5
298 tristate "CAST5 (CAST-128) cipher algorithm"
cce9e06d 299 select CRYPTO_ALGAPI
1da177e4
LT
300 help
301 The CAST5 encryption algorithm (synonymous with CAST-128) is
302 described in RFC2144.
303
304config CRYPTO_CAST6
305 tristate "CAST6 (CAST-256) cipher algorithm"
cce9e06d 306 select CRYPTO_ALGAPI
1da177e4
LT
307 help
308 The CAST6 encryption algorithm (synonymous with CAST-256) is
309 described in RFC2612.
310
311config CRYPTO_TEA
fb4f10ed 312 tristate "TEA, XTEA and XETA cipher algorithms"
cce9e06d 313 select CRYPTO_ALGAPI
1da177e4
LT
314 help
315 TEA cipher algorithm.
316
317 Tiny Encryption Algorithm is a simple cipher that uses
318 many rounds for security. It is very fast and uses
319 little memory.
320
321 Xtendend Tiny Encryption Algorithm is a modification to
322 the TEA algorithm to address a potential key weakness
323 in the TEA algorithm.
324
fb4f10ed
AG
325 Xtendend Encryption Tiny Algorithm is a mis-implementation
326 of the XTEA algorithm for compatibility purposes.
327
1da177e4
LT
328config CRYPTO_ARC4
329 tristate "ARC4 cipher algorithm"
cce9e06d 330 select CRYPTO_ALGAPI
1da177e4
LT
331 help
332 ARC4 cipher algorithm.
333
334 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
335 bits in length. This algorithm is required for driver-based
336 WEP, but it should not be for other purposes because of the
337 weakness of the algorithm.
338
339config CRYPTO_KHAZAD
340 tristate "Khazad cipher algorithm"
cce9e06d 341 select CRYPTO_ALGAPI
1da177e4
LT
342 help
343 Khazad cipher algorithm.
344
345 Khazad was a finalist in the initial NESSIE competition. It is
346 an algorithm optimized for 64-bit processors with good performance
347 on 32-bit processors. Khazad uses an 128 bit key size.
348
349 See also:
350 <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
351
352config CRYPTO_ANUBIS
353 tristate "Anubis cipher algorithm"
cce9e06d 354 select CRYPTO_ALGAPI
1da177e4
LT
355 help
356 Anubis cipher algorithm.
357
358 Anubis is a variable key length cipher which can use keys from
359 128 bits to 320 bits in length. It was evaluated as a entrant
360 in the NESSIE competition.
361
362 See also:
363 <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
364 <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
365
366
367config CRYPTO_DEFLATE
368 tristate "Deflate compression algorithm"
cce9e06d 369 select CRYPTO_ALGAPI
1da177e4
LT
370 select ZLIB_INFLATE
371 select ZLIB_DEFLATE
372 help
373 This is the Deflate algorithm (RFC1951), specified for use in
374 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
375
376 You will most probably want this if using IPSec.
377
378config CRYPTO_MICHAEL_MIC
379 tristate "Michael MIC keyed digest algorithm"
cce9e06d 380 select CRYPTO_ALGAPI
1da177e4
LT
381 help
382 Michael MIC is used for message integrity protection in TKIP
383 (IEEE 802.11i). This algorithm is required for TKIP, but it
384 should not be used for other purposes because of the weakness
385 of the algorithm.
386
387config CRYPTO_CRC32C
388 tristate "CRC32c CRC algorithm"
cce9e06d 389 select CRYPTO_ALGAPI
1da177e4
LT
390 select LIBCRC32C
391 help
392 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
393 by iSCSI for header and data digests and by others.
394 See Castagnoli93. This implementation uses lib/libcrc32c.
395 Module will be crc32c.
396
397config CRYPTO_TEST
398 tristate "Testing module"
cce9e06d
HX
399 depends on m
400 select CRYPTO_ALGAPI
1da177e4
LT
401 help
402 Quick & dirty crypto test module.
403
404source "drivers/crypto/Kconfig"
1da177e4 405
cce9e06d
HX
406endif # if CRYPTO
407
408endmenu