2 # Cryptographic API Configuration
5 menu "Cryptographic options"
8 bool "Cryptographic API"
10 This option provides the core Cryptographic API.
17 This option provides the API for cryptographic algorithms.
19 config CRYPTO_BLKCIPHER
28 tristate "Cryptographic algorithm manager"
31 Create default cryptographic template instantiations such as
35 tristate "HMAC support"
39 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
40 This is required for IPSec.
43 tristate "XCBC support"
44 depends on EXPERIMENTAL
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
54 tristate "Null algorithms"
57 These are 'Null' algorithms, used by IPsec, which do nothing.
60 tristate "MD4 digest algorithm"
63 MD4 message digest algorithm (RFC1320).
66 tristate "MD5 digest algorithm"
69 MD5 message digest algorithm (RFC1321).
72 tristate "SHA1 digest algorithm"
75 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
77 config CRYPTO_SHA1_S390
78 tristate "SHA1 digest algorithm (s390)"
82 This is the s390 hardware accelerated implementation of the
83 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
86 tristate "SHA256 digest algorithm"
89 SHA256 secure hash standard (DFIPS 180-2).
91 This version of SHA implements a 256 bit hash with 128 bits of
92 security against collision attacks.
94 config CRYPTO_SHA256_S390
95 tristate "SHA256 digest algorithm (s390)"
99 This is the s390 hardware accelerated implementation of the
100 SHA256 secure hash standard (DFIPS 180-2).
102 This version of SHA implements a 256 bit hash with 128 bits of
103 security against collision attacks.
106 tristate "SHA384 and SHA512 digest algorithms"
109 SHA512 secure hash standard (DFIPS 180-2).
111 This version of SHA implements a 512 bit hash with 256 bits of
112 security against collision attacks.
114 This code also includes SHA-384, a 384 bit hash with 192 bits
115 of security against collision attacks.
118 tristate "Whirlpool digest algorithms"
121 Whirlpool hash algorithm 512, 384 and 256-bit hashes
123 Whirlpool-512 is part of the NESSIE cryptographic primitives.
124 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
127 <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
130 tristate "Tiger digest algorithms"
133 Tiger hash algorithm 192, 160 and 128-bit hashes
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.
140 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
142 config CRYPTO_GF128MUL
143 tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
144 depends on EXPERIMENTAL
146 Efficient table driven implementation of multiplications in the
147 field GF(2^128). This is needed by some cypher modes. This
148 option will be selected automatically if you select such a
149 cipher mode. Only select this option by hand if you expect to load
150 an external module that requires these functions.
153 tristate "ECB support"
154 select CRYPTO_BLKCIPHER
155 select CRYPTO_MANAGER
158 ECB: Electronic CodeBook mode
159 This is the simplest block cipher algorithm. It simply encrypts
160 the input block by block.
163 tristate "CBC support"
164 select CRYPTO_BLKCIPHER
165 select CRYPTO_MANAGER
168 CBC: Cipher Block Chaining mode
169 This block cipher algorithm is required for IPSec.
172 tristate "DES and Triple DES EDE cipher algorithms"
175 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
177 config CRYPTO_DES_S390
178 tristate "DES and Triple DES cipher algorithms (s390)"
181 select CRYPTO_BLKCIPHER
183 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
185 config CRYPTO_BLOWFISH
186 tristate "Blowfish cipher algorithm"
189 Blowfish cipher algorithm, by Bruce Schneier.
191 This is a variable key length cipher which can use keys from 32
192 bits to 448 bits in length. It's fast, simple and specifically
193 designed for use on "large microprocessors".
196 <http://www.schneier.com/blowfish.html>
198 config CRYPTO_TWOFISH
199 tristate "Twofish cipher algorithm"
201 select CRYPTO_TWOFISH_COMMON
203 Twofish cipher algorithm.
205 Twofish was submitted as an AES (Advanced Encryption Standard)
206 candidate cipher by researchers at CounterPane Systems. It is a
207 16 round block cipher supporting key sizes of 128, 192, and 256
211 <http://www.schneier.com/twofish.html>
213 config CRYPTO_TWOFISH_COMMON
216 Common parts of the Twofish cipher algorithm shared by the
217 generic c and the assembler implementations.
219 config CRYPTO_TWOFISH_586
220 tristate "Twofish cipher algorithms (i586)"
221 depends on (X86 || UML_X86) && !64BIT
223 select CRYPTO_TWOFISH_COMMON
225 Twofish cipher algorithm.
227 Twofish was submitted as an AES (Advanced Encryption Standard)
228 candidate cipher by researchers at CounterPane Systems. It is a
229 16 round block cipher supporting key sizes of 128, 192, and 256
233 <http://www.schneier.com/twofish.html>
235 config CRYPTO_TWOFISH_X86_64
236 tristate "Twofish cipher algorithm (x86_64)"
237 depends on (X86 || UML_X86) && 64BIT
239 select CRYPTO_TWOFISH_COMMON
241 Twofish cipher algorithm (x86_64).
243 Twofish was submitted as an AES (Advanced Encryption Standard)
244 candidate cipher by researchers at CounterPane Systems. It is a
245 16 round block cipher supporting key sizes of 128, 192, and 256
249 <http://www.schneier.com/twofish.html>
251 config CRYPTO_SERPENT
252 tristate "Serpent cipher algorithm"
255 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
257 Keys are allowed to be from 0 to 256 bits in length, in steps
258 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
259 variant of Serpent for compatibility with old kerneli code.
262 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
265 tristate "AES cipher algorithms"
268 AES cipher algorithms (FIPS-197). AES uses the Rijndael
271 Rijndael appears to be consistently a very good performer in
272 both hardware and software across a wide range of computing
273 environments regardless of its use in feedback or non-feedback
274 modes. Its key setup time is excellent, and its key agility is
275 good. Rijndael's very low memory requirements make it very well
276 suited for restricted-space environments, in which it also
277 demonstrates excellent performance. Rijndael's operations are
278 among the easiest to defend against power and timing attacks.
280 The AES specifies three key sizes: 128, 192 and 256 bits
282 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
284 config CRYPTO_AES_586
285 tristate "AES cipher algorithms (i586)"
286 depends on (X86 || UML_X86) && !64BIT
289 AES cipher algorithms (FIPS-197). AES uses the Rijndael
292 Rijndael appears to be consistently a very good performer in
293 both hardware and software across a wide range of computing
294 environments regardless of its use in feedback or non-feedback
295 modes. Its key setup time is excellent, and its key agility is
296 good. Rijndael's very low memory requirements make it very well
297 suited for restricted-space environments, in which it also
298 demonstrates excellent performance. Rijndael's operations are
299 among the easiest to defend against power and timing attacks.
301 The AES specifies three key sizes: 128, 192 and 256 bits
303 See <http://csrc.nist.gov/encryption/aes/> for more information.
305 config CRYPTO_AES_X86_64
306 tristate "AES cipher algorithms (x86_64)"
307 depends on (X86 || UML_X86) && 64BIT
310 AES cipher algorithms (FIPS-197). AES uses the Rijndael
313 Rijndael appears to be consistently a very good performer in
314 both hardware and software across a wide range of computing
315 environments regardless of its use in feedback or non-feedback
316 modes. Its key setup time is excellent, and its key agility is
317 good. Rijndael's very low memory requirements make it very well
318 suited for restricted-space environments, in which it also
319 demonstrates excellent performance. Rijndael's operations are
320 among the easiest to defend against power and timing attacks.
322 The AES specifies three key sizes: 128, 192 and 256 bits
324 See <http://csrc.nist.gov/encryption/aes/> for more information.
326 config CRYPTO_AES_S390
327 tristate "AES cipher algorithms (s390)"
330 select CRYPTO_BLKCIPHER
332 This is the s390 hardware accelerated implementation of the
333 AES cipher algorithms (FIPS-197). AES uses the Rijndael
336 Rijndael appears to be consistently a very good performer in
337 both hardware and software across a wide range of computing
338 environments regardless of its use in feedback or non-feedback
339 modes. Its key setup time is excellent, and its key agility is
340 good. Rijndael's very low memory requirements make it very well
341 suited for restricted-space environments, in which it also
342 demonstrates excellent performance. Rijndael's operations are
343 among the easiest to defend against power and timing attacks.
345 On s390 the System z9-109 currently only supports the key size
349 tristate "CAST5 (CAST-128) cipher algorithm"
352 The CAST5 encryption algorithm (synonymous with CAST-128) is
353 described in RFC2144.
356 tristate "CAST6 (CAST-256) cipher algorithm"
359 The CAST6 encryption algorithm (synonymous with CAST-256) is
360 described in RFC2612.
363 tristate "TEA, XTEA and XETA cipher algorithms"
366 TEA cipher algorithm.
368 Tiny Encryption Algorithm is a simple cipher that uses
369 many rounds for security. It is very fast and uses
372 Xtendend Tiny Encryption Algorithm is a modification to
373 the TEA algorithm to address a potential key weakness
374 in the TEA algorithm.
376 Xtendend Encryption Tiny Algorithm is a mis-implementation
377 of the XTEA algorithm for compatibility purposes.
380 tristate "ARC4 cipher algorithm"
383 ARC4 cipher algorithm.
385 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
386 bits in length. This algorithm is required for driver-based
387 WEP, but it should not be for other purposes because of the
388 weakness of the algorithm.
391 tristate "Khazad cipher algorithm"
394 Khazad cipher algorithm.
396 Khazad was a finalist in the initial NESSIE competition. It is
397 an algorithm optimized for 64-bit processors with good performance
398 on 32-bit processors. Khazad uses an 128 bit key size.
401 <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
404 tristate "Anubis cipher algorithm"
407 Anubis cipher algorithm.
409 Anubis is a variable key length cipher which can use keys from
410 128 bits to 320 bits in length. It was evaluated as a entrant
411 in the NESSIE competition.
414 <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
415 <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
418 config CRYPTO_DEFLATE
419 tristate "Deflate compression algorithm"
424 This is the Deflate algorithm (RFC1951), specified for use in
425 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
427 You will most probably want this if using IPSec.
429 config CRYPTO_MICHAEL_MIC
430 tristate "Michael MIC keyed digest algorithm"
433 Michael MIC is used for message integrity protection in TKIP
434 (IEEE 802.11i). This algorithm is required for TKIP, but it
435 should not be used for other purposes because of the weakness
439 tristate "CRC32c CRC algorithm"
443 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
444 by iSCSI for header and data digests and by others.
445 See Castagnoli93. This implementation uses lib/libcrc32c.
446 Module will be crc32c.
449 tristate "Testing module"
453 Quick & dirty crypto test module.
455 source "drivers/crypto/Kconfig"