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_USER
 104        tristate "Userspace cryptographic algorithm configuration"
 105        depends on NET
 106        select CRYPTO_MANAGER
 107        help
 108          Userspace configuration for cryptographic instantiations such as
 109          cbc(aes).
 110
 111config CRYPTO_MANAGER_DISABLE_TESTS
 112        bool "Disable run-time self tests"
 113        default y
 114        depends on CRYPTO_MANAGER2
 115        help
 116          Disable run-time self tests that normally take place at
 117          algorithm registration.
 118
 119config CRYPTO_GF128MUL
 120        tristate "GF(2^128) multiplication functions"
 121        help
 122          Efficient table driven implementation of multiplications in the
 123          field GF(2^128).  This is needed by some cypher modes. This
 124          option will be selected automatically if you select such a
 125          cipher mode.  Only select this option by hand if you expect to load
 126          an external module that requires these functions.
 127
 128config CRYPTO_NULL
 129        tristate "Null algorithms"
 130        select CRYPTO_ALGAPI
 131        select CRYPTO_BLKCIPHER
 132        select CRYPTO_HASH
 133        help
 134          These are 'Null' algorithms, used by IPsec, which do nothing.
 135
 136config CRYPTO_PCRYPT
 137        tristate "Parallel crypto engine"
 138        depends on SMP
 139        select PADATA
 140        select CRYPTO_MANAGER
 141        select CRYPTO_AEAD
 142        help
 143          This converts an arbitrary crypto algorithm into a parallel
 144          algorithm that executes in kernel threads.
 145
 146config CRYPTO_WORKQUEUE
 147       tristate
 148
 149config CRYPTO_CRYPTD
 150        tristate "Software async crypto daemon"
 151        select CRYPTO_BLKCIPHER
 152        select CRYPTO_HASH
 153        select CRYPTO_MANAGER
 154        select CRYPTO_WORKQUEUE
 155        help
 156          This is a generic software asynchronous crypto daemon that
 157          converts an arbitrary synchronous software crypto algorithm
 158          into an asynchronous algorithm that executes in a kernel thread.
 159
 160config CRYPTO_AUTHENC
 161        tristate "Authenc support"
 162        select CRYPTO_AEAD
 163        select CRYPTO_BLKCIPHER
 164        select CRYPTO_MANAGER
 165        select CRYPTO_HASH
 166        help
 167          Authenc: Combined mode wrapper for IPsec.
 168          This is required for IPSec.
 169
 170config CRYPTO_TEST
 171        tristate "Testing module"
 172        depends on m
 173        select CRYPTO_MANAGER
 174        help
 175          Quick & dirty crypto test module.
 176
 177config CRYPTO_ABLK_HELPER_X86
 178        tristate
 179        depends on X86
 180        select CRYPTO_CRYPTD
 181
 182config CRYPTO_GLUE_HELPER_X86
 183        tristate
 184        depends on X86
 185        select CRYPTO_ALGAPI
 186
 187comment "Authenticated Encryption with Associated Data"
 188
 189config CRYPTO_CCM
 190        tristate "CCM support"
 191        select CRYPTO_CTR
 192        select CRYPTO_AEAD
 193        help
 194          Support for Counter with CBC MAC. Required for IPsec.
 195
 196config CRYPTO_GCM
 197        tristate "GCM/GMAC support"
 198        select CRYPTO_CTR
 199        select CRYPTO_AEAD
 200        select CRYPTO_GHASH
 201        select CRYPTO_NULL
 202        help
 203          Support for Galois/Counter Mode (GCM) and Galois Message
 204          Authentication Code (GMAC). Required for IPSec.
 205
 206config CRYPTO_SEQIV
 207        tristate "Sequence Number IV Generator"
 208        select CRYPTO_AEAD
 209        select CRYPTO_BLKCIPHER
 210        select CRYPTO_RNG
 211        help
 212          This IV generator generates an IV based on a sequence number by
 213          xoring it with a salt.  This algorithm is mainly useful for CTR
 214
 215comment "Block modes"
 216
 217config CRYPTO_CBC
 218        tristate "CBC support"
 219        select CRYPTO_BLKCIPHER
 220        select CRYPTO_MANAGER
 221        help
 222          CBC: Cipher Block Chaining mode
 223          This block cipher algorithm is required for IPSec.
 224
 225config CRYPTO_CTR
 226        tristate "CTR support"
 227        select CRYPTO_BLKCIPHER
 228        select CRYPTO_SEQIV
 229        select CRYPTO_MANAGER
 230        help
 231          CTR: Counter mode
 232          This block cipher algorithm is required for IPSec.
 233
 234config CRYPTO_CTS
 235        tristate "CTS support"
 236        select CRYPTO_BLKCIPHER
 237        help
 238          CTS: Cipher Text Stealing
 239          This is the Cipher Text Stealing mode as described by
 240          Section 8 of rfc2040 and referenced by rfc3962.
 241          (rfc3962 includes errata information in its Appendix A)
 242          This mode is required for Kerberos gss mechanism support
 243          for AES encryption.
 244
 245config CRYPTO_ECB
 246        tristate "ECB support"
 247        select CRYPTO_BLKCIPHER
 248        select CRYPTO_MANAGER
 249        help
 250          ECB: Electronic CodeBook mode
 251          This is the simplest block cipher algorithm.  It simply encrypts
 252          the input block by block.
 253
 254config CRYPTO_LRW
 255        tristate "LRW support"
 256        select CRYPTO_BLKCIPHER
 257        select CRYPTO_MANAGER
 258        select CRYPTO_GF128MUL
 259        help
 260          LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
 261          narrow block cipher mode for dm-crypt.  Use it with cipher
 262          specification string aes-lrw-benbi, the key must be 256, 320 or 384.
 263          The first 128, 192 or 256 bits in the key are used for AES and the
 264          rest is used to tie each cipher block to its logical position.
 265
 266config CRYPTO_PCBC
 267        tristate "PCBC support"
 268        select CRYPTO_BLKCIPHER
 269        select CRYPTO_MANAGER
 270        help
 271          PCBC: Propagating Cipher Block Chaining mode
 272          This block cipher algorithm is required for RxRPC.
 273
 274config CRYPTO_XTS
 275        tristate "XTS support"
 276        select CRYPTO_BLKCIPHER
 277        select CRYPTO_MANAGER
 278        select CRYPTO_GF128MUL
 279        help
 280          XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
 281          key size 256, 384 or 512 bits. This implementation currently
 282          can't handle a sectorsize which is not a multiple of 16 bytes.
 283
 284comment "Hash modes"
 285
 286config CRYPTO_CMAC
 287        tristate "CMAC support"
 288        select CRYPTO_HASH
 289        select CRYPTO_MANAGER
 290        help
 291          Cipher-based Message Authentication Code (CMAC) specified by
 292          The National Institute of Standards and Technology (NIST).
 293
 294          https://tools.ietf.org/html/rfc4493
 295          http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
 296
 297config CRYPTO_HMAC
 298        tristate "HMAC support"
 299        select CRYPTO_HASH
 300        select CRYPTO_MANAGER
 301        help
 302          HMAC: Keyed-Hashing for Message Authentication (RFC2104).
 303          This is required for IPSec.
 304
 305config CRYPTO_XCBC
 306        tristate "XCBC support"
 307        select CRYPTO_HASH
 308        select CRYPTO_MANAGER
 309        help
 310          XCBC: Keyed-Hashing with encryption algorithm
 311                http://www.ietf.org/rfc/rfc3566.txt
 312                http://csrc.nist.gov/encryption/modes/proposedmodes/
 313                 xcbc-mac/xcbc-mac-spec.pdf
 314
 315config CRYPTO_VMAC
 316        tristate "VMAC support"
 317        select CRYPTO_HASH
 318        select CRYPTO_MANAGER
 319        help
 320          VMAC is a message authentication algorithm designed for
 321          very high speed on 64-bit architectures.
 322
 323          See also:
 324          <http://fastcrypto.org/vmac>
 325
 326comment "Digest"
 327
 328config CRYPTO_CRC32C
 329        tristate "CRC32c CRC algorithm"
 330        select CRYPTO_HASH
 331        select CRC32
 332        help
 333          Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
 334          by iSCSI for header and data digests and by others.
 335          See Castagnoli93.  Module will be crc32c.
 336
 337config CRYPTO_CRC32C_INTEL
 338        tristate "CRC32c INTEL hardware acceleration"
 339        depends on X86
 340        select CRYPTO_HASH
 341        help
 342          In Intel processor with SSE4.2 supported, the processor will
 343          support CRC32C implementation using hardware accelerated CRC32
 344          instruction. This option will create 'crc32c-intel' module,
 345          which will enable any routine to use the CRC32 instruction to
 346          gain performance compared with software implementation.
 347          Module will be crc32c-intel.
 348
 349config CRYPTO_CRC32C_SPARC64
 350        tristate "CRC32c CRC algorithm (SPARC64)"
 351        depends on SPARC64
 352        select CRYPTO_HASH
 353        select CRC32
 354        help
 355          CRC32c CRC algorithm implemented using sparc64 crypto instructions,
 356          when available.
 357
 358config CRYPTO_CRC32
 359        tristate "CRC32 CRC algorithm"
 360        select CRYPTO_HASH
 361        select CRC32
 362        help
 363          CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
 364          Shash crypto api wrappers to crc32_le function.
 365
 366config CRYPTO_CRC32_PCLMUL
 367        tristate "CRC32 PCLMULQDQ hardware acceleration"
 368        depends on X86
 369        select CRYPTO_HASH
 370        select CRC32
 371        help
 372          From Intel Westmere and AMD Bulldozer processor with SSE4.2
 373          and PCLMULQDQ supported, the processor will support
 374          CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ
 375          instruction. This option will create 'crc32-plcmul' module,
 376          which will enable any routine to use the CRC-32-IEEE 802.3 checksum
 377          and gain better performance as compared with the table implementation.
 378
 379config CRYPTO_GHASH
 380        tristate "GHASH digest algorithm"
 381        select CRYPTO_GF128MUL
 382        help
 383          GHASH is message digest algorithm for GCM (Galois/Counter Mode).
 384
 385config CRYPTO_MD4
 386        tristate "MD4 digest algorithm"
 387        select CRYPTO_HASH
 388        help
 389          MD4 message digest algorithm (RFC1320).
 390
 391config CRYPTO_MD5
 392        tristate "MD5 digest algorithm"
 393        select CRYPTO_HASH
 394        help
 395          MD5 message digest algorithm (RFC1321).
 396
 397config CRYPTO_MD5_SPARC64
 398        tristate "MD5 digest algorithm (SPARC64)"
 399        depends on SPARC64
 400        select CRYPTO_MD5
 401        select CRYPTO_HASH
 402        help
 403          MD5 message digest algorithm (RFC1321) implemented
 404          using sparc64 crypto instructions, when available.
 405
 406config CRYPTO_MICHAEL_MIC
 407        tristate "Michael MIC keyed digest algorithm"
 408        select CRYPTO_HASH
 409        help
 410          Michael MIC is used for message integrity protection in TKIP
 411          (IEEE 802.11i). This algorithm is required for TKIP, but it
 412          should not be used for other purposes because of the weakness
 413          of the algorithm.
 414
 415config CRYPTO_RMD128
 416        tristate "RIPEMD-128 digest algorithm"
 417        select CRYPTO_HASH
 418        help
 419          RIPEMD-128 (ISO/IEC 10118-3:2004).
 420
 421          RIPEMD-128 is a 128-bit cryptographic hash function. It should only
 422          be used as a secure replacement for RIPEMD. For other use cases,
 423          RIPEMD-160 should be used.
 424
 425          Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
 426          See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
 427
 428config CRYPTO_RMD160
 429        tristate "RIPEMD-160 digest algorithm"
 430        select CRYPTO_HASH
 431        help
 432          RIPEMD-160 (ISO/IEC 10118-3:2004).
 433
 434          RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
 435          to be used as a secure replacement for the 128-bit hash functions
 436          MD4, MD5 and it's predecessor RIPEMD
 437          (not to be confused with RIPEMD-128).
 438
 439          It's speed is comparable to SHA1 and there are no known attacks
 440          against RIPEMD-160.
 441
 442          Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
 443          See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
 444
 445config CRYPTO_RMD256
 446        tristate "RIPEMD-256 digest algorithm"
 447        select CRYPTO_HASH
 448        help
 449          RIPEMD-256 is an optional extension of RIPEMD-128 with a
 450          256 bit hash. It is intended for applications that require
 451          longer hash-results, without needing a larger security level
 452          (than RIPEMD-128).
 453
 454          Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
 455          See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
 456
 457config CRYPTO_RMD320
 458        tristate "RIPEMD-320 digest algorithm"
 459        select CRYPTO_HASH
 460        help
 461          RIPEMD-320 is an optional extension of RIPEMD-160 with a
 462          320 bit hash. It is intended for applications that require
 463          longer hash-results, without needing a larger security level
 464          (than RIPEMD-160).
 465
 466          Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
 467          See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
 468
 469config CRYPTO_SHA1
 470        tristate "SHA1 digest algorithm"
 471        select CRYPTO_HASH
 472        help
 473          SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
 474
 475config CRYPTO_SHA1_SSSE3
 476        tristate "SHA1 digest algorithm (SSSE3/AVX)"
 477        depends on X86 && 64BIT
 478        select CRYPTO_SHA1
 479        select CRYPTO_HASH
 480        help
 481          SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
 482          using Supplemental SSE3 (SSSE3) instructions or Advanced Vector
 483          Extensions (AVX), when available.
 484
 485config CRYPTO_SHA256_SSSE3
 486        tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2)"
 487        depends on X86 && 64BIT
 488        select CRYPTO_SHA256
 489        select CRYPTO_HASH
 490        help
 491          SHA-256 secure hash standard (DFIPS 180-2) implemented
 492          using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
 493          Extensions version 1 (AVX1), or Advanced Vector Extensions
 494          version 2 (AVX2) instructions, when available.
 495
 496config CRYPTO_SHA512_SSSE3
 497        tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)"
 498        depends on X86 && 64BIT
 499        select CRYPTO_SHA512
 500        select CRYPTO_HASH
 501        help
 502          SHA-512 secure hash standard (DFIPS 180-2) implemented
 503          using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
 504          Extensions version 1 (AVX1), or Advanced Vector Extensions
 505          version 2 (AVX2) instructions, when available.
 506
 507config CRYPTO_SHA1_SPARC64
 508        tristate "SHA1 digest algorithm (SPARC64)"
 509        depends on SPARC64
 510        select CRYPTO_SHA1
 511        select CRYPTO_HASH
 512        help
 513          SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
 514          using sparc64 crypto instructions, when available.
 515
 516config CRYPTO_SHA1_ARM
 517        tristate "SHA1 digest algorithm (ARM-asm)"
 518        depends on ARM
 519        select CRYPTO_SHA1
 520        select CRYPTO_HASH
 521        help
 522          SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
 523          using optimized ARM assembler.
 524
 525config CRYPTO_SHA1_PPC
 526        tristate "SHA1 digest algorithm (powerpc)"
 527        depends on PPC
 528        help
 529          This is the powerpc hardware accelerated implementation of the
 530          SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
 531
 532config CRYPTO_SHA256
 533        tristate "SHA224 and SHA256 digest algorithm"
 534        select CRYPTO_HASH
 535        help
 536          SHA256 secure hash standard (DFIPS 180-2).
 537
 538          This version of SHA implements a 256 bit hash with 128 bits of
 539          security against collision attacks.
 540
 541          This code also includes SHA-224, a 224 bit hash with 112 bits
 542          of security against collision attacks.
 543
 544config CRYPTO_SHA256_SPARC64
 545        tristate "SHA224 and SHA256 digest algorithm (SPARC64)"
 546        depends on SPARC64
 547        select CRYPTO_SHA256
 548        select CRYPTO_HASH
 549        help
 550          SHA-256 secure hash standard (DFIPS 180-2) implemented
 551          using sparc64 crypto instructions, when available.
 552
 553config CRYPTO_SHA512
 554        tristate "SHA384 and SHA512 digest algorithms"
 555        select CRYPTO_HASH
 556        help
 557          SHA512 secure hash standard (DFIPS 180-2).
 558
 559          This version of SHA implements a 512 bit hash with 256 bits of
 560          security against collision attacks.
 561
 562          This code also includes SHA-384, a 384 bit hash with 192 bits
 563          of security against collision attacks.
 564
 565config CRYPTO_SHA512_SPARC64
 566        tristate "SHA384 and SHA512 digest algorithm (SPARC64)"
 567        depends on SPARC64
 568        select CRYPTO_SHA512
 569        select CRYPTO_HASH
 570        help
 571          SHA-512 secure hash standard (DFIPS 180-2) implemented
 572          using sparc64 crypto instructions, when available.
 573
 574config CRYPTO_TGR192
 575        tristate "Tiger digest algorithms"
 576        select CRYPTO_HASH
 577        help
 578          Tiger hash algorithm 192, 160 and 128-bit hashes
 579
 580          Tiger is a hash function optimized for 64-bit processors while
 581          still having decent performance on 32-bit processors.
 582          Tiger was developed by Ross Anderson and Eli Biham.
 583
 584          See also:
 585          <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
 586
 587config CRYPTO_WP512
 588        tristate "Whirlpool digest algorithms"
 589        select CRYPTO_HASH
 590        help
 591          Whirlpool hash algorithm 512, 384 and 256-bit hashes
 592
 593          Whirlpool-512 is part of the NESSIE cryptographic primitives.
 594          Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
 595
 596          See also:
 597          <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
 598
 599config CRYPTO_GHASH_CLMUL_NI_INTEL
 600        tristate "GHASH digest algorithm (CLMUL-NI accelerated)"
 601        depends on X86 && 64BIT
 602        select CRYPTO_CRYPTD
 603        help
 604          GHASH is message digest algorithm for GCM (Galois/Counter Mode).
 605          The implementation is accelerated by CLMUL-NI of Intel.
 606
 607comment "Ciphers"
 608
 609config CRYPTO_AES
 610        tristate "AES cipher algorithms"
 611        select CRYPTO_ALGAPI
 612        help
 613          AES cipher algorithms (FIPS-197). AES uses the Rijndael
 614          algorithm.
 615
 616          Rijndael appears to be consistently a very good performer in
 617          both hardware and software across a wide range of computing
 618          environments regardless of its use in feedback or non-feedback
 619          modes. Its key setup time is excellent, and its key agility is
 620          good. Rijndael's very low memory requirements make it very well
 621          suited for restricted-space environments, in which it also
 622          demonstrates excellent performance. Rijndael's operations are
 623          among the easiest to defend against power and timing attacks.
 624
 625          The AES specifies three key sizes: 128, 192 and 256 bits
 626
 627          See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
 628
 629config CRYPTO_AES_586
 630        tristate "AES cipher algorithms (i586)"
 631        depends on (X86 || UML_X86) && !64BIT
 632        select CRYPTO_ALGAPI
 633        select CRYPTO_AES
 634        help
 635          AES cipher algorithms (FIPS-197). AES uses the Rijndael
 636          algorithm.
 637
 638          Rijndael appears to be consistently a very good performer in
 639          both hardware and software across a wide range of computing
 640          environments regardless of its use in feedback or non-feedback
 641          modes. Its key setup time is excellent, and its key agility is
 642          good. Rijndael's very low memory requirements make it very well
 643          suited for restricted-space environments, in which it also
 644          demonstrates excellent performance. Rijndael's operations are
 645          among the easiest to defend against power and timing attacks.
 646
 647          The AES specifies three key sizes: 128, 192 and 256 bits
 648
 649          See <http://csrc.nist.gov/encryption/aes/> for more information.
 650
 651config CRYPTO_AES_X86_64
 652        tristate "AES cipher algorithms (x86_64)"
 653        depends on (X86 || UML_X86) && 64BIT
 654        select CRYPTO_ALGAPI
 655        select CRYPTO_AES
 656        help
 657          AES cipher algorithms (FIPS-197). AES uses the Rijndael
 658          algorithm.
 659
 660          Rijndael appears to be consistently a very good performer in
 661          both hardware and software across a wide range of computing
 662          environments regardless of its use in feedback or non-feedback
 663          modes. Its key setup time is excellent, and its key agility is
 664          good. Rijndael's very low memory requirements make it very well
 665          suited for restricted-space environments, in which it also
 666          demonstrates excellent performance. Rijndael's operations are
 667          among the easiest to defend against power and timing attacks.
 668
 669          The AES specifies three key sizes: 128, 192 and 256 bits
 670
 671          See <http://csrc.nist.gov/encryption/aes/> for more information.
 672
 673config CRYPTO_AES_NI_INTEL
 674        tristate "AES cipher algorithms (AES-NI)"
 675        depends on X86
 676        select CRYPTO_AES_X86_64 if 64BIT
 677        select CRYPTO_AES_586 if !64BIT
 678        select CRYPTO_CRYPTD
 679        select CRYPTO_ABLK_HELPER_X86
 680        select CRYPTO_ALGAPI
 681        select CRYPTO_GLUE_HELPER_X86 if 64BIT
 682        select CRYPTO_LRW
 683        select CRYPTO_XTS
 684        help
 685          Use Intel AES-NI instructions for AES algorithm.
 686
 687          AES cipher algorithms (FIPS-197). AES uses the Rijndael
 688          algorithm.
 689
 690          Rijndael appears to be consistently a very good performer in
 691          both hardware and software across a wide range of computing
 692          environments regardless of its use in feedback or non-feedback
 693          modes. Its key setup time is excellent, and its key agility is
 694          good. Rijndael's very low memory requirements make it very well
 695          suited for restricted-space environments, in which it also
 696          demonstrates excellent performance. Rijndael's operations are
 697          among the easiest to defend against power and timing attacks.
 698
 699          The AES specifies three key sizes: 128, 192 and 256 bits
 700
 701          See <http://csrc.nist.gov/encryption/aes/> for more information.
 702
 703          In addition to AES cipher algorithm support, the acceleration
 704          for some popular block cipher mode is supported too, including
 705          ECB, CBC, LRW, PCBC, XTS. The 64 bit version has additional
 706          acceleration for CTR.
 707
 708config CRYPTO_AES_SPARC64
 709        tristate "AES cipher algorithms (SPARC64)"
 710        depends on SPARC64
 711        select CRYPTO_CRYPTD
 712        select CRYPTO_ALGAPI
 713        help
 714          Use SPARC64 crypto opcodes for AES algorithm.
 715
 716          AES cipher algorithms (FIPS-197). AES uses the Rijndael
 717          algorithm.
 718
 719          Rijndael appears to be consistently a very good performer in
 720          both hardware and software across a wide range of computing
 721          environments regardless of its use in feedback or non-feedback
 722          modes. Its key setup time is excellent, and its key agility is
 723          good. Rijndael's very low memory requirements make it very well
 724          suited for restricted-space environments, in which it also
 725          demonstrates excellent performance. Rijndael's operations are
 726          among the easiest to defend against power and timing attacks.
 727
 728          The AES specifies three key sizes: 128, 192 and 256 bits
 729
 730          See <http://csrc.nist.gov/encryption/aes/> for more information.
 731
 732          In addition to AES cipher algorithm support, the acceleration
 733          for some popular block cipher mode is supported too, including
 734          ECB and CBC.
 735
 736config CRYPTO_AES_ARM
 737        tristate "AES cipher algorithms (ARM-asm)"
 738        depends on ARM
 739        select CRYPTO_ALGAPI
 740        select CRYPTO_AES
 741        help
 742          Use optimized AES assembler routines for ARM platforms.
 743
 744          AES cipher algorithms (FIPS-197). AES uses the Rijndael
 745          algorithm.
 746
 747          Rijndael appears to be consistently a very good performer in
 748          both hardware and software across a wide range of computing
 749          environments regardless of its use in feedback or non-feedback
 750          modes. Its key setup time is excellent, and its key agility is
 751          good. Rijndael's very low memory requirements make it very well
 752          suited for restricted-space environments, in which it also
 753          demonstrates excellent performance. Rijndael's operations are
 754          among the easiest to defend against power and timing attacks.
 755
 756          The AES specifies three key sizes: 128, 192 and 256 bits
 757
 758          See <http://csrc.nist.gov/encryption/aes/> for more information.
 759
 760config CRYPTO_ANUBIS
 761        tristate "Anubis cipher algorithm"
 762        select CRYPTO_ALGAPI
 763        help
 764          Anubis cipher algorithm.
 765
 766          Anubis is a variable key length cipher which can use keys from
 767          128 bits to 320 bits in length.  It was evaluated as a entrant
 768          in the NESSIE competition.
 769
 770          See also:
 771          <https://www.cosic.esat.kuleuven.be/nessie/reports/>
 772          <http://www.larc.usp.br/~pbarreto/AnubisPage.html>
 773
 774config CRYPTO_ARC4
 775        tristate "ARC4 cipher algorithm"
 776        select CRYPTO_BLKCIPHER
 777        help
 778          ARC4 cipher algorithm.
 779
 780          ARC4 is a stream cipher using keys ranging from 8 bits to 2048
 781          bits in length.  This algorithm is required for driver-based
 782          WEP, but it should not be for other purposes because of the
 783          weakness of the algorithm.
 784
 785config CRYPTO_BLOWFISH
 786        tristate "Blowfish cipher algorithm"
 787        select CRYPTO_ALGAPI
 788        select CRYPTO_BLOWFISH_COMMON
 789        help
 790          Blowfish cipher algorithm, by Bruce Schneier.
 791
 792          This is a variable key length cipher which can use keys from 32
 793          bits to 448 bits in length.  It's fast, simple and specifically
 794          designed for use on "large microprocessors".
 795
 796          See also:
 797          <http://www.schneier.com/blowfish.html>
 798
 799config CRYPTO_BLOWFISH_COMMON
 800        tristate
 801        help
 802          Common parts of the Blowfish cipher algorithm shared by the
 803          generic c and the assembler implementations.
 804
 805          See also:
 806          <http://www.schneier.com/blowfish.html>
 807
 808config CRYPTO_BLOWFISH_X86_64
 809        tristate "Blowfish cipher algorithm (x86_64)"
 810        depends on X86 && 64BIT
 811        select CRYPTO_ALGAPI
 812        select CRYPTO_BLOWFISH_COMMON
 813        help
 814          Blowfish cipher algorithm (x86_64), by Bruce Schneier.
 815
 816          This is a variable key length cipher which can use keys from 32
 817          bits to 448 bits in length.  It's fast, simple and specifically
 818          designed for use on "large microprocessors".
 819
 820          See also:
 821          <http://www.schneier.com/blowfish.html>
 822
 823config CRYPTO_BLOWFISH_AVX2_X86_64
 824        tristate "Blowfish cipher algorithm (x86_64/AVX2)"
 825        depends on X86 && 64BIT
 826        depends on BROKEN
 827        select CRYPTO_ALGAPI
 828        select CRYPTO_CRYPTD
 829        select CRYPTO_ABLK_HELPER_X86
 830        select CRYPTO_BLOWFISH_COMMON
 831        select CRYPTO_BLOWFISH_X86_64
 832        help
 833          Blowfish cipher algorithm (x86_64/AVX2), by Bruce Schneier.
 834
 835          This is a variable key length cipher which can use keys from 32
 836          bits to 448 bits in length.  It's fast, simple and specifically
 837          designed for use on "large microprocessors".
 838
 839          See also:
 840          <http://www.schneier.com/blowfish.html>
 841
 842config CRYPTO_CAMELLIA
 843        tristate "Camellia cipher algorithms"
 844        depends on CRYPTO
 845        select CRYPTO_ALGAPI
 846        help
 847          Camellia cipher algorithms module.
 848
 849          Camellia is a symmetric key block cipher developed jointly
 850          at NTT and Mitsubishi Electric Corporation.
 851
 852          The Camellia specifies three key sizes: 128, 192 and 256 bits.
 853
 854          See also:
 855          <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
 856
 857config CRYPTO_CAMELLIA_X86_64
 858        tristate "Camellia cipher algorithm (x86_64)"
 859        depends on X86 && 64BIT
 860        depends on CRYPTO
 861        select CRYPTO_ALGAPI
 862        select CRYPTO_GLUE_HELPER_X86
 863        select CRYPTO_LRW
 864        select CRYPTO_XTS
 865        help
 866          Camellia cipher algorithm module (x86_64).
 867
 868          Camellia is a symmetric key block cipher developed jointly
 869          at NTT and Mitsubishi Electric Corporation.
 870
 871          The Camellia specifies three key sizes: 128, 192 and 256 bits.
 872
 873          See also:
 874          <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
 875
 876config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
 877        tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)"
 878        depends on X86 && 64BIT
 879        depends on CRYPTO
 880        select CRYPTO_ALGAPI
 881        select CRYPTO_CRYPTD
 882        select CRYPTO_ABLK_HELPER_X86
 883        select CRYPTO_GLUE_HELPER_X86
 884        select CRYPTO_CAMELLIA_X86_64
 885        select CRYPTO_LRW
 886        select CRYPTO_XTS
 887        help
 888          Camellia cipher algorithm module (x86_64/AES-NI/AVX).
 889
 890          Camellia is a symmetric key block cipher developed jointly
 891          at NTT and Mitsubishi Electric Corporation.
 892
 893          The Camellia specifies three key sizes: 128, 192 and 256 bits.
 894
 895          See also:
 896          <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
 897
 898config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
 899        tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)"
 900        depends on X86 && 64BIT
 901        depends on CRYPTO
 902        select CRYPTO_ALGAPI
 903        select CRYPTO_CRYPTD
 904        select CRYPTO_ABLK_HELPER_X86
 905        select CRYPTO_GLUE_HELPER_X86
 906        select CRYPTO_CAMELLIA_X86_64
 907        select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
 908        select CRYPTO_LRW
 909        select CRYPTO_XTS
 910        help
 911          Camellia cipher algorithm module (x86_64/AES-NI/AVX2).
 912
 913          Camellia is a symmetric key block cipher developed jointly
 914          at NTT and Mitsubishi Electric Corporation.
 915
 916          The Camellia specifies three key sizes: 128, 192 and 256 bits.
 917
 918          See also:
 919          <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
 920
 921config CRYPTO_CAMELLIA_SPARC64
 922        tristate "Camellia cipher algorithm (SPARC64)"
 923        depends on SPARC64
 924        depends on CRYPTO
 925        select CRYPTO_ALGAPI
 926        help
 927          Camellia cipher algorithm module (SPARC64).
 928
 929          Camellia is a symmetric key block cipher developed jointly
 930          at NTT and Mitsubishi Electric Corporation.
 931
 932          The Camellia specifies three key sizes: 128, 192 and 256 bits.
 933
 934          See also:
 935          <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
 936
 937config CRYPTO_CAST_COMMON
 938        tristate
 939        help
 940          Common parts of the CAST cipher algorithms shared by the
 941          generic c and the assembler implementations.
 942
 943config CRYPTO_CAST5
 944        tristate "CAST5 (CAST-128) cipher algorithm"
 945        select CRYPTO_ALGAPI
 946        select CRYPTO_CAST_COMMON
 947        help
 948          The CAST5 encryption algorithm (synonymous with CAST-128) is
 949          described in RFC2144.
 950
 951config CRYPTO_CAST5_AVX_X86_64
 952        tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)"
 953        depends on X86 && 64BIT
 954        select CRYPTO_ALGAPI
 955        select CRYPTO_CRYPTD
 956        select CRYPTO_ABLK_HELPER_X86
 957        select CRYPTO_CAST_COMMON
 958        select CRYPTO_CAST5
 959        help
 960          The CAST5 encryption algorithm (synonymous with CAST-128) is
 961          described in RFC2144.
 962
 963          This module provides the Cast5 cipher algorithm that processes
 964          sixteen blocks parallel using the AVX instruction set.
 965
 966config CRYPTO_CAST6
 967        tristate "CAST6 (CAST-256) cipher algorithm"
 968        select CRYPTO_ALGAPI
 969        select CRYPTO_CAST_COMMON
 970        help
 971          The CAST6 encryption algorithm (synonymous with CAST-256) is
 972          described in RFC2612.
 973
 974config CRYPTO_CAST6_AVX_X86_64
 975        tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)"
 976        depends on X86 && 64BIT
 977        select CRYPTO_ALGAPI
 978        select CRYPTO_CRYPTD
 979        select CRYPTO_ABLK_HELPER_X86
 980        select CRYPTO_GLUE_HELPER_X86
 981        select CRYPTO_CAST_COMMON
 982        select CRYPTO_CAST6
 983        select CRYPTO_LRW
 984        select CRYPTO_XTS
 985        help
 986          The CAST6 encryption algorithm (synonymous with CAST-256) is
 987          described in RFC2612.
 988
 989          This module provides the Cast6 cipher algorithm that processes
 990          eight blocks parallel using the AVX instruction set.
 991
 992config CRYPTO_DES
 993        tristate "DES and Triple DES EDE cipher algorithms"
 994        select CRYPTO_ALGAPI
 995        help
 996          DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
 997
 998config CRYPTO_DES_SPARC64
 999        tristate "DES and Triple DES EDE cipher algorithms (SPARC64)"
1000        depends on SPARC64
1001        select CRYPTO_ALGAPI
1002        select CRYPTO_DES
1003        help
1004          DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3),
1005          optimized using SPARC64 crypto opcodes.
1006
1007config CRYPTO_FCRYPT
1008        tristate "FCrypt cipher algorithm"
1009        select CRYPTO_ALGAPI
1010        select CRYPTO_BLKCIPHER
1011        help
1012          FCrypt algorithm used by RxRPC.
1013
1014config CRYPTO_KHAZAD
1015        tristate "Khazad cipher algorithm"
1016        select CRYPTO_ALGAPI
1017        help
1018          Khazad cipher algorithm.
1019
1020          Khazad was a finalist in the initial NESSIE competition.  It is
1021          an algorithm optimized for 64-bit processors with good performance
1022          on 32-bit processors.  Khazad uses an 128 bit key size.
1023
1024          See also:
1025          <http://www.larc.usp.br/~pbarreto/KhazadPage.html>
1026
1027config CRYPTO_SALSA20
1028        tristate "Salsa20 stream cipher algorithm"
1029        select CRYPTO_BLKCIPHER
1030        help
1031          Salsa20 stream cipher algorithm.
1032
1033          Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1034          Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1035
1036          The Salsa20 stream cipher algorithm is designed by Daniel J.
1037          Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1038
1039config CRYPTO_SALSA20_586
1040        tristate "Salsa20 stream cipher algorithm (i586)"
1041        depends on (X86 || UML_X86) && !64BIT
1042        select CRYPTO_BLKCIPHER
1043        help
1044          Salsa20 stream cipher algorithm.
1045
1046          Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1047          Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1048
1049          The Salsa20 stream cipher algorithm is designed by Daniel J.
1050          Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1051
1052config CRYPTO_SALSA20_X86_64
1053        tristate "Salsa20 stream cipher algorithm (x86_64)"
1054        depends on (X86 || UML_X86) && 64BIT
1055        select CRYPTO_BLKCIPHER
1056        help
1057          Salsa20 stream cipher algorithm.
1058
1059          Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1060          Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1061
1062          The Salsa20 stream cipher algorithm is designed by Daniel J.
1063          Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1064
1065config CRYPTO_SEED
1066        tristate "SEED cipher algorithm"
1067        select CRYPTO_ALGAPI
1068        help
1069          SEED cipher algorithm (RFC4269).
1070
1071          SEED is a 128-bit symmetric key block cipher that has been
1072          developed by KISA (Korea Information Security Agency) as a
1073          national standard encryption algorithm of the Republic of Korea.
1074          It is a 16 round block cipher with the key size of 128 bit.
1075
1076          See also:
1077          <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
1078
1079config CRYPTO_SERPENT
1080        tristate "Serpent cipher algorithm"
1081        select CRYPTO_ALGAPI
1082        help
1083          Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1084
1085          Keys are allowed to be from 0 to 256 bits in length, in steps
1086          of 8 bits.  Also includes the 'Tnepres' algorithm, a reversed
1087          variant of Serpent for compatibility with old kerneli.org code.
1088
1089          See also:
1090          <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1091
1092config CRYPTO_SERPENT_SSE2_X86_64
1093        tristate "Serpent cipher algorithm (x86_64/SSE2)"
1094        depends on X86 && 64BIT
1095        select CRYPTO_ALGAPI
1096        select CRYPTO_CRYPTD
1097        select CRYPTO_ABLK_HELPER_X86
1098        select CRYPTO_GLUE_HELPER_X86
1099        select CRYPTO_SERPENT
1100        select CRYPTO_LRW
1101        select CRYPTO_XTS
1102        help
1103          Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1104
1105          Keys are allowed to be from 0 to 256 bits in length, in steps
1106          of 8 bits.
1107
1108          This module provides Serpent cipher algorithm that processes eigth
1109          blocks parallel using SSE2 instruction set.
1110
1111          See also:
1112          <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1113
1114config CRYPTO_SERPENT_SSE2_586
1115        tristate "Serpent cipher algorithm (i586/SSE2)"
1116        depends on X86 && !64BIT
1117        select CRYPTO_ALGAPI
1118        select CRYPTO_CRYPTD
1119        select CRYPTO_ABLK_HELPER_X86
1120        select CRYPTO_GLUE_HELPER_X86
1121        select CRYPTO_SERPENT
1122        select CRYPTO_LRW
1123        select CRYPTO_XTS
1124        help
1125          Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1126
1127          Keys are allowed to be from 0 to 256 bits in length, in steps
1128          of 8 bits.
1129
1130          This module provides Serpent cipher algorithm that processes four
1131          blocks parallel using SSE2 instruction set.
1132
1133          See also:
1134          <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1135
1136config CRYPTO_SERPENT_AVX_X86_64
1137        tristate "Serpent cipher algorithm (x86_64/AVX)"
1138        depends on X86 && 64BIT
1139        select CRYPTO_ALGAPI
1140        select CRYPTO_CRYPTD
1141        select CRYPTO_ABLK_HELPER_X86
1142        select CRYPTO_GLUE_HELPER_X86
1143        select CRYPTO_SERPENT
1144        select CRYPTO_LRW
1145        select CRYPTO_XTS
1146        help
1147          Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1148
1149          Keys are allowed to be from 0 to 256 bits in length, in steps
1150          of 8 bits.
1151
1152          This module provides the Serpent cipher algorithm that processes
1153          eight blocks parallel using the AVX instruction set.
1154
1155          See also:
1156          <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1157
1158config CRYPTO_SERPENT_AVX2_X86_64
1159        tristate "Serpent cipher algorithm (x86_64/AVX2)"
1160        depends on X86 && 64BIT
1161        select CRYPTO_ALGAPI
1162        select CRYPTO_CRYPTD
1163        select CRYPTO_ABLK_HELPER_X86
1164        select CRYPTO_GLUE_HELPER_X86
1165        select CRYPTO_SERPENT
1166        select CRYPTO_SERPENT_AVX_X86_64
1167        select CRYPTO_LRW
1168        select CRYPTO_XTS
1169        help
1170          Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1171
1172          Keys are allowed to be from 0 to 256 bits in length, in steps
1173          of 8 bits.
1174
1175          This module provides Serpent cipher algorithm that processes 16
1176          blocks parallel using AVX2 instruction set.
1177
1178          See also:
1179          <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1180
1181config CRYPTO_TEA
1182        tristate "TEA, XTEA and XETA cipher algorithms"
1183        select CRYPTO_ALGAPI
1184        help
1185          TEA cipher algorithm.
1186
1187          Tiny Encryption Algorithm is a simple cipher that uses
1188          many rounds for security.  It is very fast and uses
1189          little memory.
1190
1191          Xtendend Tiny Encryption Algorithm is a modification to
1192          the TEA algorithm to address a potential key weakness
1193          in the TEA algorithm.
1194
1195          Xtendend Encryption Tiny Algorithm is a mis-implementation
1196          of the XTEA algorithm for compatibility purposes.
1197
1198config CRYPTO_TWOFISH
1199        tristate "Twofish cipher algorithm"
1200        select CRYPTO_ALGAPI
1201        select CRYPTO_TWOFISH_COMMON
1202        help
1203          Twofish cipher algorithm.
1204
1205          Twofish was submitted as an AES (Advanced Encryption Standard)
1206          candidate cipher by researchers at CounterPane Systems.  It is a
1207          16 round block cipher supporting key sizes of 128, 192, and 256
1208          bits.
1209
1210          See also:
1211          <http://www.schneier.com/twofish.html>
1212
1213config CRYPTO_TWOFISH_COMMON
1214        tristate
1215        help
1216          Common parts of the Twofish cipher algorithm shared by the
1217          generic c and the assembler implementations.
1218
1219config CRYPTO_TWOFISH_586
1220        tristate "Twofish cipher algorithms (i586)"
1221        depends on (X86 || UML_X86) && !64BIT
1222        select CRYPTO_ALGAPI
1223        select CRYPTO_TWOFISH_COMMON
1224        help
1225          Twofish cipher algorithm.
1226
1227          Twofish was submitted as an AES (Advanced Encryption Standard)
1228          candidate cipher by researchers at CounterPane Systems.  It is a
1229          16 round block cipher supporting key sizes of 128, 192, and 256
1230          bits.
1231
1232          See also:
1233          <http://www.schneier.com/twofish.html>
1234
1235config CRYPTO_TWOFISH_X86_64
1236        tristate "Twofish cipher algorithm (x86_64)"
1237        depends on (X86 || UML_X86) && 64BIT
1238        select CRYPTO_ALGAPI
1239        select CRYPTO_TWOFISH_COMMON
1240        help
1241          Twofish cipher algorithm (x86_64).
1242
1243          Twofish was submitted as an AES (Advanced Encryption Standard)
1244          candidate cipher by researchers at CounterPane Systems.  It is a
1245          16 round block cipher supporting key sizes of 128, 192, and 256
1246          bits.
1247
1248          See also:
1249          <http://www.schneier.com/twofish.html>
1250
1251config CRYPTO_TWOFISH_X86_64_3WAY
1252        tristate "Twofish cipher algorithm (x86_64, 3-way parallel)"
1253        depends on X86 && 64BIT
1254        select CRYPTO_ALGAPI
1255        select CRYPTO_TWOFISH_COMMON
1256        select CRYPTO_TWOFISH_X86_64
1257        select CRYPTO_GLUE_HELPER_X86
1258        select CRYPTO_LRW
1259        select CRYPTO_XTS
1260        help
1261          Twofish cipher algorithm (x86_64, 3-way parallel).
1262
1263          Twofish was submitted as an AES (Advanced Encryption Standard)
1264          candidate cipher by researchers at CounterPane Systems.  It is a
1265          16 round block cipher supporting key sizes of 128, 192, and 256
1266          bits.
1267
1268          This module provides Twofish cipher algorithm that processes three
1269          blocks parallel, utilizing resources of out-of-order CPUs better.
1270
1271          See also:
1272          <http://www.schneier.com/twofish.html>
1273
1274config CRYPTO_TWOFISH_AVX_X86_64
1275        tristate "Twofish cipher algorithm (x86_64/AVX)"
1276        depends on X86 && 64BIT
1277        select CRYPTO_ALGAPI
1278        select CRYPTO_CRYPTD
1279        select CRYPTO_ABLK_HELPER_X86
1280        select CRYPTO_GLUE_HELPER_X86
1281        select CRYPTO_TWOFISH_COMMON
1282        select CRYPTO_TWOFISH_X86_64
1283        select CRYPTO_TWOFISH_X86_64_3WAY
1284        select CRYPTO_LRW
1285        select CRYPTO_XTS
1286        help
1287          Twofish cipher algorithm (x86_64/AVX).
1288
1289          Twofish was submitted as an AES (Advanced Encryption Standard)
1290          candidate cipher by researchers at CounterPane Systems.  It is a
1291          16 round block cipher supporting key sizes of 128, 192, and 256
1292          bits.
1293
1294          This module provides the Twofish cipher algorithm that processes
1295          eight blocks parallel using the AVX Instruction Set.
1296
1297          See also:
1298          <http://www.schneier.com/twofish.html>
1299
1300config CRYPTO_TWOFISH_AVX2_X86_64
1301        tristate "Twofish cipher algorithm (x86_64/AVX2)"
1302        depends on X86 && 64BIT
1303        depends on BROKEN
1304        select CRYPTO_ALGAPI
1305        select CRYPTO_CRYPTD
1306        select CRYPTO_ABLK_HELPER_X86
1307        select CRYPTO_GLUE_HELPER_X86
1308        select CRYPTO_TWOFISH_COMMON
1309        select CRYPTO_TWOFISH_X86_64
1310        select CRYPTO_TWOFISH_X86_64_3WAY
1311        select CRYPTO_TWOFISH_AVX_X86_64
1312        select CRYPTO_LRW
1313        select CRYPTO_XTS
1314        help
1315          Twofish cipher algorithm (x86_64/AVX2).
1316
1317          Twofish was submitted as an AES (Advanced Encryption Standard)
1318          candidate cipher by researchers at CounterPane Systems.  It is a
1319          16 round block cipher supporting key sizes of 128, 192, and 256
1320          bits.
1321
1322          See also:
1323          <http://www.schneier.com/twofish.html>
1324
1325comment "Compression"
1326
1327config CRYPTO_DEFLATE
1328        tristate "Deflate compression algorithm"
1329        select CRYPTO_ALGAPI
1330        select ZLIB_INFLATE
1331        select ZLIB_DEFLATE
1332        help
1333          This is the Deflate algorithm (RFC1951), specified for use in
1334          IPSec with the IPCOMP protocol (RFC3173, RFC2394).
1335
1336          You will most probably want this if using IPSec.
1337
1338config CRYPTO_ZLIB
1339        tristate "Zlib compression algorithm"
1340        select CRYPTO_PCOMP
1341        select ZLIB_INFLATE
1342        select ZLIB_DEFLATE
1343        select NLATTR
1344        help
1345          This is the zlib algorithm.
1346
1347config CRYPTO_LZO
1348        tristate "LZO compression algorithm"
1349        select CRYPTO_ALGAPI
1350        select LZO_COMPRESS
1351        select LZO_DECOMPRESS
1352        help
1353          This is the LZO algorithm.
1354
1355config CRYPTO_842
1356        tristate "842 compression algorithm"
1357        depends on CRYPTO_DEV_NX_COMPRESS
1358        # 842 uses lzo if the hardware becomes unavailable
1359        select LZO_COMPRESS
1360        select LZO_DECOMPRESS
1361        help
1362          This is the 842 algorithm.
1363
1364comment "Random Number Generation"
1365
1366config CRYPTO_ANSI_CPRNG
1367        tristate "Pseudo Random Number Generation for Cryptographic modules"
1368        default m
1369        select CRYPTO_AES
1370        select CRYPTO_RNG
1371        help
1372          This option enables the generic pseudo random number generator
1373          for cryptographic modules.  Uses the Algorithm specified in
1374          ANSI X9.31 A.2.4. Note that this option must be enabled if
1375          CRYPTO_FIPS is selected
1376
1377config CRYPTO_USER_API
1378        tristate
1379
1380config CRYPTO_USER_API_HASH
1381        tristate "User-space interface for hash algorithms"
1382        depends on NET
1383        select CRYPTO_HASH
1384        select CRYPTO_USER_API
1385        help
1386          This option enables the user-spaces interface for hash
1387          algorithms.
1388
1389config CRYPTO_USER_API_SKCIPHER
1390        tristate "User-space interface for symmetric key cipher algorithms"
1391        depends on NET
1392        select CRYPTO_BLKCIPHER
1393        select CRYPTO_USER_API
1394        help
1395          This option enables the user-spaces interface for symmetric
1396          key cipher algorithms.
1397
1398source "drivers/crypto/Kconfig"
1399source crypto/asymmetric_keys/Kconfig
1400
1401endif   # if CRYPTO
1402
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.