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