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