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