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