1# 2# Generic algorithms support 3# 4config XOR_BLOCKS 5 tristate 6 7# 8# async_tx api: hardware offloaded memory transfer/transform support 9# 10source "crypto/async_tx/Kconfig" 11 12# 13# Cryptographic API Configuration 14# 15menuconfig CRYPTO 16 bool "Cryptographic API" 17 help 18 This option provides the core Cryptographic API. 19 20if CRYPTO 21 22config CRYPTO_ALGAPI 23 tristate 24 help 25 This option provides the API for cryptographic algorithms. 26 27config CRYPTO_ABLKCIPHER 28 tristate 29 select CRYPTO_BLKCIPHER 30 31config CRYPTO_AEAD 32 tristate 33 select CRYPTO_ALGAPI 34 35config CRYPTO_BLKCIPHER 36 tristate 37 select CRYPTO_ALGAPI 38 39config CRYPTO_HASH 40 tristate 41 select CRYPTO_ALGAPI 42 43config CRYPTO_MANAGER 44 tristate "Cryptographic algorithm manager" 45 select CRYPTO_ALGAPI 46 help 47 Create default cryptographic template instantiations such as 48 cbc(aes). 49 50config CRYPTO_HMAC 51 tristate "HMAC support" 52 select CRYPTO_HASH 53 select CRYPTO_MANAGER 54 help 55 HMAC: Keyed-Hashing for Message Authentication (RFC2104). 56 This is required for IPSec. 57 58config CRYPTO_XCBC 59 tristate "XCBC support" 60 depends on EXPERIMENTAL 61 select CRYPTO_HASH 62 select CRYPTO_MANAGER 63 help 64 XCBC: Keyed-Hashing with encryption algorithm 65 http://www.ietf.org/rfc/rfc3566.txt 66 http://csrc.nist.gov/encryption/modes/proposedmodes/ 67 xcbc-mac/xcbc-mac-spec.pdf 68 69config CRYPTO_NULL 70 tristate "Null algorithms" 71 select CRYPTO_ALGAPI 72 help 73 These are 'Null' algorithms, used by IPsec, which do nothing. 74 75config CRYPTO_MD4 76 tristate "MD4 digest algorithm" 77 select CRYPTO_ALGAPI 78 help 79 MD4 message digest algorithm (RFC1320). 80 81config CRYPTO_MD5 82 tristate "MD5 digest algorithm" 83 select CRYPTO_ALGAPI 84 help 85 MD5 message digest algorithm (RFC1321). 86 87config CRYPTO_SHA1 88 tristate "SHA1 digest algorithm" 89 select CRYPTO_ALGAPI 90 help 91 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2). 92 93config CRYPTO_SHA256 94 tristate "SHA256 digest algorithm" 95 select CRYPTO_ALGAPI 96 help 97 SHA256 secure hash standard (DFIPS 180-2). 98 99 This version of SHA implements a 256 bit hash with 128 bits of 100 security against collision attacks. 101 102config CRYPTO_SHA512 103 tristate "SHA384 and SHA512 digest algorithms" 104 select CRYPTO_ALGAPI 105 help 106 SHA512 secure hash standard (DFIPS 180-2). 107 108 This version of SHA implements a 512 bit hash with 256 bits of 109 security against collision attacks. 110 111 This code also includes SHA-384, a 384 bit hash with 192 bits 112 of security against collision attacks. 113 114config CRYPTO_WP512 115 tristate "Whirlpool digest algorithms" 116 select CRYPTO_ALGAPI 117 help 118 Whirlpool hash algorithm 512, 384 and 256-bit hashes 119 120 Whirlpool-512 is part of the NESSIE cryptographic primitives. 121 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard 122 123 See also: 124 <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html> 125 126config CRYPTO_TGR192 127 tristate "Tiger digest algorithms" 128 select CRYPTO_ALGAPI 129 help 130 Tiger hash algorithm 192, 160 and 128-bit hashes 131 132 Tiger is a hash function optimized for 64-bit processors while 133 still having decent performance on 32-bit processors. 134 Tiger was developed by Ross Anderson and Eli Biham. 135 136 See also: 137 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>. 138 139config CRYPTO_GF128MUL 140 tristate "GF(2^128) multiplication functions (EXPERIMENTAL)" 141 depends on EXPERIMENTAL 142 help 143 Efficient table driven implementation of multiplications in the 144 field GF(2^128). This is needed by some cypher modes. This 145 option will be selected automatically if you select such a 146 cipher mode. Only select this option by hand if you expect to load 147 an external module that requires these functions. 148 149config CRYPTO_ECB 150 tristate "ECB support" 151 select CRYPTO_BLKCIPHER 152 select CRYPTO_MANAGER 153 help 154 ECB: Electronic CodeBook mode 155 This is the simplest block cipher algorithm. It simply encrypts 156 the input block by block. 157 158config CRYPTO_CBC 159 tristate "CBC support" 160 select CRYPTO_BLKCIPHER 161 select CRYPTO_MANAGER 162 help 163 CBC: Cipher Block Chaining mode 164 This block cipher algorithm is required for IPSec. 165 166config CRYPTO_PCBC 167 tristate "PCBC support" 168 select CRYPTO_BLKCIPHER 169 select CRYPTO_MANAGER 170 help 171 PCBC: Propagating Cipher Block Chaining mode 172 This block cipher algorithm is required for RxRPC. 173 174config CRYPTO_LRW 175 tristate "LRW support (EXPERIMENTAL)" 176 depends on EXPERIMENTAL 177 select CRYPTO_BLKCIPHER 178 select CRYPTO_MANAGER 179 select CRYPTO_GF128MUL 180 help 181 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable 182 narrow block cipher mode for dm-crypt. Use it with cipher 183 specification string aes-lrw-benbi, the key must be 256, 320 or 384. 184 The first 128, 192 or 256 bits in the key are used for AES and the 185 rest is used to tie each cipher block to its logical position. 186 187config CRYPTO_XTS 188 tristate "XTS support (EXPERIMENTAL)" 189 depends on EXPERIMENTAL 190 select CRYPTO_BLKCIPHER 191 select CRYPTO_MANAGER 192 select CRYPTO_GF128MUL 193 help 194 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain, 195 key size 256, 384 or 512 bits. This implementation currently 196 can't handle a sectorsize which is not a multiple of 16 bytes. 197 198config CRYPTO_CRYPTD 199 tristate "Software async crypto daemon" 200 select CRYPTO_ABLKCIPHER 201 select CRYPTO_MANAGER 202 help 203 This is a generic software asynchronous crypto daemon that 204 converts an arbitrary synchronous software crypto algorithm 205 into an asynchronous algorithm that executes in a kernel thread. 206 207config CRYPTO_DES 208 tristate "DES and Triple DES EDE cipher algorithms" 209 select CRYPTO_ALGAPI 210 help 211 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3). 212 213config CRYPTO_FCRYPT 214 tristate "FCrypt cipher algorithm" 215 select CRYPTO_ALGAPI 216 select CRYPTO_BLKCIPHER 217 help 218 FCrypt algorithm used by RxRPC. 219 220config CRYPTO_BLOWFISH 221 tristate "Blowfish cipher algorithm" 222 select CRYPTO_ALGAPI 223 help 224 Blowfish cipher algorithm, by Bruce Schneier. 225 226 This is a variable key length cipher which can use keys from 32 227 bits to 448 bits in length. It's fast, simple and specifically 228 designed for use on "large microprocessors". 229 230 See also: 231 <http://www.schneier.com/blowfish.html> 232 233config CRYPTO_TWOFISH 234 tristate "Twofish cipher algorithm" 235 select CRYPTO_ALGAPI 236 select CRYPTO_TWOFISH_COMMON 237 help 238 Twofish cipher algorithm. 239 240 Twofish was submitted as an AES (Advanced Encryption Standard) 241 candidate cipher by researchers at CounterPane Systems. It is a 242 16 round block cipher supporting key sizes of 128, 192, and 256 243 bits. 244 245 See also: 246 <http://www.schneier.com/twofish.html> 247 248config CRYPTO_TWOFISH_COMMON 249 tristate 250 help 251 Common parts of the Twofish cipher algorithm shared by the 252 generic c and the assembler implementations. 253 254config CRYPTO_TWOFISH_586 255 tristate "Twofish cipher algorithms (i586)" 256 depends on (X86 || UML_X86) && !64BIT 257 select CRYPTO_ALGAPI 258 select CRYPTO_TWOFISH_COMMON 259 help 260 Twofish cipher algorithm. 261 262 Twofish was submitted as an AES (Advanced Encryption Standard) 263 candidate cipher by researchers at CounterPane Systems. It is a 264 16 round block cipher supporting key sizes of 128, 192, and 256 265 bits. 266 267 See also: 268 <http://www.schneier.com/twofish.html> 269 270config CRYPTO_TWOFISH_X86_64 271 tristate "Twofish cipher algorithm (x86_64)" 272 depends on (X86 || UML_X86) && 64BIT 273 select CRYPTO_ALGAPI 274 select CRYPTO_TWOFISH_COMMON 275 help 276 Twofish cipher algorithm (x86_64). 277 278 Twofish was submitted as an AES (Advanced Encryption Standard) 279 candidate cipher by researchers at CounterPane Systems. It is a 280 16 round block cipher supporting key sizes of 128, 192, and 256 281 bits. 282 283 See also: 284 <http://www.schneier.com/twofish.html> 285 286config CRYPTO_SERPENT 287 tristate "Serpent cipher algorithm" 288 select CRYPTO_ALGAPI 289 help 290 Serpent cipher algorithm, by Anderson, Biham & Knudsen. 291 292 Keys are allowed to be from 0 to 256 bits in length, in steps 293 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed 294 variant of Serpent for compatibility with old kerneli.org code. 295 296 See also: 297 <http://www.cl.cam.ac.uk/~rja14/serpent.html> 298 299config CRYPTO_AES 300 tristate "AES cipher algorithms" 301 select CRYPTO_ALGAPI 302 help 303 AES cipher algorithms (FIPS-197). AES uses the Rijndael 304 algorithm. 305 306 Rijndael appears to be consistently a very good performer in 307 both hardware and software across a wide range of computing 308 environments regardless of its use in feedback or non-feedback 309 modes. Its key setup time is excellent, and its key agility is 310 good. Rijndael's very low memory requirements make it very well 311 suited for restricted-space environments, in which it also 312 demonstrates excellent performance. Rijndael's operations are 313 among the easiest to defend against power and timing attacks. 314 315 The AES specifies three key sizes: 128, 192 and 256 bits 316 317 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information. 318 319config CRYPTO_AES_586 320 tristate "AES cipher algorithms (i586)" 321 depends on (X86 || UML_X86) && !64BIT 322 select CRYPTO_ALGAPI 323 help 324 AES cipher algorithms (FIPS-197). AES uses the Rijndael 325 algorithm. 326 327 Rijndael appears to be consistently a very good performer in 328 both hardware and software across a wide range of computing 329 environments regardless of its use in feedback or non-feedback 330 modes. Its key setup time is excellent, and its key agility is 331 good. Rijndael's very low memory requirements make it very well 332 suited for restricted-space environments, in which it also 333 demonstrates excellent performance. Rijndael's operations are 334 among the easiest to defend against power and timing attacks. 335 336 The AES specifies three key sizes: 128, 192 and 256 bits 337 338 See <http://csrc.nist.gov/encryption/aes/> for more information. 339 340config CRYPTO_AES_X86_64 341 tristate "AES cipher algorithms (x86_64)" 342 depends on (X86 || UML_X86) && 64BIT 343 select CRYPTO_ALGAPI 344 help 345 AES cipher algorithms (FIPS-197). AES uses the Rijndael 346 algorithm. 347 348 Rijndael appears to be consistently a very good performer in 349 both hardware and software across a wide range of computing 350 environments regardless of its use in feedback or non-feedback 351 modes. Its key setup time is excellent, and its key agility is 352 good. Rijndael's very low memory requirements make it very well 353 suited for restricted-space environments, in which it also 354 demonstrates excellent performance. Rijndael's operations are 355 among the easiest to defend against power and timing attacks. 356 357 The AES specifies three key sizes: 128, 192 and 256 bits 358 359 See <http://csrc.nist.gov/encryption/aes/> for more information. 360 361config CRYPTO_CAST5 362 tristate "CAST5 (CAST-128) cipher algorithm" 363 select CRYPTO_ALGAPI 364 help 365 The CAST5 encryption algorithm (synonymous with CAST-128) is 366 described in RFC2144. 367 368config CRYPTO_CAST6 369 tristate "CAST6 (CAST-256) cipher algorithm" 370 select CRYPTO_ALGAPI 371 help 372 The CAST6 encryption algorithm (synonymous with CAST-256) is 373 described in RFC2612. 374 375config CRYPTO_TEA 376 tristate "TEA, XTEA and XETA cipher algorithms" 377 select CRYPTO_ALGAPI 378 help 379 TEA cipher algorithm. 380 381 Tiny Encryption Algorithm is a simple cipher that uses 382 many rounds for security. It is very fast and uses 383 little memory. 384 385 Xtendend Tiny Encryption Algorithm is a modification to 386 the TEA algorithm to address a potential key weakness 387 in the TEA algorithm. 388 389 Xtendend Encryption Tiny Algorithm is a mis-implementation 390 of the XTEA algorithm for compatibility purposes. 391 392config CRYPTO_ARC4 393 tristate "ARC4 cipher algorithm" 394 select CRYPTO_ALGAPI 395 help 396 ARC4 cipher algorithm. 397 398 ARC4 is a stream cipher using keys ranging from 8 bits to 2048 399 bits in length. This algorithm is required for driver-based 400 WEP, but it should not be for other purposes because of the 401 weakness of the algorithm. 402 403config CRYPTO_KHAZAD 404 tristate "Khazad cipher algorithm" 405 select CRYPTO_ALGAPI 406 help 407 Khazad cipher algorithm. 408 409 Khazad was a finalist in the initial NESSIE competition. It is 410 an algorithm optimized for 64-bit processors with good performance 411 on 32-bit processors. Khazad uses an 128 bit key size. 412 413 See also: 414 <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html> 415 416config CRYPTO_ANUBIS 417 tristate "Anubis cipher algorithm" 418 select CRYPTO_ALGAPI 419 help 420 Anubis cipher algorithm. 421 422 Anubis is a variable key length cipher which can use keys from 423 128 bits to 320 bits in length. It was evaluated as a entrant 424 in the NESSIE competition. 425 426 See also: 427 <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/> 428 <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html> 429 430config CRYPTO_SEED 431 tristate "SEED cipher algorithm" 432 select CRYPTO_ALGAPI 433 help 434 SEED cipher algorithm (RFC4269). 435 436 SEED is a 128-bit symmetric key block cipher that has been 437 developed by KISA (Korea Information Security Agency) as a 438 national standard encryption algorithm of the Republic of Korea. 439 It is a 16 round block cipher with the key size of 128 bit. 440 441 See also: 442 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp> 443 444 445config CRYPTO_DEFLATE 446 tristate "Deflate compression algorithm" 447 select CRYPTO_ALGAPI 448 select ZLIB_INFLATE 449 select ZLIB_DEFLATE 450 help 451 This is the Deflate algorithm (RFC1951), specified for use in 452 IPSec with the IPCOMP protocol (RFC3173, RFC2394). 453 454 You will most probably want this if using IPSec. 455 456config CRYPTO_MICHAEL_MIC 457 tristate "Michael MIC keyed digest algorithm" 458 select CRYPTO_ALGAPI 459 help 460 Michael MIC is used for message integrity protection in TKIP 461 (IEEE 802.11i). This algorithm is required for TKIP, but it 462 should not be used for other purposes because of the weakness 463 of the algorithm. 464 465config CRYPTO_CRC32C 466 tristate "CRC32c CRC algorithm" 467 select CRYPTO_ALGAPI 468 select LIBCRC32C 469 help 470 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used 471 by iSCSI for header and data digests and by others. 472 See Castagnoli93. This implementation uses lib/libcrc32c. 473 Module will be crc32c. 474 475config CRYPTO_CAMELLIA 476 tristate "Camellia cipher algorithms" 477 depends on CRYPTO 478 select CRYPTO_ALGAPI 479 help 480 Camellia cipher algorithms module. 481 482 Camellia is a symmetric key block cipher developed jointly 483 at NTT and Mitsubishi Electric Corporation. 484 485 The Camellia specifies three key sizes: 128, 192 and 256 bits. 486 487 See also: 488 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> 489 490config CRYPTO_TEST 491 tristate "Testing module" 492 depends on m 493 select CRYPTO_ALGAPI 494 help 495 Quick & dirty crypto test module. 496 497config CRYPTO_AUTHENC 498 tristate "Authenc support" 499 select CRYPTO_AEAD 500 select CRYPTO_MANAGER 501 help 502 Authenc: Combined mode wrapper for IPsec. 503 This is required for IPSec. 504 505source "drivers/crypto/Kconfig" 506 507endif # if CRYPTO 508