[CRYPTO] twofish: Split out common c code
[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 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_SERPENT
154         tristate "Serpent cipher algorithm"
155         depends on CRYPTO
156         help
157           Serpent cipher algorithm, by Anderson, Biham & Knudsen.
158
159           Keys are allowed to be from 0 to 256 bits in length, in steps
160           of 8 bits.  Also includes the 'Tnepres' algorithm, a reversed
161           variant of Serpent for compatibility with old kerneli code.
162
163           See also:
164           <http://www.cl.cam.ac.uk/~rja14/serpent.html>
165
166 config CRYPTO_AES
167         tristate "AES cipher algorithms"
168         depends on CRYPTO
169         help
170           AES cipher algorithms (FIPS-197). AES uses the Rijndael 
171           algorithm.
172
173           Rijndael appears to be consistently a very good performer in
174           both hardware and software across a wide range of computing 
175           environments regardless of its use in feedback or non-feedback 
176           modes. Its key setup time is excellent, and its key agility is 
177           good. Rijndael's very low memory requirements make it very well 
178           suited for restricted-space environments, in which it also 
179           demonstrates excellent performance. Rijndael's operations are 
180           among the easiest to defend against power and timing attacks. 
181
182           The AES specifies three key sizes: 128, 192 and 256 bits        
183
184           See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
185
186 config CRYPTO_AES_586
187         tristate "AES cipher algorithms (i586)"
188         depends on CRYPTO && ((X86 || UML_X86) && !64BIT)
189         help
190           AES cipher algorithms (FIPS-197). AES uses the Rijndael 
191           algorithm.
192
193           Rijndael appears to be consistently a very good performer in
194           both hardware and software across a wide range of computing 
195           environments regardless of its use in feedback or non-feedback 
196           modes. Its key setup time is excellent, and its key agility is 
197           good. Rijndael's very low memory requirements make it very well 
198           suited for restricted-space environments, in which it also 
199           demonstrates excellent performance. Rijndael's operations are 
200           among the easiest to defend against power and timing attacks. 
201
202           The AES specifies three key sizes: 128, 192 and 256 bits        
203
204           See <http://csrc.nist.gov/encryption/aes/> for more information.
205
206 config CRYPTO_AES_X86_64
207         tristate "AES cipher algorithms (x86_64)"
208         depends on CRYPTO && ((X86 || UML_X86) && 64BIT)
209         help
210           AES cipher algorithms (FIPS-197). AES uses the Rijndael 
211           algorithm.
212
213           Rijndael appears to be consistently a very good performer in
214           both hardware and software across a wide range of computing 
215           environments regardless of its use in feedback or non-feedback 
216           modes. Its key setup time is excellent, and its key agility is 
217           good. Rijndael's very low memory requirements make it very well 
218           suited for restricted-space environments, in which it also 
219           demonstrates excellent performance. Rijndael's operations are 
220           among the easiest to defend against power and timing attacks. 
221
222           The AES specifies three key sizes: 128, 192 and 256 bits        
223
224           See <http://csrc.nist.gov/encryption/aes/> for more information.
225
226 config CRYPTO_AES_S390
227         tristate "AES cipher algorithms (s390)"
228         depends on CRYPTO && S390
229         help
230           This is the s390 hardware accelerated implementation of the
231           AES cipher algorithms (FIPS-197). AES uses the Rijndael
232           algorithm.
233
234           Rijndael appears to be consistently a very good performer in
235           both hardware and software across a wide range of computing
236           environments regardless of its use in feedback or non-feedback
237           modes. Its key setup time is excellent, and its key agility is
238           good. Rijndael's very low memory requirements make it very well
239           suited for restricted-space environments, in which it also
240           demonstrates excellent performance. Rijndael's operations are
241           among the easiest to defend against power and timing attacks.
242
243           On s390 the System z9-109 currently only supports the key size
244           of 128 bit.
245
246 config CRYPTO_CAST5
247         tristate "CAST5 (CAST-128) cipher algorithm"
248         depends on CRYPTO
249         help
250           The CAST5 encryption algorithm (synonymous with CAST-128) is
251           described in RFC2144.
252
253 config CRYPTO_CAST6
254         tristate "CAST6 (CAST-256) cipher algorithm"
255         depends on CRYPTO
256         help
257           The CAST6 encryption algorithm (synonymous with CAST-256) is
258           described in RFC2612.
259
260 config CRYPTO_TEA
261         tristate "TEA, XTEA and XETA cipher algorithms"
262         depends on CRYPTO
263         help
264           TEA cipher algorithm.
265
266           Tiny Encryption Algorithm is a simple cipher that uses
267           many rounds for security.  It is very fast and uses
268           little memory.
269
270           Xtendend Tiny Encryption Algorithm is a modification to
271           the TEA algorithm to address a potential key weakness
272           in the TEA algorithm.
273
274           Xtendend Encryption Tiny Algorithm is a mis-implementation 
275           of the XTEA algorithm for compatibility purposes.
276
277 config CRYPTO_ARC4
278         tristate "ARC4 cipher algorithm"
279         depends on CRYPTO
280         help
281           ARC4 cipher algorithm.
282
283           ARC4 is a stream cipher using keys ranging from 8 bits to 2048
284           bits in length.  This algorithm is required for driver-based 
285           WEP, but it should not be for other purposes because of the
286           weakness of the algorithm.
287
288 config CRYPTO_KHAZAD
289         tristate "Khazad cipher algorithm"
290         depends on CRYPTO
291         help
292           Khazad cipher algorithm.
293
294           Khazad was a finalist in the initial NESSIE competition.  It is
295           an algorithm optimized for 64-bit processors with good performance
296           on 32-bit processors.  Khazad uses an 128 bit key size.
297
298           See also:
299           <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
300
301 config CRYPTO_ANUBIS
302         tristate "Anubis cipher algorithm"
303         depends on CRYPTO
304         help
305           Anubis cipher algorithm.
306
307           Anubis is a variable key length cipher which can use keys from 
308           128 bits to 320 bits in length.  It was evaluated as a entrant
309           in the NESSIE competition.
310           
311           See also:
312           <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
313           <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
314
315
316 config CRYPTO_DEFLATE
317         tristate "Deflate compression algorithm"
318         depends on CRYPTO
319         select ZLIB_INFLATE
320         select ZLIB_DEFLATE
321         help
322           This is the Deflate algorithm (RFC1951), specified for use in
323           IPSec with the IPCOMP protocol (RFC3173, RFC2394).
324           
325           You will most probably want this if using IPSec.
326
327 config CRYPTO_MICHAEL_MIC
328         tristate "Michael MIC keyed digest algorithm"
329         depends on CRYPTO
330         help
331           Michael MIC is used for message integrity protection in TKIP
332           (IEEE 802.11i). This algorithm is required for TKIP, but it
333           should not be used for other purposes because of the weakness
334           of the algorithm.
335
336 config CRYPTO_CRC32C
337         tristate "CRC32c CRC algorithm"
338         depends on CRYPTO
339         select LIBCRC32C
340         help
341           Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
342           by iSCSI for header and data digests and by others.
343           See Castagnoli93.  This implementation uses lib/libcrc32c.
344           Module will be crc32c.
345
346 config CRYPTO_TEST
347         tristate "Testing module"
348         depends on CRYPTO && m
349         help
350           Quick & dirty crypto test module.
351
352 source "drivers/crypto/Kconfig"
353 endmenu
354