blob: aabc631952226b6639e769a0d087c6b054455cfc [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
Linus Torvalds1da177e2005-04-16 15:20:36 -070019config CRYPTO_HMAC
20 bool "HMAC support"
Linus Torvalds1da177e2005-04-16 15:20:36 -070021 help
22 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
23 This is required for IPSec.
24
25config CRYPTO_NULL
26 tristate "Null algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +100027 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070028 help
29 These are 'Null' algorithms, used by IPsec, which do nothing.
30
31config CRYPTO_MD4
32 tristate "MD4 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100033 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070034 help
35 MD4 message digest algorithm (RFC1320).
36
37config CRYPTO_MD5
38 tristate "MD5 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100039 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070040 help
41 MD5 message digest algorithm (RFC1321).
42
43config CRYPTO_SHA1
44 tristate "SHA1 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100045 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070046 help
47 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
48
Jan Glauberc1e26e12006-01-06 00:19:17 -080049config CRYPTO_SHA1_S390
50 tristate "SHA1 digest algorithm (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +100051 depends on S390
52 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070053 help
Jan Glauber0a497c172006-01-06 00:19:18 -080054 This is the s390 hardware accelerated implementation of the
Linus Torvalds1da177e2005-04-16 15:20:36 -070055 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
56
57config CRYPTO_SHA256
58 tristate "SHA256 digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +100059 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070060 help
61 SHA256 secure hash standard (DFIPS 180-2).
62
63 This version of SHA implements a 256 bit hash with 128 bits of
64 security against collision attacks.
65
Jan Glauber0a497c172006-01-06 00:19:18 -080066config CRYPTO_SHA256_S390
67 tristate "SHA256 digest algorithm (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +100068 depends on S390
69 select CRYPTO_ALGAPI
Jan Glauber0a497c172006-01-06 00:19:18 -080070 help
71 This is the s390 hardware accelerated implementation of the
72 SHA256 secure hash standard (DFIPS 180-2).
73
74 This version of SHA implements a 256 bit hash with 128 bits of
75 security against collision attacks.
76
Linus Torvalds1da177e2005-04-16 15:20:36 -070077config CRYPTO_SHA512
78 tristate "SHA384 and SHA512 digest algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +100079 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070080 help
81 SHA512 secure hash standard (DFIPS 180-2).
82
83 This version of SHA implements a 512 bit hash with 256 bits of
84 security against collision attacks.
85
86 This code also includes SHA-384, a 384 bit hash with 192 bits
87 of security against collision attacks.
88
89config CRYPTO_WP512
90 tristate "Whirlpool digest algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +100091 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -070092 help
93 Whirlpool hash algorithm 512, 384 and 256-bit hashes
94
95 Whirlpool-512 is part of the NESSIE cryptographic primitives.
96 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
97
98 See also:
99 <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
100
101config CRYPTO_TGR192
102 tristate "Tiger digest algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000103 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700104 help
105 Tiger hash algorithm 192, 160 and 128-bit hashes
106
107 Tiger is a hash function optimized for 64-bit processors while
108 still having decent performance on 32-bit processors.
109 Tiger was developed by Ross Anderson and Eli Biham.
110
111 See also:
112 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
113
114config CRYPTO_DES
115 tristate "DES and Triple DES EDE cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000116 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700117 help
118 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
119
Jan Glauberc1e26e12006-01-06 00:19:17 -0800120config CRYPTO_DES_S390
121 tristate "DES and Triple DES cipher algorithms (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +1000122 depends on S390
123 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700124 help
125 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
126
127config CRYPTO_BLOWFISH
128 tristate "Blowfish cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000129 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700130 help
131 Blowfish cipher algorithm, by Bruce Schneier.
132
133 This is a variable key length cipher which can use keys from 32
134 bits to 448 bits in length. It's fast, simple and specifically
135 designed for use on "large microprocessors".
136
137 See also:
138 <http://www.schneier.com/blowfish.html>
139
140config CRYPTO_TWOFISH
141 tristate "Twofish cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000142 select CRYPTO_ALGAPI
Joachim Fritschi2729bb42006-06-20 20:37:23 +1000143 select CRYPTO_TWOFISH_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -0700144 help
145 Twofish cipher algorithm.
146
147 Twofish was submitted as an AES (Advanced Encryption Standard)
148 candidate cipher by researchers at CounterPane Systems. It is a
149 16 round block cipher supporting key sizes of 128, 192, and 256
150 bits.
151
152 See also:
153 <http://www.schneier.com/twofish.html>
154
Joachim Fritschi2729bb42006-06-20 20:37:23 +1000155config CRYPTO_TWOFISH_COMMON
156 tristate
Joachim Fritschi2729bb42006-06-20 20:37:23 +1000157 help
158 Common parts of the Twofish cipher algorithm shared by the
159 generic c and the assembler implementations.
160
Joachim Fritschib9f535f2006-06-20 20:59:16 +1000161config CRYPTO_TWOFISH_586
162 tristate "Twofish cipher algorithms (i586)"
Herbert Xucce9e062006-08-21 21:08:13 +1000163 depends on (X86 || UML_X86) && !64BIT
164 select CRYPTO_ALGAPI
Joachim Fritschib9f535f2006-06-20 20:59:16 +1000165 select CRYPTO_TWOFISH_COMMON
166 help
167 Twofish cipher algorithm.
168
169 Twofish was submitted as an AES (Advanced Encryption Standard)
170 candidate cipher by researchers at CounterPane Systems. It is a
171 16 round block cipher supporting key sizes of 128, 192, and 256
172 bits.
173
174 See also:
175 <http://www.schneier.com/twofish.html>
176
Joachim Fritschieaf44082006-06-20 21:12:02 +1000177config CRYPTO_TWOFISH_X86_64
178 tristate "Twofish cipher algorithm (x86_64)"
Herbert Xucce9e062006-08-21 21:08:13 +1000179 depends on (X86 || UML_X86) && 64BIT
180 select CRYPTO_ALGAPI
Joachim Fritschieaf44082006-06-20 21:12:02 +1000181 select CRYPTO_TWOFISH_COMMON
182 help
183 Twofish cipher algorithm (x86_64).
184
185 Twofish was submitted as an AES (Advanced Encryption Standard)
186 candidate cipher by researchers at CounterPane Systems. It is a
187 16 round block cipher supporting key sizes of 128, 192, and 256
188 bits.
189
190 See also:
191 <http://www.schneier.com/twofish.html>
192
Linus Torvalds1da177e2005-04-16 15:20:36 -0700193config CRYPTO_SERPENT
194 tristate "Serpent cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000195 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700196 help
197 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
198
199 Keys are allowed to be from 0 to 256 bits in length, in steps
200 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
201 variant of Serpent for compatibility with old kerneli code.
202
203 See also:
204 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
205
206config CRYPTO_AES
207 tristate "AES cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000208 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700209 help
210 AES cipher algorithms (FIPS-197). AES uses the Rijndael
211 algorithm.
212
213 Rijndael appears to be consistently a very good performer in
214 both hardware and software across a wide range of computing
215 environments regardless of its use in feedback or non-feedback
216 modes. Its key setup time is excellent, and its key agility is
217 good. Rijndael's very low memory requirements make it very well
218 suited for restricted-space environments, in which it also
219 demonstrates excellent performance. Rijndael's operations are
220 among the easiest to defend against power and timing attacks.
221
222 The AES specifies three key sizes: 128, 192 and 256 bits
223
224 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
225
226config CRYPTO_AES_586
227 tristate "AES cipher algorithms (i586)"
Herbert Xucce9e062006-08-21 21:08:13 +1000228 depends on (X86 || UML_X86) && !64BIT
229 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700230 help
231 AES cipher algorithms (FIPS-197). AES uses the Rijndael
232 algorithm.
233
234 Rijndael appears to be consistently a very good performer in
235 both hardware and software across a wide range of computing
236 environments regardless of its use in feedback or non-feedback
237 modes. Its key setup time is excellent, and its key agility is
238 good. Rijndael's very low memory requirements make it very well
239 suited for restricted-space environments, in which it also
240 demonstrates excellent performance. Rijndael's operations are
241 among the easiest to defend against power and timing attacks.
242
243 The AES specifies three key sizes: 128, 192 and 256 bits
244
245 See <http://csrc.nist.gov/encryption/aes/> for more information.
246
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700247config CRYPTO_AES_X86_64
248 tristate "AES cipher algorithms (x86_64)"
Herbert Xucce9e062006-08-21 21:08:13 +1000249 depends on (X86 || UML_X86) && 64BIT
250 select CRYPTO_ALGAPI
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700251 help
252 AES cipher algorithms (FIPS-197). AES uses the Rijndael
253 algorithm.
254
255 Rijndael appears to be consistently a very good performer in
256 both hardware and software across a wide range of computing
257 environments regardless of its use in feedback or non-feedback
258 modes. Its key setup time is excellent, and its key agility is
259 good. Rijndael's very low memory requirements make it very well
260 suited for restricted-space environments, in which it also
261 demonstrates excellent performance. Rijndael's operations are
262 among the easiest to defend against power and timing attacks.
263
264 The AES specifies three key sizes: 128, 192 and 256 bits
265
266 See <http://csrc.nist.gov/encryption/aes/> for more information.
267
Jan Glauberbf754ae2006-01-06 00:19:18 -0800268config CRYPTO_AES_S390
269 tristate "AES cipher algorithms (s390)"
Herbert Xucce9e062006-08-21 21:08:13 +1000270 depends on S390
271 select CRYPTO_ALGAPI
Jan Glauberbf754ae2006-01-06 00:19:18 -0800272 help
273 This is the s390 hardware accelerated implementation of the
274 AES cipher algorithms (FIPS-197). AES uses the Rijndael
275 algorithm.
276
277 Rijndael appears to be consistently a very good performer in
278 both hardware and software across a wide range of computing
279 environments regardless of its use in feedback or non-feedback
280 modes. Its key setup time is excellent, and its key agility is
281 good. Rijndael's very low memory requirements make it very well
282 suited for restricted-space environments, in which it also
283 demonstrates excellent performance. Rijndael's operations are
284 among the easiest to defend against power and timing attacks.
285
286 On s390 the System z9-109 currently only supports the key size
287 of 128 bit.
288
Linus Torvalds1da177e2005-04-16 15:20:36 -0700289config CRYPTO_CAST5
290 tristate "CAST5 (CAST-128) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000291 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700292 help
293 The CAST5 encryption algorithm (synonymous with CAST-128) is
294 described in RFC2144.
295
296config CRYPTO_CAST6
297 tristate "CAST6 (CAST-256) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000298 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700299 help
300 The CAST6 encryption algorithm (synonymous with CAST-256) is
301 described in RFC2612.
302
303config CRYPTO_TEA
Aaron Grothefb4f10e2005-09-01 17:42:46 -0700304 tristate "TEA, XTEA and XETA cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000305 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700306 help
307 TEA cipher algorithm.
308
309 Tiny Encryption Algorithm is a simple cipher that uses
310 many rounds for security. It is very fast and uses
311 little memory.
312
313 Xtendend Tiny Encryption Algorithm is a modification to
314 the TEA algorithm to address a potential key weakness
315 in the TEA algorithm.
316
Aaron Grothefb4f10e2005-09-01 17:42:46 -0700317 Xtendend Encryption Tiny Algorithm is a mis-implementation
318 of the XTEA algorithm for compatibility purposes.
319
Linus Torvalds1da177e2005-04-16 15:20:36 -0700320config CRYPTO_ARC4
321 tristate "ARC4 cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000322 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700323 help
324 ARC4 cipher algorithm.
325
326 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
327 bits in length. This algorithm is required for driver-based
328 WEP, but it should not be for other purposes because of the
329 weakness of the algorithm.
330
331config CRYPTO_KHAZAD
332 tristate "Khazad cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000333 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700334 help
335 Khazad cipher algorithm.
336
337 Khazad was a finalist in the initial NESSIE competition. It is
338 an algorithm optimized for 64-bit processors with good performance
339 on 32-bit processors. Khazad uses an 128 bit key size.
340
341 See also:
342 <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
343
344config CRYPTO_ANUBIS
345 tristate "Anubis cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000346 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700347 help
348 Anubis cipher algorithm.
349
350 Anubis is a variable key length cipher which can use keys from
351 128 bits to 320 bits in length. It was evaluated as a entrant
352 in the NESSIE competition.
353
354 See also:
355 <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
356 <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
357
358
359config CRYPTO_DEFLATE
360 tristate "Deflate compression algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000361 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700362 select ZLIB_INFLATE
363 select ZLIB_DEFLATE
364 help
365 This is the Deflate algorithm (RFC1951), specified for use in
366 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
367
368 You will most probably want this if using IPSec.
369
370config CRYPTO_MICHAEL_MIC
371 tristate "Michael MIC keyed digest algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000372 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700373 help
374 Michael MIC is used for message integrity protection in TKIP
375 (IEEE 802.11i). This algorithm is required for TKIP, but it
376 should not be used for other purposes because of the weakness
377 of the algorithm.
378
379config CRYPTO_CRC32C
380 tristate "CRC32c CRC algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000381 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700382 select LIBCRC32C
383 help
384 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
385 by iSCSI for header and data digests and by others.
386 See Castagnoli93. This implementation uses lib/libcrc32c.
387 Module will be crc32c.
388
389config CRYPTO_TEST
390 tristate "Testing module"
Herbert Xucce9e062006-08-21 21:08:13 +1000391 depends on m
392 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700393 help
394 Quick & dirty crypto test module.
395
396source "drivers/crypto/Kconfig"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700397
Herbert Xucce9e062006-08-21 21:08:13 +1000398endif # if CRYPTO
399
400endmenu