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