[CRYPTO] cipher: Added block cipher 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_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_DES
127         tristate "DES and Triple DES EDE cipher algorithms"
128         select CRYPTO_ALGAPI
129         help
130           DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
131
132 config CRYPTO_DES_S390
133         tristate "DES and Triple DES cipher algorithms (s390)"
134         depends on S390
135         select CRYPTO_ALGAPI
136         help
137           DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
138
139 config CRYPTO_BLOWFISH
140         tristate "Blowfish cipher algorithm"
141         select CRYPTO_ALGAPI
142         help
143           Blowfish cipher algorithm, by Bruce Schneier.
144           
145           This is a variable key length cipher which can use keys from 32
146           bits to 448 bits in length.  It's fast, simple and specifically
147           designed for use on "large microprocessors".
148           
149           See also:
150           <http://www.schneier.com/blowfish.html>
151
152 config CRYPTO_TWOFISH
153         tristate "Twofish cipher algorithm"
154         select CRYPTO_ALGAPI
155         select CRYPTO_TWOFISH_COMMON
156         help
157           Twofish cipher algorithm.
158           
159           Twofish was submitted as an AES (Advanced Encryption Standard)
160           candidate cipher by researchers at CounterPane Systems.  It is a
161           16 round block cipher supporting key sizes of 128, 192, and 256
162           bits.
163           
164           See also:
165           <http://www.schneier.com/twofish.html>
166
167 config CRYPTO_TWOFISH_COMMON
168         tristate
169         help
170           Common parts of the Twofish cipher algorithm shared by the
171           generic c and the assembler implementations.
172
173 config CRYPTO_TWOFISH_586
174         tristate "Twofish cipher algorithms (i586)"
175         depends on (X86 || UML_X86) && !64BIT
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_X86_64
190         tristate "Twofish cipher algorithm (x86_64)"
191         depends on (X86 || UML_X86) && 64BIT
192         select CRYPTO_ALGAPI
193         select CRYPTO_TWOFISH_COMMON
194         help
195           Twofish cipher algorithm (x86_64).
196
197           Twofish was submitted as an AES (Advanced Encryption Standard)
198           candidate cipher by researchers at CounterPane Systems.  It is a
199           16 round block cipher supporting key sizes of 128, 192, and 256
200           bits.
201
202           See also:
203           <http://www.schneier.com/twofish.html>
204
205 config CRYPTO_SERPENT
206         tristate "Serpent cipher algorithm"
207         select CRYPTO_ALGAPI
208         help
209           Serpent cipher algorithm, by Anderson, Biham & Knudsen.
210
211           Keys are allowed to be from 0 to 256 bits in length, in steps
212           of 8 bits.  Also includes the 'Tnepres' algorithm, a reversed
213           variant of Serpent for compatibility with old kerneli code.
214
215           See also:
216           <http://www.cl.cam.ac.uk/~rja14/serpent.html>
217
218 config CRYPTO_AES
219         tristate "AES cipher algorithms"
220         select CRYPTO_ALGAPI
221         help
222           AES cipher algorithms (FIPS-197). AES uses the Rijndael 
223           algorithm.
224
225           Rijndael appears to be consistently a very good performer in
226           both hardware and software across a wide range of computing 
227           environments regardless of its use in feedback or non-feedback 
228           modes. Its key setup time is excellent, and its key agility is 
229           good. Rijndael's very low memory requirements make it very well 
230           suited for restricted-space environments, in which it also 
231           demonstrates excellent performance. Rijndael's operations are 
232           among the easiest to defend against power and timing attacks. 
233
234           The AES specifies three key sizes: 128, 192 and 256 bits        
235
236           See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
237
238 config CRYPTO_AES_586
239         tristate "AES cipher algorithms (i586)"
240         depends on (X86 || UML_X86) && !64BIT
241         select CRYPTO_ALGAPI
242         help
243           AES cipher algorithms (FIPS-197). AES uses the Rijndael 
244           algorithm.
245
246           Rijndael appears to be consistently a very good performer in
247           both hardware and software across a wide range of computing 
248           environments regardless of its use in feedback or non-feedback 
249           modes. Its key setup time is excellent, and its key agility is 
250           good. Rijndael's very low memory requirements make it very well 
251           suited for restricted-space environments, in which it also 
252           demonstrates excellent performance. Rijndael's operations are 
253           among the easiest to defend against power and timing attacks. 
254
255           The AES specifies three key sizes: 128, 192 and 256 bits        
256
257           See <http://csrc.nist.gov/encryption/aes/> for more information.
258
259 config CRYPTO_AES_X86_64
260         tristate "AES cipher algorithms (x86_64)"
261         depends on (X86 || UML_X86) && 64BIT
262         select CRYPTO_ALGAPI
263         help
264           AES cipher algorithms (FIPS-197). AES uses the Rijndael 
265           algorithm.
266
267           Rijndael appears to be consistently a very good performer in
268           both hardware and software across a wide range of computing 
269           environments regardless of its use in feedback or non-feedback 
270           modes. Its key setup time is excellent, and its key agility is 
271           good. Rijndael's very low memory requirements make it very well 
272           suited for restricted-space environments, in which it also 
273           demonstrates excellent performance. Rijndael's operations are 
274           among the easiest to defend against power and timing attacks. 
275
276           The AES specifies three key sizes: 128, 192 and 256 bits        
277
278           See <http://csrc.nist.gov/encryption/aes/> for more information.
279
280 config CRYPTO_AES_S390
281         tristate "AES cipher algorithms (s390)"
282         depends on S390
283         select CRYPTO_ALGAPI
284         help
285           This is the s390 hardware accelerated implementation of the
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           On s390 the System z9-109 currently only supports the key size
299           of 128 bit.
300
301 config CRYPTO_CAST5
302         tristate "CAST5 (CAST-128) cipher algorithm"
303         select CRYPTO_ALGAPI
304         help
305           The CAST5 encryption algorithm (synonymous with CAST-128) is
306           described in RFC2144.
307
308 config CRYPTO_CAST6
309         tristate "CAST6 (CAST-256) cipher algorithm"
310         select CRYPTO_ALGAPI
311         help
312           The CAST6 encryption algorithm (synonymous with CAST-256) is
313           described in RFC2612.
314
315 config CRYPTO_TEA
316         tristate "TEA, XTEA and XETA cipher algorithms"
317         select CRYPTO_ALGAPI
318         help
319           TEA cipher algorithm.
320
321           Tiny Encryption Algorithm is a simple cipher that uses
322           many rounds for security.  It is very fast and uses
323           little memory.
324
325           Xtendend Tiny Encryption Algorithm is a modification to
326           the TEA algorithm to address a potential key weakness
327           in the TEA algorithm.
328
329           Xtendend Encryption Tiny Algorithm is a mis-implementation 
330           of the XTEA algorithm for compatibility purposes.
331
332 config CRYPTO_ARC4
333         tristate "ARC4 cipher algorithm"
334         select CRYPTO_ALGAPI
335         help
336           ARC4 cipher algorithm.
337
338           ARC4 is a stream cipher using keys ranging from 8 bits to 2048
339           bits in length.  This algorithm is required for driver-based 
340           WEP, but it should not be for other purposes because of the
341           weakness of the algorithm.
342
343 config CRYPTO_KHAZAD
344         tristate "Khazad cipher algorithm"
345         select CRYPTO_ALGAPI
346         help
347           Khazad cipher algorithm.
348
349           Khazad was a finalist in the initial NESSIE competition.  It is
350           an algorithm optimized for 64-bit processors with good performance
351           on 32-bit processors.  Khazad uses an 128 bit key size.
352
353           See also:
354           <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
355
356 config CRYPTO_ANUBIS
357         tristate "Anubis cipher algorithm"
358         select CRYPTO_ALGAPI
359         help
360           Anubis cipher algorithm.
361
362           Anubis is a variable key length cipher which can use keys from 
363           128 bits to 320 bits in length.  It was evaluated as a entrant
364           in the NESSIE competition.
365           
366           See also:
367           <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
368           <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
369
370
371 config CRYPTO_DEFLATE
372         tristate "Deflate compression algorithm"
373         select CRYPTO_ALGAPI
374         select ZLIB_INFLATE
375         select ZLIB_DEFLATE
376         help
377           This is the Deflate algorithm (RFC1951), specified for use in
378           IPSec with the IPCOMP protocol (RFC3173, RFC2394).
379           
380           You will most probably want this if using IPSec.
381
382 config CRYPTO_MICHAEL_MIC
383         tristate "Michael MIC keyed digest algorithm"
384         select CRYPTO_ALGAPI
385         help
386           Michael MIC is used for message integrity protection in TKIP
387           (IEEE 802.11i). This algorithm is required for TKIP, but it
388           should not be used for other purposes because of the weakness
389           of the algorithm.
390
391 config CRYPTO_CRC32C
392         tristate "CRC32c CRC algorithm"
393         select CRYPTO_ALGAPI
394         select LIBCRC32C
395         help
396           Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
397           by iSCSI for header and data digests and by others.
398           See Castagnoli93.  This implementation uses lib/libcrc32c.
399           Module will be crc32c.
400
401 config CRYPTO_TEST
402         tristate "Testing module"
403         depends on m
404         select CRYPTO_ALGAPI
405         help
406           Quick & dirty crypto test module.
407
408 source "drivers/crypto/Kconfig"
409
410 endif   # if CRYPTO
411
412 endmenu