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