linux/crypto/Kconfig
<<
>>
Prefs
   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