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