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