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