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        tristate "Cryptographic API"
  17        help
  18          This option provides the core Cryptographic API.
  19
  20if CRYPTO
  21
  22comment "Crypto core or helper"
  23
  24config CRYPTO_FIPS
  25        bool "FIPS 200 compliance"
  26        depends on CRYPTO_ANSI_CPRNG && !CRYPTO_MANAGER_DISABLE_TESTS
  27        help
  28          This options enables the fips boot option which is
  29          required if you want to system to operate in a FIPS 200
  30          certification.  You should say no unless you know what
  31          this is.
  32
  33config CRYPTO_ALGAPI
  34        tristate
  35        select CRYPTO_ALGAPI2
  36        help
  37          This option provides the API for cryptographic algorithms.
  38
  39config CRYPTO_ALGAPI2
  40        tristate
  41
  42config CRYPTO_AEAD
  43        tristate
  44        select CRYPTO_AEAD2
  45        select CRYPTO_ALGAPI
  46
  47config CRYPTO_AEAD2
  48        tristate
  49        select CRYPTO_ALGAPI2
  50
  51config CRYPTO_BLKCIPHER
  52        tristate
  53        select CRYPTO_BLKCIPHER2
  54        select CRYPTO_ALGAPI
  55
  56config CRYPTO_BLKCIPHER2
  57        tristate
  58        select CRYPTO_ALGAPI2
  59        select CRYPTO_RNG2
  60        select CRYPTO_WORKQUEUE
  61
  62config CRYPTO_HASH
  63        tristate
  64        select CRYPTO_HASH2
  65        select CRYPTO_ALGAPI
  66
  67config CRYPTO_HASH2
  68        tristate
  69        select CRYPTO_ALGAPI2
  70
  71config CRYPTO_RNG
  72        tristate
  73        select CRYPTO_RNG2
  74        select CRYPTO_ALGAPI
  75
  76config CRYPTO_RNG2
  77        tristate
  78        select CRYPTO_ALGAPI2
  79
  80config CRYPTO_PCOMP
  81        tristate
  82        select CRYPTO_PCOMP2
  83        select CRYPTO_ALGAPI
  84
  85config CRYPTO_PCOMP2
  86        tristate
  87        select CRYPTO_ALGAPI2
  88
  89config CRYPTO_MANAGER
  90        tristate "Cryptographic algorithm manager"
  91        select CRYPTO_MANAGER2
  92        help
  93          Create default cryptographic template instantiations such as
  94          cbc(aes).
  95
  96config CRYPTO_MANAGER2
  97        def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
  98        select CRYPTO_AEAD2
  99        select CRYPTO_HASH2
 100        select CRYPTO_BLKCIPHER2
 101        select CRYPTO_PCOMP2
 102
 103config CRYPTO_MANAGER_DISABLE_TESTS
 104        bool "Disable run-time self tests"
 105        default y
 106        depends on CRYPTO_MANAGER2
 107        help
 108          Disable run-time self tests that normally take place at
 109          algorithm registration.
 110
 111config CRYPTO_GF128MUL
 112        tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
 113        help
 114          Efficient table driven implementation of multiplications in the
 115          field GF(2^128).  This is needed by some cypher modes. This
 116          option will be selected automatically if you select such a
 117          cipher mode.  Only select this option by hand if you expect to load
 118          an external module that requires these functions.
 119
 120config CRYPTO_NULL
 121        tristate "Null algorithms"
 122        select CRYPTO_ALGAPI
 123        select CRYPTO_BLKCIPHER
 124        select CRYPTO_HASH
 125        help
 126          These are 'Null' algorithms, used by IPsec, which do nothing.
 127
 128config CRYPTO_PCRYPT
 129        tristate "Parallel crypto engine (EXPERIMENTAL)"
 130        depends on SMP && EXPERIMENTAL
 131        select PADATA
 132        select CRYPTO_MANAGER
 133        select CRYPTO_AEAD
 134        help
 135          This converts an arbitrary crypto algorithm into a parallel
 136          algorithm that executes in kernel threads.
 137
 138config CRYPTO_WORKQUEUE
 139       tristate
 140
 141config CRYPTO_CRYPTD
 142        tristate "Software async crypto daemon"
 143        select CRYPTO_BLKCIPHER
 144        select CRYPTO_HASH
 145        select CRYPTO_MANAGER
 146        select CRYPTO_WORKQUEUE
 147        help
 148          This is a generic software asynchronous crypto daemon that
 149          converts an arbitrary synchronous software crypto algorithm
 150          into an asynchronous algorithm that executes in a kernel thread.
 151
 152config CRYPTO_AUTHENC
 153        tristate "Authenc support"
 154        select CRYPTO_AEAD
 155        select CRYPTO_BLKCIPHER
 156        select CRYPTO_MANAGER
 157        select CRYPTO_HASH
 158        help
 159          Authenc: Combined mode wrapper for IPsec.
 160          This is required for IPSec.
 161
 162config CRYPTO_TEST
 163        tristate "Testing module"
 164        depends on m
 165        select CRYPTO_MANAGER
 166        help
 167          Quick & dirty crypto test module.
 168
 169comment "Authenticated Encryption with Associated Data"
 170
 171config CRYPTO_CCM
 172        tristate "CCM support"
 173        select CRYPTO_CTR
 174        select CRYPTO_AEAD
 175        help
 176          Support for Counter with CBC MAC. Required for IPsec.
 177
 178config CRYPTO_GCM
 179        tristate "GCM/GMAC support"
 180        select CRYPTO_CTR
 181        select CRYPTO_AEAD
 182        select CRYPTO_GHASH
 183        help
 184          Support for Galois/Counter Mode (GCM) and Galois Message
 185          Authentication Code (GMAC). Required for IPSec.
 186
 187config CRYPTO_SEQIV
 188        tristate "Sequence Number IV Generator"
 189        select CRYPTO_AEAD
 190        select CRYPTO_BLKCIPHER
 191        select CRYPTO_RNG
 192        help
 193          This IV generator generates an IV based on a sequence number by
 194          xoring it with a salt.  This algorithm is mainly useful for CTR
 195
 196comment "Block modes"
 197
 198config CRYPTO_CBC
 199        tristate "CBC support"
 200        select CRYPTO_BLKCIPHER
 201        select CRYPTO_MANAGER
 202        help
 203          CBC: Cipher Block Chaining mode
 204          This block cipher algorithm is required for IPSec.
 205
 206config CRYPTO_CTR
 207        tristate "CTR support"
 208        select CRYPTO_BLKCIPHER
 209        select CRYPTO_SEQIV
 210        select CRYPTO_MANAGER
 211        help
 212          CTR: Counter mode
 213          This block cipher algorithm is required for IPSec.
 214
 215config CRYPTO_CTS
 216        tristate "CTS support"
 217        select CRYPTO_BLKCIPHER
 218        help
 219          CTS: Cipher Text Stealing
 220          This is the Cipher Text Stealing mode as described by
 221          Section 8 of rfc2040 and referenced by rfc3962.
 222          (rfc3962 includes errata information in its Appendix A)
 223          This mode is required for Kerberos gss mechanism support
 224          for AES encryption.
 225
 226config CRYPTO_ECB
 227        tristate "ECB support"
 228        select CRYPTO_BLKCIPHER
 229        select CRYPTO_MANAGER
 230        help
 231          ECB: Electronic CodeBook mode
 232          This is the simplest block cipher algorithm.  It simply encrypts
 233          the input block by block.
 234
 235config CRYPTO_LRW
 236        tristate "LRW support (EXPERIMENTAL)"
 237        depends on EXPERIMENTAL
 238        select CRYPTO_BLKCIPHER
 239        select CRYPTO_MANAGER
 240        select CRYPTO_GF128MUL
 241        help
 242          LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
 243          narrow block cipher mode for dm-crypt.  Use it with cipher
 244          specification string aes-lrw-benbi, the key must be 256, 320 or 384.
 245          The first 128, 192 or 256 bits in the key are used for AES and the
 246          rest is used to tie each cipher block to its logical position.
 247
 248config CRYPTO_PCBC
 249        tristate "PCBC support"
 250        select CRYPTO_BLKCIPHER
 251        select CRYPTO_MANAGER
 252        help
 253          PCBC: Propagating Cipher Block Chaining mode
 254          This block cipher algorithm is required for RxRPC.
 255
 256config CRYPTO_XTS
 257        tristate "XTS support (EXPERIMENTAL)"
 258        depends on EXPERIMENTAL
 259        select CRYPTO_BLKCIPHER
 260        select CRYPTO_MANAGER
 261        select CRYPTO_GF128MUL
 262        help
 263          XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
 264          key size 256, 384 or 512 bits. This implementation currently
 265          can't handle a sectorsize which is not a multiple of 16 bytes.
 266
 267config CRYPTO_FPU
 268        tristate
 269        select CRYPTO_BLKCIPHER
 270        select CRYPTO_MANAGER
 271
 272comment "Hash modes"
 273
 274config CRYPTO_HMAC
 275        tristate "HMAC support"
 276        select CRYPTO_HASH
 277        select CRYPTO_MANAGER
 278        help
 279          HMAC: Keyed-Hashing for Message Authentication (RFC2104).
 280          This is required for IPSec.
 281
 282config CRYPTO_XCBC
 283        tristate "XCBC support"
 284        depends on EXPERIMENTAL
 285        select CRYPTO_HASH
 286        select CRYPTO_MANAGER
 287        help
 288          XCBC: Keyed-Hashing with encryption algorithm
 289                http://www.ietf.org/rfc/rfc3566.txt
 290                http://csrc.nist.gov/encryption/modes/proposedmodes/
 291                 xcbc-mac/xcbc-mac-spec.pdf
 292
 293config CRYPTO_VMAC
 294        tristate "VMAC support"
 295        depends on EXPERIMENTAL
 296        select CRYPTO_HASH
 297        select CRYPTO_MANAGER
 298        help
 299          VMAC is a message authentication algorithm designed for
 300          very high speed on 64-bit architectures.
 301
 302          See also:
 303          <http://fastcrypto.org/vmac>
 304
 305comment "Digest"
 306
 307config CRYPTO_CRC32C
 308        tristate "CRC32c CRC algorithm"
 309        select CRYPTO_HASH
 310        help
 311          Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
 312          by iSCSI for header and data digests and by others.
 313          See Castagnoli93.  Module will be crc32c.
 314
 315config CRYPTO_CRC32C_INTEL
 316        tristate "CRC32c INTEL hardware acceleration"
 317        depends on X86
 318        select CRYPTO_HASH
 319        help
 320          In Intel processor with SSE4.2 supported, the processor will
 321          support CRC32C implementation using hardware accelerated CRC32
 322          instruction. This option will create 'crc32c-intel' module,
 323          which will enable any routine to use the CRC32 instruction to
 324          gain performance compared with software implementation.
 325          Module will be crc32c-intel.
 326
 327config CRYPTO_GHASH
 328        tristate "GHASH digest algorithm"
 329        select CRYPTO_SHASH
 330        select CRYPTO_GF128MUL
 331        help
 332          GHASH is message digest algorithm for GCM (Galois/Counter Mode).
 333
 334config CRYPTO_MD4
 335        tristate "MD4 digest algorithm"
 336        select CRYPTO_HASH
 337        help
 338          MD4 message digest algorithm (RFC1320).
 339
 340config CRYPTO_MD5
 341        tristate "MD5 digest algorithm"
 342        select CRYPTO_HASH
 343        help
 344          MD5 message digest algorithm (RFC1321).
 345
 346config CRYPTO_MICHAEL_MIC
 347        tristate "Michael MIC keyed digest algorithm"
 348        select CRYPTO_HASH
 349        help
 350          Michael MIC is used for message integrity protection in TKIP
 351          (IEEE 802.11i). This algorithm is required for TKIP, but it
 352          should not be used for other purposes because of the weakness
 353          of the algorithm.
 354
 355config CRYPTO_RMD128
 356        tristate "RIPEMD-128 digest algorithm"
 357        select CRYPTO_HASH
 358        help
 359          RIPEMD-128 (ISO/IEC 10118-3:2004).
 360
 361          RIPEMD-128 is a 128-bit cryptographic hash function. It should only
 362          to be used as a secure replacement for RIPEMD. For other use cases
 363          RIPEMD-160 should be used.
 364
 365          Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
 366          See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
 367
 368config CRYPTO_RMD160
 369        tristate "RIPEMD-160 digest algorithm"
 370        select CRYPTO_HASH
 371        help
 372          RIPEMD-160 (ISO/IEC 10118-3:2004).
 373
 374          RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
 375          to be used as a secure replacement for the 128-bit hash functions
 376          MD4, MD5 and it's predecessor RIPEMD
 377          (not to be confused with RIPEMD-128).
 378
 379          It's speed is comparable to SHA1 and there are no known attacks
 380          against RIPEMD-160.
 381
 382          Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
 383          See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
 384
 385config CRYPTO_RMD256
 386        tristate "RIPEMD-256 digest algorithm"
 387        select CRYPTO_HASH
 388        help
 389          RIPEMD-256 is an optional extension of RIPEMD-128 with a
 390          256 bit hash. It is intended for applications that require
 391          longer hash-results, without needing a larger security level
 392          (than RIPEMD-128).
 393
 394          Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
 395          See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
 396
 397config CRYPTO_RMD320
 398        tristate "RIPEMD-320 digest algorithm"
 399        select CRYPTO_HASH
 400        help
 401          RIPEMD-320 is an optional extension of RIPEMD-160 with a
 402          320 bit hash. It is intended for applications that require
 403          longer hash-results, without needing a larger security level
 404          (than RIPEMD-160).
 405
 406          Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
 407          See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
 408
 409config CRYPTO_SHA1
 410        tristate "SHA1 digest algorithm"
 411        select CRYPTO_HASH
 412        help
 413          SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
 414
 415config CRYPTO_SHA256
 416        tristate "SHA224 and SHA256 digest algorithm"
 417        select CRYPTO_HASH
 418        help
 419          SHA256 secure hash standard (DFIPS 180-2).
 420
 421          This version of SHA implements a 256 bit hash with 128 bits of
 422          security against collision attacks.
 423
 424          This code also includes SHA-224, a 224 bit hash with 112 bits
 425          of security against collision attacks.
 426
 427config CRYPTO_SHA512
 428        tristate "SHA384 and SHA512 digest algorithms"
 429        select CRYPTO_HASH
 430        help
 431          SHA512 secure hash standard (DFIPS 180-2).
 432
 433          This version of SHA implements a 512 bit hash with 256 bits of
 434          security against collision attacks.
 435
 436          This code also includes SHA-384, a 384 bit hash with 192 bits
 437          of security against collision attacks.
 438
 439config CRYPTO_TGR192
 440        tristate "Tiger digest algorithms"
 441        select CRYPTO_HASH
 442        help
 443          Tiger hash algorithm 192, 160 and 128-bit hashes
 444
 445          Tiger is a hash function optimized for 64-bit processors while
 446          still having decent performance on 32-bit processors.
 447          Tiger was developed by Ross Anderson and Eli Biham.
 448
 449          See also:
 450          <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
 451
 452config CRYPTO_WP512
 453        tristate "Whirlpool digest algorithms"
 454        select CRYPTO_HASH
 455        help
 456          Whirlpool hash algorithm 512, 384 and 256-bit hashes
 457
 458          Whirlpool-512 is part of the NESSIE cryptographic primitives.
 459          Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
 460
 461          See also:
 462          <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
 463
 464config CRYPTO_GHASH_CLMUL_NI_INTEL
 465        tristate "GHASH digest algorithm (CLMUL-NI accelerated)"
 466        depends on (X86 || UML_X86) && 64BIT
 467        select CRYPTO_SHASH
 468        select CRYPTO_CRYPTD
 469        help
 470          GHASH is message digest algorithm for GCM (Galois/Counter Mode).
 471          The implementation is accelerated by CLMUL-NI of Intel.
 472
 473comment "Ciphers"
 474
 475config CRYPTO_AES
 476        tristate "AES cipher algorithms"
 477        select CRYPTO_ALGAPI
 478        help
 479          AES cipher algorithms (FIPS-197). AES uses the Rijndael
 480          algorithm.
 481
 482          Rijndael appears to be consistently a very good performer in
 483          both hardware and software across a wide range of computing
 484          environments regardless of its use in feedback or non-feedback
 485          modes. Its key setup time is excellent, and its key agility is
 486          good. Rijndael's very low memory requirements make it very well
 487          suited for restricted-space environments, in which it also
 488          demonstrates excellent performance. Rijndael's operations are
 489          among the easiest to defend against power and timing attacks.
 490
 491          The AES specifies three key sizes: 128, 192 and 256 bits
 492
 493          See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
 494
 495config CRYPTO_AES_586
 496        tristate "AES cipher algorithms (i586)"
 497        depends on (X86 || UML_X86) && !64BIT
 498        select CRYPTO_ALGAPI
 499        select CRYPTO_AES
 500        help
 501          AES cipher algorithms (FIPS-197). AES uses the Rijndael
 502          algorithm.
 503
 504          Rijndael appears to be consistently a very good performer in
 505          both hardware and software across a wide range of computing
 506          environments regardless of its use in feedback or non-feedback
 507          modes. Its key setup time is excellent, and its key agility is
 508          good. Rijndael's very low memory requirements make it very well
 509          suited for restricted-space environments, in which it also
 510          demonstrates excellent performance. Rijndael's operations are
 511          among the easiest to defend against power and timing attacks.
 512
 513          The AES specifies three key sizes: 128, 192 and 256 bits
 514
 515          See <http://csrc.nist.gov/encryption/aes/> for more information.
 516
 517config CRYPTO_AES_X86_64
 518        tristate "AES cipher algorithms (x86_64)"
 519        depends on (X86 || UML_X86) && 64BIT
 520        select CRYPTO_ALGAPI
 521        select CRYPTO_AES
 522        help
 523          AES cipher algorithms (FIPS-197). AES uses the Rijndael
 524          algorithm.
 525
 526          Rijndael appears to be consistently a very good performer in
 527          both hardware and software across a wide range of computing
 528          environments regardless of its use in feedback or non-feedback
 529          modes. Its key setup time is excellent, and its key agility is
 530          good. Rijndael's very low memory requirements make it very well
 531          suited for restricted-space environments, in which it also
 532          demonstrates excellent performance. Rijndael's operations are
 533          among the easiest to defend against power and timing attacks.
 534
 535          The AES specifies three key sizes: 128, 192 and 256 bits
 536
 537          See <http://csrc.nist.gov/encryption/aes/> for more information.
 538
 539config CRYPTO_AES_NI_INTEL
 540        tristate "AES cipher algorithms (AES-NI)"
 541        depends on (X86 || UML_X86)
 542        select CRYPTO_AES_X86_64 if 64BIT
 543        select CRYPTO_AES_586 if !64BIT
 544        select CRYPTO_CRYPTD
 545        select CRYPTO_ALGAPI
 546        select CRYPTO_FPU
 547        help
 548          Use Intel AES-NI instructions for AES algorithm.
 549
 550          AES cipher algorithms (FIPS-197). AES uses the Rijndael
 551          algorithm.
 552
 553          Rijndael appears to be consistently a very good performer in
 554          both hardware and software across a wide range of computing
 555          environments regardless of its use in feedback or non-feedback
 556          modes. Its key setup time is excellent, and its key agility is
 557          good. Rijndael's very low memory requirements make it very well
 558          suited for restricted-space environments, in which it also
 559          demonstrates excellent performance. Rijndael's operations are
 560          among the easiest to defend against power and timing attacks.
 561
 562          The AES specifies three key sizes: 128, 192 and 256 bits
 563
 564          See <http://csrc.nist.gov/encryption/aes/> for more information.
 565
 566          In addition to AES cipher algorithm support, the acceleration
 567          for some popular block cipher mode is supported too, including
 568          ECB, CBC, LRW, PCBC, XTS. The 64 bit version has additional
 569          acceleration for CTR.
 570
 571config CRYPTO_ANUBIS
 572        tristate "Anubis cipher algorithm"
 573        select CRYPTO_ALGAPI
 574        help
 575          Anubis cipher algorithm.
 576
 577          Anubis is a variable key length cipher which can use keys from
 578          128 bits to 320 bits in length.  It was evaluated as a entrant
 579          in the NESSIE competition.
 580
 581          See also:
 582          <https://www.cosic.esat.kuleuven.be/nessie/reports/>
 583          <http://www.larc.usp.br/~pbarreto/AnubisPage.html>
 584
 585config CRYPTO_ARC4
 586        tristate "ARC4 cipher algorithm"
 587        select CRYPTO_ALGAPI
 588        help
 589          ARC4 cipher algorithm.
 590
 591          ARC4 is a stream cipher using keys ranging from 8 bits to 2048
 592          bits in length.  This algorithm is required for driver-based
 593          WEP, but it should not be for other purposes because of the
 594          weakness of the algorithm.
 595
 596config CRYPTO_BLOWFISH
 597        tristate "Blowfish cipher algorithm"
 598        select CRYPTO_ALGAPI
 599        help
 600          Blowfish cipher algorithm, by Bruce Schneier.
 601
 602          This is a variable key length cipher which can use keys from 32
 603          bits to 448 bits in length.  It's fast, simple and specifically
 604          designed for use on "large microprocessors".
 605
 606          See also:
 607          <http://www.schneier.com/blowfish.html>
 608
 609config CRYPTO_CAMELLIA
 610        tristate "Camellia cipher algorithms"
 611        depends on CRYPTO
 612        select CRYPTO_ALGAPI
 613        help
 614          Camellia cipher algorithms module.
 615
 616          Camellia is a symmetric key block cipher developed jointly
 617          at NTT and Mitsubishi Electric Corporation.
 618
 619          The Camellia specifies three key sizes: 128, 192 and 256 bits.
 620
 621          See also:
 622          <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
 623
 624config CRYPTO_CAST5
 625        tristate "CAST5 (CAST-128) cipher algorithm"
 626        select CRYPTO_ALGAPI
 627        help
 628          The CAST5 encryption algorithm (synonymous with CAST-128) is
 629          described in RFC2144.
 630
 631config CRYPTO_CAST6
 632        tristate "CAST6 (CAST-256) cipher algorithm"
 633        select CRYPTO_ALGAPI
 634        help
 635          The CAST6 encryption algorithm (synonymous with CAST-256) is
 636          described in RFC2612.
 637
 638config CRYPTO_DES
 639        tristate "DES and Triple DES EDE cipher algorithms"
 640        select CRYPTO_ALGAPI
 641        help
 642          DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
 643
 644config CRYPTO_FCRYPT
 645        tristate "FCrypt cipher algorithm"
 646        select CRYPTO_ALGAPI
 647        select CRYPTO_BLKCIPHER
 648        help
 649          FCrypt algorithm used by RxRPC.
 650
 651config CRYPTO_KHAZAD
 652        tristate "Khazad cipher algorithm"
 653        select CRYPTO_ALGAPI
 654        help
 655          Khazad cipher algorithm.
 656
 657          Khazad was a finalist in the initial NESSIE competition.  It is
 658          an algorithm optimized for 64-bit processors with good performance
 659          on 32-bit processors.  Khazad uses an 128 bit key size.
 660
 661          See also:
 662          <http://www.larc.usp.br/~pbarreto/KhazadPage.html>
 663
 664config CRYPTO_SALSA20
 665        tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)"
 666        depends on EXPERIMENTAL
 667        select CRYPTO_BLKCIPHER
 668        help
 669          Salsa20 stream cipher algorithm.
 670
 671          Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
 672          Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
 673
 674          The Salsa20 stream cipher algorithm is designed by Daniel J.
 675          Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
 676
 677config CRYPTO_SALSA20_586
 678        tristate "Salsa20 stream cipher algorithm (i586) (EXPERIMENTAL)"
 679        depends on (X86 || UML_X86) && !64BIT
 680        depends on EXPERIMENTAL
 681        select CRYPTO_BLKCIPHER
 682        help
 683          Salsa20 stream cipher algorithm.
 684
 685          Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
 686          Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
 687
 688          The Salsa20 stream cipher algorithm is designed by Daniel J.
 689          Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
 690
 691config CRYPTO_SALSA20_X86_64
 692        tristate "Salsa20 stream cipher algorithm (x86_64) (EXPERIMENTAL)"
 693        depends on (X86 || UML_X86) && 64BIT
 694        depends on EXPERIMENTAL
 695        select CRYPTO_BLKCIPHER
 696        help
 697          Salsa20 stream cipher algorithm.
 698
 699          Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
 700          Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
 701
 702          The Salsa20 stream cipher algorithm is designed by Daniel J.
 703          Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
 704
 705config CRYPTO_SEED
 706        tristate "SEED cipher algorithm"
 707        select CRYPTO_ALGAPI
 708        help
 709          SEED cipher algorithm (RFC4269).
 710
 711          SEED is a 128-bit symmetric key block cipher that has been
 712          developed by KISA (Korea Information Security Agency) as a
 713          national standard encryption algorithm of the Republic of Korea.
 714          It is a 16 round block cipher with the key size of 128 bit.
 715
 716          See also:
 717          <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
 718
 719config CRYPTO_SERPENT
 720        tristate "Serpent cipher algorithm"
 721        select CRYPTO_ALGAPI
 722        help
 723          Serpent cipher algorithm, by Anderson, Biham & Knudsen.
 724
 725          Keys are allowed to be from 0 to 256 bits in length, in steps
 726          of 8 bits.  Also includes the 'Tnepres' algorithm, a reversed
 727          variant of Serpent for compatibility with old kerneli.org code.
 728
 729          See also:
 730          <http://www.cl.cam.ac.uk/~rja14/serpent.html>
 731
 732config CRYPTO_TEA
 733        tristate "TEA, XTEA and XETA cipher algorithms"
 734        select CRYPTO_ALGAPI
 735        help
 736          TEA cipher algorithm.
 737
 738          Tiny Encryption Algorithm is a simple cipher that uses
 739          many rounds for security.  It is very fast and uses
 740          little memory.
 741
 742          Xtendend Tiny Encryption Algorithm is a modification to
 743          the TEA algorithm to address a potential key weakness
 744          in the TEA algorithm.
 745
 746          Xtendend Encryption Tiny Algorithm is a mis-implementation
 747          of the XTEA algorithm for compatibility purposes.
 748
 749config CRYPTO_TWOFISH
 750        tristate "Twofish cipher algorithm"
 751        select CRYPTO_ALGAPI
 752        select CRYPTO_TWOFISH_COMMON
 753        help
 754          Twofish cipher algorithm.
 755
 756          Twofish was submitted as an AES (Advanced Encryption Standard)
 757          candidate cipher by researchers at CounterPane Systems.  It is a
 758          16 round block cipher supporting key sizes of 128, 192, and 256
 759          bits.
 760
 761          See also:
 762          <http://www.schneier.com/twofish.html>
 763
 764config CRYPTO_TWOFISH_COMMON
 765        tristate
 766        help
 767          Common parts of the Twofish cipher algorithm shared by the
 768          generic c and the assembler implementations.
 769
 770config CRYPTO_TWOFISH_586
 771        tristate "Twofish cipher algorithms (i586)"
 772        depends on (X86 || UML_X86) && !64BIT
 773        select CRYPTO_ALGAPI
 774        select CRYPTO_TWOFISH_COMMON
 775        help
 776          Twofish cipher algorithm.
 777
 778          Twofish was submitted as an AES (Advanced Encryption Standard)
 779          candidate cipher by researchers at CounterPane Systems.  It is a
 780          16 round block cipher supporting key sizes of 128, 192, and 256
 781          bits.
 782
 783          See also:
 784          <http://www.schneier.com/twofish.html>
 785
 786config CRYPTO_TWOFISH_X86_64
 787        tristate "Twofish cipher algorithm (x86_64)"
 788        depends on (X86 || UML_X86) && 64BIT
 789        select CRYPTO_ALGAPI
 790        select CRYPTO_TWOFISH_COMMON
 791        help
 792          Twofish cipher algorithm (x86_64).
 793
 794          Twofish was submitted as an AES (Advanced Encryption Standard)
 795          candidate cipher by researchers at CounterPane Systems.  It is a
 796          16 round block cipher supporting key sizes of 128, 192, and 256
 797          bits.
 798
 799          See also:
 800          <http://www.schneier.com/twofish.html>
 801
 802comment "Compression"
 803
 804config CRYPTO_DEFLATE
 805        tristate "Deflate compression algorithm"
 806        select CRYPTO_ALGAPI
 807        select ZLIB_INFLATE
 808        select ZLIB_DEFLATE
 809        help
 810          This is the Deflate algorithm (RFC1951), specified for use in
 811          IPSec with the IPCOMP protocol (RFC3173, RFC2394).
 812
 813          You will most probably want this if using IPSec.
 814
 815config CRYPTO_ZLIB
 816        tristate "Zlib compression algorithm"
 817        select CRYPTO_PCOMP
 818        select ZLIB_INFLATE
 819        select ZLIB_DEFLATE
 820        select NLATTR
 821        help
 822          This is the zlib algorithm.
 823
 824config CRYPTO_LZO
 825        tristate "LZO compression algorithm"
 826        select CRYPTO_ALGAPI
 827        select LZO_COMPRESS
 828        select LZO_DECOMPRESS
 829        help
 830          This is the LZO algorithm.
 831
 832comment "Random Number Generation"
 833
 834config CRYPTO_ANSI_CPRNG
 835        tristate "Pseudo Random Number Generation for Cryptographic modules"
 836        default m
 837        select CRYPTO_AES
 838        select CRYPTO_RNG
 839        help
 840          This option enables the generic pseudo random number generator
 841          for cryptographic modules.  Uses the Algorithm specified in
 842          ANSI X9.31 A.2.4. Note that this option must be enabled if
 843          CRYPTO_FIPS is selected
 844
 845config CRYPTO_USER_API
 846        tristate
 847
 848config CRYPTO_USER_API_HASH
 849        tristate "User-space interface for hash algorithms"
 850        depends on NET
 851        select CRYPTO_HASH
 852        select CRYPTO_USER_API
 853        help
 854          This option enables the user-spaces interface for hash
 855          algorithms.
 856
 857config CRYPTO_USER_API_SKCIPHER
 858        tristate "User-space interface for symmetric key cipher algorithms"
 859        depends on NET
 860        select CRYPTO_BLKCIPHER
 861        select CRYPTO_USER_API
 862        help
 863          This option enables the user-spaces interface for symmetric
 864          key cipher algorithms.
 865
 866source "drivers/crypto/Kconfig"
 867
 868endif   # if CRYPTO
 869