blob: 4ce509dba329f2fae210c44e40206634403207e6 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#
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
Herbert Xucce9e062006-08-21 21:08:13 +100012if CRYPTO
13
14config CRYPTO_ALGAPI
15 tristate
16 help
17 This option provides the API for cryptographic algorithms.
18
Herbert Xu2b8c19d2006-09-21 11:31:44 +100019config 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
Linus Torvalds1da177e2005-04-16 15:20:36 -070027config CRYPTO_HMAC
28 bool "HMAC support"
Linus Torvalds1da177e2005-04-16 15:20:36 -070029 help
30 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
31 This is required for IPSec.
32
33config CRYPTO_NULL
34 tristate "Null algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +100035 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070036 help
37 These are 'Null' algorithms, used by IPsec, which do nothing.
38
39config CRYPTO_MD4
40 tristate "MD4 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100041 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070042 help
43 MD4 message digest algorithm (RFC1320).
44
45config CRYPTO_MD5
46 tristate "MD5 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100047 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070048 help
49 MD5 message digest algorithm (RFC1321).
50
51config CRYPTO_SHA1
52 tristate "SHA1 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100053 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070054 help
55 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
56
Jan Glauberc1e26e12006-01-06 00:19:17 -080057config CRYPTO_SHA1_S390
58 tristate "SHA1 digest algorithm (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +100059 depends on S390
60 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070061 help
Jan Glauber0a497c172006-01-06 00:19:18 -080062 This is the s390 hardware accelerated implementation of the
Linus Torvalds1da177e2005-04-16 15:20:36 -070063 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
64
65config CRYPTO_SHA256
66 tristate "SHA256 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100067 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070068 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
Jan Glauber0a497c172006-01-06 00:19:18 -080074config CRYPTO_SHA256_S390
75 tristate "SHA256 digest algorithm (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +100076 depends on S390
77 select CRYPTO_ALGAPI
Jan Glauber0a497c172006-01-06 00:19:18 -080078 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
Linus Torvalds1da177e2005-04-16 15:20:36 -070085config CRYPTO_SHA512
86 tristate "SHA384 and SHA512 digest algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +100087 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070088 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"
Herbert Xucce9e062006-08-21 21:08:13 +100099 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700100 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000111 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700112 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000124 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700125 help
126 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
127
Jan Glauberc1e26e12006-01-06 00:19:17 -0800128config CRYPTO_DES_S390
129 tristate "DES and Triple DES cipher algorithms (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +1000130 depends on S390
131 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700132 help
133 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
134
135config CRYPTO_BLOWFISH
136 tristate "Blowfish cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000137 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700138 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000150 select CRYPTO_ALGAPI
Joachim Fritschi2729bb42006-06-20 20:37:23 +1000151 select CRYPTO_TWOFISH_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -0700152 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
Joachim Fritschi2729bb42006-06-20 20:37:23 +1000163config CRYPTO_TWOFISH_COMMON
164 tristate
Joachim Fritschi2729bb42006-06-20 20:37:23 +1000165 help
166 Common parts of the Twofish cipher algorithm shared by the
167 generic c and the assembler implementations.
168
Joachim Fritschib9f535f2006-06-20 20:59:16 +1000169config CRYPTO_TWOFISH_586
170 tristate "Twofish cipher algorithms (i586)"
Herbert Xucce9e062006-08-21 21:08:13 +1000171 depends on (X86 || UML_X86) && !64BIT
172 select CRYPTO_ALGAPI
Joachim Fritschib9f535f2006-06-20 20:59:16 +1000173 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
Joachim Fritschieaf44082006-06-20 21:12:02 +1000185config CRYPTO_TWOFISH_X86_64
186 tristate "Twofish cipher algorithm (x86_64)"
Herbert Xucce9e062006-08-21 21:08:13 +1000187 depends on (X86 || UML_X86) && 64BIT
188 select CRYPTO_ALGAPI
Joachim Fritschieaf44082006-06-20 21:12:02 +1000189 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
Linus Torvalds1da177e2005-04-16 15:20:36 -0700201config CRYPTO_SERPENT
202 tristate "Serpent cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000203 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700204 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000216 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700217 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)"
Herbert Xucce9e062006-08-21 21:08:13 +1000236 depends on (X86 || UML_X86) && !64BIT
237 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700238 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
252
253 See <http://csrc.nist.gov/encryption/aes/> for more information.
254
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700255config CRYPTO_AES_X86_64
256 tristate "AES cipher algorithms (x86_64)"
Herbert Xucce9e062006-08-21 21:08:13 +1000257 depends on (X86 || UML_X86) && 64BIT
258 select CRYPTO_ALGAPI
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700259 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
273
274 See <http://csrc.nist.gov/encryption/aes/> for more information.
275
Jan Glauberbf754ae2006-01-06 00:19:18 -0800276config CRYPTO_AES_S390
277 tristate "AES cipher algorithms (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +1000278 depends on S390
279 select CRYPTO_ALGAPI
Jan Glauberbf754ae2006-01-06 00:19:18 -0800280 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
Linus Torvalds1da177e2005-04-16 15:20:36 -0700297config CRYPTO_CAST5
298 tristate "CAST5 (CAST-128) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000299 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700300 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000306 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700307 help
308 The CAST6 encryption algorithm (synonymous with CAST-256) is
309 described in RFC2612.
310
311config CRYPTO_TEA
Aaron Grothefb4f10e2005-09-01 17:42:46 -0700312 tristate "TEA, XTEA and XETA cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000313 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700314 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
Aaron Grothefb4f10e2005-09-01 17:42:46 -0700325 Xtendend Encryption Tiny Algorithm is a mis-implementation
326 of the XTEA algorithm for compatibility purposes.
327
Linus Torvalds1da177e2005-04-16 15:20:36 -0700328config CRYPTO_ARC4
329 tristate "ARC4 cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000330 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700331 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000341 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700342 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000354 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700355 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000369 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700370 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000380 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700381 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000389 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700390 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"
Herbert Xucce9e062006-08-21 21:08:13 +1000399 depends on m
400 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700401 help
402 Quick & dirty crypto test module.
403
404source "drivers/crypto/Kconfig"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700405
Herbert Xucce9e062006-08-21 21:08:13 +1000406endif # if CRYPTO
407
408endmenu