11da177e4SLinus Torvalds# 2685784aaSDan Williams# Generic algorithms support 3685784aaSDan Williams# 4685784aaSDan Williamsconfig XOR_BLOCKS 5685784aaSDan Williams tristate 6685784aaSDan Williams 7685784aaSDan Williams# 89bc89cd8SDan Williams# async_tx api: hardware offloaded memory transfer/transform support 99bc89cd8SDan Williams# 109bc89cd8SDan Williamssource "crypto/async_tx/Kconfig" 119bc89cd8SDan Williams 129bc89cd8SDan Williams# 131da177e4SLinus Torvalds# Cryptographic API Configuration 141da177e4SLinus Torvalds# 152e290f43SJan Engelhardtmenuconfig CRYPTO 16*c3715cb9SSebastian Siewior tristate "Cryptographic API" 171da177e4SLinus Torvalds help 181da177e4SLinus Torvalds This option provides the core Cryptographic API. 191da177e4SLinus Torvalds 20cce9e06dSHerbert Xuif CRYPTO 21cce9e06dSHerbert Xu 22cce9e06dSHerbert Xuconfig CRYPTO_ALGAPI 23cce9e06dSHerbert Xu tristate 24cce9e06dSHerbert Xu help 25cce9e06dSHerbert Xu This option provides the API for cryptographic algorithms. 26cce9e06dSHerbert Xu 271ae97820SHerbert Xuconfig CRYPTO_AEAD 281ae97820SHerbert Xu tristate 291ae97820SHerbert Xu select CRYPTO_ALGAPI 301ae97820SHerbert Xu 315cde0af2SHerbert Xuconfig CRYPTO_BLKCIPHER 325cde0af2SHerbert Xu tristate 335cde0af2SHerbert Xu select CRYPTO_ALGAPI 345cde0af2SHerbert Xu 350a270321SHerbert Xuconfig CRYPTO_SEQIV 360a270321SHerbert Xu tristate "Sequence Number IV Generator" 3747262042SHerbert Xu select CRYPTO_AEAD 380a270321SHerbert Xu select CRYPTO_BLKCIPHER 390a270321SHerbert Xu help 400a270321SHerbert Xu This IV generator generates an IV based on a sequence number by 410a270321SHerbert Xu xoring it with a salt. This algorithm is mainly useful for CTR 420a270321SHerbert Xu and similar modes. 430a270321SHerbert Xu 44055bcee3SHerbert Xuconfig CRYPTO_HASH 45055bcee3SHerbert Xu tristate 46055bcee3SHerbert Xu select CRYPTO_ALGAPI 47055bcee3SHerbert Xu 482b8c19dbSHerbert Xuconfig CRYPTO_MANAGER 492b8c19dbSHerbert Xu tristate "Cryptographic algorithm manager" 502b8c19dbSHerbert Xu select CRYPTO_ALGAPI 512b8c19dbSHerbert Xu help 522b8c19dbSHerbert Xu Create default cryptographic template instantiations such as 532b8c19dbSHerbert Xu cbc(aes). 542b8c19dbSHerbert Xu 551da177e4SLinus Torvaldsconfig CRYPTO_HMAC 568425165dSHerbert Xu tristate "HMAC support" 570796ae06SHerbert Xu select CRYPTO_HASH 5843518407SHerbert Xu select CRYPTO_MANAGER 591da177e4SLinus Torvalds help 601da177e4SLinus Torvalds HMAC: Keyed-Hashing for Message Authentication (RFC2104). 611da177e4SLinus Torvalds This is required for IPSec. 621da177e4SLinus Torvalds 63333b0d7eSKazunori MIYAZAWAconfig CRYPTO_XCBC 64333b0d7eSKazunori MIYAZAWA tristate "XCBC support" 65333b0d7eSKazunori MIYAZAWA depends on EXPERIMENTAL 66333b0d7eSKazunori MIYAZAWA select CRYPTO_HASH 67333b0d7eSKazunori MIYAZAWA select CRYPTO_MANAGER 68333b0d7eSKazunori MIYAZAWA help 69333b0d7eSKazunori MIYAZAWA XCBC: Keyed-Hashing with encryption algorithm 70333b0d7eSKazunori MIYAZAWA http://www.ietf.org/rfc/rfc3566.txt 71333b0d7eSKazunori MIYAZAWA http://csrc.nist.gov/encryption/modes/proposedmodes/ 72333b0d7eSKazunori MIYAZAWA xcbc-mac/xcbc-mac-spec.pdf 73333b0d7eSKazunori MIYAZAWA 741da177e4SLinus Torvaldsconfig CRYPTO_NULL 751da177e4SLinus Torvalds tristate "Null algorithms" 76cce9e06dSHerbert Xu select CRYPTO_ALGAPI 77c8620c25SAdrian Bunk select CRYPTO_BLKCIPHER 781da177e4SLinus Torvalds help 791da177e4SLinus Torvalds These are 'Null' algorithms, used by IPsec, which do nothing. 801da177e4SLinus Torvalds 811da177e4SLinus Torvaldsconfig CRYPTO_MD4 821da177e4SLinus Torvalds tristate "MD4 digest algorithm" 83cce9e06dSHerbert Xu select CRYPTO_ALGAPI 841da177e4SLinus Torvalds help 851da177e4SLinus Torvalds MD4 message digest algorithm (RFC1320). 861da177e4SLinus Torvalds 871da177e4SLinus Torvaldsconfig CRYPTO_MD5 881da177e4SLinus Torvalds tristate "MD5 digest algorithm" 89cce9e06dSHerbert Xu select CRYPTO_ALGAPI 901da177e4SLinus Torvalds help 911da177e4SLinus Torvalds MD5 message digest algorithm (RFC1321). 921da177e4SLinus Torvalds 931da177e4SLinus Torvaldsconfig CRYPTO_SHA1 941da177e4SLinus Torvalds tristate "SHA1 digest algorithm" 95cce9e06dSHerbert Xu select CRYPTO_ALGAPI 961da177e4SLinus Torvalds help 971da177e4SLinus Torvalds SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2). 981da177e4SLinus Torvalds 991da177e4SLinus Torvaldsconfig CRYPTO_SHA256 100cd12fb90SJonathan Lynch tristate "SHA224 and SHA256 digest algorithm" 101cce9e06dSHerbert Xu select CRYPTO_ALGAPI 1021da177e4SLinus Torvalds help 1031da177e4SLinus Torvalds SHA256 secure hash standard (DFIPS 180-2). 1041da177e4SLinus Torvalds 1051da177e4SLinus Torvalds This version of SHA implements a 256 bit hash with 128 bits of 1061da177e4SLinus Torvalds security against collision attacks. 1071da177e4SLinus Torvalds 108cd12fb90SJonathan Lynch This code also includes SHA-224, a 224 bit hash with 112 bits 109cd12fb90SJonathan Lynch of security against collision attacks. 110cd12fb90SJonathan Lynch 1111da177e4SLinus Torvaldsconfig CRYPTO_SHA512 1121da177e4SLinus Torvalds tristate "SHA384 and SHA512 digest algorithms" 113cce9e06dSHerbert Xu select CRYPTO_ALGAPI 1141da177e4SLinus Torvalds help 1151da177e4SLinus Torvalds SHA512 secure hash standard (DFIPS 180-2). 1161da177e4SLinus Torvalds 1171da177e4SLinus Torvalds This version of SHA implements a 512 bit hash with 256 bits of 1181da177e4SLinus Torvalds security against collision attacks. 1191da177e4SLinus Torvalds 1201da177e4SLinus Torvalds This code also includes SHA-384, a 384 bit hash with 192 bits 1211da177e4SLinus Torvalds of security against collision attacks. 1221da177e4SLinus Torvalds 1231da177e4SLinus Torvaldsconfig CRYPTO_WP512 1241da177e4SLinus Torvalds tristate "Whirlpool digest algorithms" 125cce9e06dSHerbert Xu select CRYPTO_ALGAPI 1261da177e4SLinus Torvalds help 1271da177e4SLinus Torvalds Whirlpool hash algorithm 512, 384 and 256-bit hashes 1281da177e4SLinus Torvalds 1291da177e4SLinus Torvalds Whirlpool-512 is part of the NESSIE cryptographic primitives. 1301da177e4SLinus Torvalds Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard 1311da177e4SLinus Torvalds 1321da177e4SLinus Torvalds See also: 1331da177e4SLinus Torvalds <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html> 1341da177e4SLinus Torvalds 1351da177e4SLinus Torvaldsconfig CRYPTO_TGR192 1361da177e4SLinus Torvalds tristate "Tiger digest algorithms" 137cce9e06dSHerbert Xu select CRYPTO_ALGAPI 1381da177e4SLinus Torvalds help 1391da177e4SLinus Torvalds Tiger hash algorithm 192, 160 and 128-bit hashes 1401da177e4SLinus Torvalds 1411da177e4SLinus Torvalds Tiger is a hash function optimized for 64-bit processors while 1421da177e4SLinus Torvalds still having decent performance on 32-bit processors. 1431da177e4SLinus Torvalds Tiger was developed by Ross Anderson and Eli Biham. 1441da177e4SLinus Torvalds 1451da177e4SLinus Torvalds See also: 1461da177e4SLinus Torvalds <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>. 1471da177e4SLinus Torvalds 148c494e070SRik Snelconfig CRYPTO_GF128MUL 149c494e070SRik Snel tristate "GF(2^128) multiplication functions (EXPERIMENTAL)" 150c494e070SRik Snel depends on EXPERIMENTAL 151c494e070SRik Snel help 152c494e070SRik Snel Efficient table driven implementation of multiplications in the 153c494e070SRik Snel field GF(2^128). This is needed by some cypher modes. This 154c494e070SRik Snel option will be selected automatically if you select such a 155c494e070SRik Snel cipher mode. Only select this option by hand if you expect to load 156c494e070SRik Snel an external module that requires these functions. 157c494e070SRik Snel 158db131ef9SHerbert Xuconfig CRYPTO_ECB 159db131ef9SHerbert Xu tristate "ECB support" 160db131ef9SHerbert Xu select CRYPTO_BLKCIPHER 16143518407SHerbert Xu select CRYPTO_MANAGER 162db131ef9SHerbert Xu help 163db131ef9SHerbert Xu ECB: Electronic CodeBook mode 164db131ef9SHerbert Xu This is the simplest block cipher algorithm. It simply encrypts 165db131ef9SHerbert Xu the input block by block. 166db131ef9SHerbert Xu 167db131ef9SHerbert Xuconfig CRYPTO_CBC 168db131ef9SHerbert Xu tristate "CBC support" 169db131ef9SHerbert Xu select CRYPTO_BLKCIPHER 17043518407SHerbert Xu select CRYPTO_MANAGER 171db131ef9SHerbert Xu help 172db131ef9SHerbert Xu CBC: Cipher Block Chaining mode 173db131ef9SHerbert Xu This block cipher algorithm is required for IPSec. 174db131ef9SHerbert Xu 17591652be5SDavid Howellsconfig CRYPTO_PCBC 17691652be5SDavid Howells tristate "PCBC support" 17791652be5SDavid Howells select CRYPTO_BLKCIPHER 17891652be5SDavid Howells select CRYPTO_MANAGER 17991652be5SDavid Howells help 18091652be5SDavid Howells PCBC: Propagating Cipher Block Chaining mode 18191652be5SDavid Howells This block cipher algorithm is required for RxRPC. 18291652be5SDavid Howells 18364470f1bSRik Snelconfig CRYPTO_LRW 18464470f1bSRik Snel tristate "LRW support (EXPERIMENTAL)" 18564470f1bSRik Snel depends on EXPERIMENTAL 18664470f1bSRik Snel select CRYPTO_BLKCIPHER 18764470f1bSRik Snel select CRYPTO_MANAGER 18864470f1bSRik Snel select CRYPTO_GF128MUL 18964470f1bSRik Snel help 19064470f1bSRik Snel LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable 19164470f1bSRik Snel narrow block cipher mode for dm-crypt. Use it with cipher 19264470f1bSRik Snel specification string aes-lrw-benbi, the key must be 256, 320 or 384. 19364470f1bSRik Snel The first 128, 192 or 256 bits in the key are used for AES and the 19464470f1bSRik Snel rest is used to tie each cipher block to its logical position. 19564470f1bSRik Snel 196f19f5111SRik Snelconfig CRYPTO_XTS 197f19f5111SRik Snel tristate "XTS support (EXPERIMENTAL)" 198f19f5111SRik Snel depends on EXPERIMENTAL 199f19f5111SRik Snel select CRYPTO_BLKCIPHER 200f19f5111SRik Snel select CRYPTO_MANAGER 201f19f5111SRik Snel select CRYPTO_GF128MUL 202f19f5111SRik Snel help 203f19f5111SRik Snel XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain, 204f19f5111SRik Snel key size 256, 384 or 512 bits. This implementation currently 205f19f5111SRik Snel can't handle a sectorsize which is not a multiple of 16 bytes. 206f19f5111SRik Snel 20723e353c8SJoy Lattenconfig CRYPTO_CTR 20823e353c8SJoy Latten tristate "CTR support" 20923e353c8SJoy Latten select CRYPTO_BLKCIPHER 2100a270321SHerbert Xu select CRYPTO_SEQIV 21123e353c8SJoy Latten select CRYPTO_MANAGER 21223e353c8SJoy Latten help 21323e353c8SJoy Latten CTR: Counter mode 21423e353c8SJoy Latten This block cipher algorithm is required for IPSec. 21523e353c8SJoy Latten 21676cb9521SKevin Coffmanconfig CRYPTO_CTS 21776cb9521SKevin Coffman tristate "CTS support" 21876cb9521SKevin Coffman select CRYPTO_BLKCIPHER 21976cb9521SKevin Coffman help 22076cb9521SKevin Coffman CTS: Cipher Text Stealing 22176cb9521SKevin Coffman This is the Cipher Text Stealing mode as described by 22276cb9521SKevin Coffman Section 8 of rfc2040 and referenced by rfc3962. 22376cb9521SKevin Coffman (rfc3962 includes errata information in its Appendix A) 22476cb9521SKevin Coffman This mode is required for Kerberos gss mechanism support 22576cb9521SKevin Coffman for AES encryption. 22676cb9521SKevin Coffman 22728db8e3eSMikko Herranenconfig CRYPTO_GCM 22828db8e3eSMikko Herranen tristate "GCM/GMAC support" 22928db8e3eSMikko Herranen select CRYPTO_CTR 23028db8e3eSMikko Herranen select CRYPTO_AEAD 23128db8e3eSMikko Herranen select CRYPTO_GF128MUL 23228db8e3eSMikko Herranen help 23328db8e3eSMikko Herranen Support for Galois/Counter Mode (GCM) and Galois Message 23428db8e3eSMikko Herranen Authentication Code (GMAC). Required for IPSec. 23528db8e3eSMikko Herranen 2364a49b499SJoy Lattenconfig CRYPTO_CCM 2374a49b499SJoy Latten tristate "CCM support" 2384a49b499SJoy Latten select CRYPTO_CTR 2394a49b499SJoy Latten select CRYPTO_AEAD 2404a49b499SJoy Latten help 2414a49b499SJoy Latten Support for Counter with CBC MAC. Required for IPsec. 2424a49b499SJoy Latten 243124b53d0SHerbert Xuconfig CRYPTO_CRYPTD 244124b53d0SHerbert Xu tristate "Software async crypto daemon" 245653ebd9cSHerbert Xu select CRYPTO_BLKCIPHER 246124b53d0SHerbert Xu select CRYPTO_MANAGER 247124b53d0SHerbert Xu help 248124b53d0SHerbert Xu This is a generic software asynchronous crypto daemon that 249124b53d0SHerbert Xu converts an arbitrary synchronous software crypto algorithm 250124b53d0SHerbert Xu into an asynchronous algorithm that executes in a kernel thread. 251124b53d0SHerbert Xu 2521da177e4SLinus Torvaldsconfig CRYPTO_DES 2531da177e4SLinus Torvalds tristate "DES and Triple DES EDE cipher algorithms" 254cce9e06dSHerbert Xu select CRYPTO_ALGAPI 2551da177e4SLinus Torvalds help 2561da177e4SLinus Torvalds DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3). 2571da177e4SLinus Torvalds 25890831639SDavid Howellsconfig CRYPTO_FCRYPT 25990831639SDavid Howells tristate "FCrypt cipher algorithm" 26090831639SDavid Howells select CRYPTO_ALGAPI 26190831639SDavid Howells select CRYPTO_BLKCIPHER 26290831639SDavid Howells help 26390831639SDavid Howells FCrypt algorithm used by RxRPC. 26490831639SDavid Howells 2651da177e4SLinus Torvaldsconfig CRYPTO_BLOWFISH 2661da177e4SLinus Torvalds tristate "Blowfish cipher algorithm" 267cce9e06dSHerbert Xu select CRYPTO_ALGAPI 2681da177e4SLinus Torvalds help 2691da177e4SLinus Torvalds Blowfish cipher algorithm, by Bruce Schneier. 2701da177e4SLinus Torvalds 2711da177e4SLinus Torvalds This is a variable key length cipher which can use keys from 32 2721da177e4SLinus Torvalds bits to 448 bits in length. It's fast, simple and specifically 2731da177e4SLinus Torvalds designed for use on "large microprocessors". 2741da177e4SLinus Torvalds 2751da177e4SLinus Torvalds See also: 2761da177e4SLinus Torvalds <http://www.schneier.com/blowfish.html> 2771da177e4SLinus Torvalds 2781da177e4SLinus Torvaldsconfig CRYPTO_TWOFISH 2791da177e4SLinus Torvalds tristate "Twofish cipher algorithm" 280cce9e06dSHerbert Xu select CRYPTO_ALGAPI 2812729bb42SJoachim Fritschi select CRYPTO_TWOFISH_COMMON 2821da177e4SLinus Torvalds help 2831da177e4SLinus Torvalds Twofish cipher algorithm. 2841da177e4SLinus Torvalds 2851da177e4SLinus Torvalds Twofish was submitted as an AES (Advanced Encryption Standard) 2861da177e4SLinus Torvalds candidate cipher by researchers at CounterPane Systems. It is a 2871da177e4SLinus Torvalds 16 round block cipher supporting key sizes of 128, 192, and 256 2881da177e4SLinus Torvalds bits. 2891da177e4SLinus Torvalds 2901da177e4SLinus Torvalds See also: 2911da177e4SLinus Torvalds <http://www.schneier.com/twofish.html> 2921da177e4SLinus Torvalds 2932729bb42SJoachim Fritschiconfig CRYPTO_TWOFISH_COMMON 2942729bb42SJoachim Fritschi tristate 2952729bb42SJoachim Fritschi help 2962729bb42SJoachim Fritschi Common parts of the Twofish cipher algorithm shared by the 2972729bb42SJoachim Fritschi generic c and the assembler implementations. 2982729bb42SJoachim Fritschi 299b9f535ffSJoachim Fritschiconfig CRYPTO_TWOFISH_586 300b9f535ffSJoachim Fritschi tristate "Twofish cipher algorithms (i586)" 301cce9e06dSHerbert Xu depends on (X86 || UML_X86) && !64BIT 302cce9e06dSHerbert Xu select CRYPTO_ALGAPI 303b9f535ffSJoachim Fritschi select CRYPTO_TWOFISH_COMMON 304b9f535ffSJoachim Fritschi help 305b9f535ffSJoachim Fritschi Twofish cipher algorithm. 306b9f535ffSJoachim Fritschi 307b9f535ffSJoachim Fritschi Twofish was submitted as an AES (Advanced Encryption Standard) 308b9f535ffSJoachim Fritschi candidate cipher by researchers at CounterPane Systems. It is a 309b9f535ffSJoachim Fritschi 16 round block cipher supporting key sizes of 128, 192, and 256 310b9f535ffSJoachim Fritschi bits. 311b9f535ffSJoachim Fritschi 312b9f535ffSJoachim Fritschi See also: 313b9f535ffSJoachim Fritschi <http://www.schneier.com/twofish.html> 314b9f535ffSJoachim Fritschi 315eaf44088SJoachim Fritschiconfig CRYPTO_TWOFISH_X86_64 316eaf44088SJoachim Fritschi tristate "Twofish cipher algorithm (x86_64)" 317cce9e06dSHerbert Xu depends on (X86 || UML_X86) && 64BIT 318cce9e06dSHerbert Xu select CRYPTO_ALGAPI 319eaf44088SJoachim Fritschi select CRYPTO_TWOFISH_COMMON 320eaf44088SJoachim Fritschi help 321eaf44088SJoachim Fritschi Twofish cipher algorithm (x86_64). 322eaf44088SJoachim Fritschi 323eaf44088SJoachim Fritschi Twofish was submitted as an AES (Advanced Encryption Standard) 324eaf44088SJoachim Fritschi candidate cipher by researchers at CounterPane Systems. It is a 325eaf44088SJoachim Fritschi 16 round block cipher supporting key sizes of 128, 192, and 256 326eaf44088SJoachim Fritschi bits. 327eaf44088SJoachim Fritschi 328eaf44088SJoachim Fritschi See also: 329eaf44088SJoachim Fritschi <http://www.schneier.com/twofish.html> 330eaf44088SJoachim Fritschi 3311da177e4SLinus Torvaldsconfig CRYPTO_SERPENT 3321da177e4SLinus Torvalds tristate "Serpent cipher algorithm" 333cce9e06dSHerbert Xu select CRYPTO_ALGAPI 3341da177e4SLinus Torvalds help 3351da177e4SLinus Torvalds Serpent cipher algorithm, by Anderson, Biham & Knudsen. 3361da177e4SLinus Torvalds 3371da177e4SLinus Torvalds Keys are allowed to be from 0 to 256 bits in length, in steps 3381da177e4SLinus Torvalds of 8 bits. Also includes the 'Tnepres' algorithm, a reversed 3393dde6ad8SDavid Sterba variant of Serpent for compatibility with old kerneli.org code. 3401da177e4SLinus Torvalds 3411da177e4SLinus Torvalds See also: 3421da177e4SLinus Torvalds <http://www.cl.cam.ac.uk/~rja14/serpent.html> 3431da177e4SLinus Torvalds 3441da177e4SLinus Torvaldsconfig CRYPTO_AES 3451da177e4SLinus Torvalds tristate "AES cipher algorithms" 346cce9e06dSHerbert Xu select CRYPTO_ALGAPI 3471da177e4SLinus Torvalds help 3481da177e4SLinus Torvalds AES cipher algorithms (FIPS-197). AES uses the Rijndael 3491da177e4SLinus Torvalds algorithm. 3501da177e4SLinus Torvalds 3511da177e4SLinus Torvalds Rijndael appears to be consistently a very good performer in 3521da177e4SLinus Torvalds both hardware and software across a wide range of computing 3531da177e4SLinus Torvalds environments regardless of its use in feedback or non-feedback 3541da177e4SLinus Torvalds modes. Its key setup time is excellent, and its key agility is 3551da177e4SLinus Torvalds good. Rijndael's very low memory requirements make it very well 3561da177e4SLinus Torvalds suited for restricted-space environments, in which it also 3571da177e4SLinus Torvalds demonstrates excellent performance. Rijndael's operations are 3581da177e4SLinus Torvalds among the easiest to defend against power and timing attacks. 3591da177e4SLinus Torvalds 3601da177e4SLinus Torvalds The AES specifies three key sizes: 128, 192 and 256 bits 3611da177e4SLinus Torvalds 3621da177e4SLinus Torvalds See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information. 3631da177e4SLinus Torvalds 3641da177e4SLinus Torvaldsconfig CRYPTO_AES_586 3651da177e4SLinus Torvalds tristate "AES cipher algorithms (i586)" 366cce9e06dSHerbert Xu depends on (X86 || UML_X86) && !64BIT 367cce9e06dSHerbert Xu select CRYPTO_ALGAPI 3685157dea8SSebastian Siewior select CRYPTO_AES 3691da177e4SLinus Torvalds help 3701da177e4SLinus Torvalds AES cipher algorithms (FIPS-197). AES uses the Rijndael 3711da177e4SLinus Torvalds algorithm. 3721da177e4SLinus Torvalds 3731da177e4SLinus Torvalds Rijndael appears to be consistently a very good performer in 3741da177e4SLinus Torvalds both hardware and software across a wide range of computing 3751da177e4SLinus Torvalds environments regardless of its use in feedback or non-feedback 3761da177e4SLinus Torvalds modes. Its key setup time is excellent, and its key agility is 3771da177e4SLinus Torvalds good. Rijndael's very low memory requirements make it very well 3781da177e4SLinus Torvalds suited for restricted-space environments, in which it also 3791da177e4SLinus Torvalds demonstrates excellent performance. Rijndael's operations are 3801da177e4SLinus Torvalds among the easiest to defend against power and timing attacks. 3811da177e4SLinus Torvalds 3821da177e4SLinus Torvalds The AES specifies three key sizes: 128, 192 and 256 bits 3831da177e4SLinus Torvalds 3841da177e4SLinus Torvalds See <http://csrc.nist.gov/encryption/aes/> for more information. 3851da177e4SLinus Torvalds 386a2a892a2SAndreas Steinmetzconfig CRYPTO_AES_X86_64 387a2a892a2SAndreas Steinmetz tristate "AES cipher algorithms (x86_64)" 388cce9e06dSHerbert Xu depends on (X86 || UML_X86) && 64BIT 389cce9e06dSHerbert Xu select CRYPTO_ALGAPI 39081190b32SSebastian Siewior select CRYPTO_AES 391a2a892a2SAndreas Steinmetz help 392a2a892a2SAndreas Steinmetz AES cipher algorithms (FIPS-197). AES uses the Rijndael 393a2a892a2SAndreas Steinmetz algorithm. 394a2a892a2SAndreas Steinmetz 395a2a892a2SAndreas Steinmetz Rijndael appears to be consistently a very good performer in 396a2a892a2SAndreas Steinmetz both hardware and software across a wide range of computing 397a2a892a2SAndreas Steinmetz environments regardless of its use in feedback or non-feedback 398a2a892a2SAndreas Steinmetz modes. Its key setup time is excellent, and its key agility is 399a2a892a2SAndreas Steinmetz good. Rijndael's very low memory requirements make it very well 400a2a892a2SAndreas Steinmetz suited for restricted-space environments, in which it also 401a2a892a2SAndreas Steinmetz demonstrates excellent performance. Rijndael's operations are 402a2a892a2SAndreas Steinmetz among the easiest to defend against power and timing attacks. 403a2a892a2SAndreas Steinmetz 404a2a892a2SAndreas Steinmetz The AES specifies three key sizes: 128, 192 and 256 bits 405a2a892a2SAndreas Steinmetz 406a2a892a2SAndreas Steinmetz See <http://csrc.nist.gov/encryption/aes/> for more information. 407a2a892a2SAndreas Steinmetz 4081da177e4SLinus Torvaldsconfig CRYPTO_CAST5 4091da177e4SLinus Torvalds tristate "CAST5 (CAST-128) cipher algorithm" 410cce9e06dSHerbert Xu select CRYPTO_ALGAPI 4111da177e4SLinus Torvalds help 4121da177e4SLinus Torvalds The CAST5 encryption algorithm (synonymous with CAST-128) is 4131da177e4SLinus Torvalds described in RFC2144. 4141da177e4SLinus Torvalds 4151da177e4SLinus Torvaldsconfig CRYPTO_CAST6 4161da177e4SLinus Torvalds tristate "CAST6 (CAST-256) cipher algorithm" 417cce9e06dSHerbert Xu select CRYPTO_ALGAPI 4181da177e4SLinus Torvalds help 4191da177e4SLinus Torvalds The CAST6 encryption algorithm (synonymous with CAST-256) is 4201da177e4SLinus Torvalds described in RFC2612. 4211da177e4SLinus Torvalds 4221da177e4SLinus Torvaldsconfig CRYPTO_TEA 423fb4f10edSAaron Grothe tristate "TEA, XTEA and XETA cipher algorithms" 424cce9e06dSHerbert Xu select CRYPTO_ALGAPI 4251da177e4SLinus Torvalds help 4261da177e4SLinus Torvalds TEA cipher algorithm. 4271da177e4SLinus Torvalds 4281da177e4SLinus Torvalds Tiny Encryption Algorithm is a simple cipher that uses 4291da177e4SLinus Torvalds many rounds for security. It is very fast and uses 4301da177e4SLinus Torvalds little memory. 4311da177e4SLinus Torvalds 4321da177e4SLinus Torvalds Xtendend Tiny Encryption Algorithm is a modification to 4331da177e4SLinus Torvalds the TEA algorithm to address a potential key weakness 4341da177e4SLinus Torvalds in the TEA algorithm. 4351da177e4SLinus Torvalds 436fb4f10edSAaron Grothe Xtendend Encryption Tiny Algorithm is a mis-implementation 437fb4f10edSAaron Grothe of the XTEA algorithm for compatibility purposes. 438fb4f10edSAaron Grothe 4391da177e4SLinus Torvaldsconfig CRYPTO_ARC4 4401da177e4SLinus Torvalds tristate "ARC4 cipher algorithm" 441cce9e06dSHerbert Xu select CRYPTO_ALGAPI 4421da177e4SLinus Torvalds help 4431da177e4SLinus Torvalds ARC4 cipher algorithm. 4441da177e4SLinus Torvalds 4451da177e4SLinus Torvalds ARC4 is a stream cipher using keys ranging from 8 bits to 2048 4461da177e4SLinus Torvalds bits in length. This algorithm is required for driver-based 4471da177e4SLinus Torvalds WEP, but it should not be for other purposes because of the 4481da177e4SLinus Torvalds weakness of the algorithm. 4491da177e4SLinus Torvalds 4501da177e4SLinus Torvaldsconfig CRYPTO_KHAZAD 4511da177e4SLinus Torvalds tristate "Khazad cipher algorithm" 452cce9e06dSHerbert Xu select CRYPTO_ALGAPI 4531da177e4SLinus Torvalds help 4541da177e4SLinus Torvalds Khazad cipher algorithm. 4551da177e4SLinus Torvalds 4561da177e4SLinus Torvalds Khazad was a finalist in the initial NESSIE competition. It is 4571da177e4SLinus Torvalds an algorithm optimized for 64-bit processors with good performance 4581da177e4SLinus Torvalds on 32-bit processors. Khazad uses an 128 bit key size. 4591da177e4SLinus Torvalds 4601da177e4SLinus Torvalds See also: 4611da177e4SLinus Torvalds <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html> 4621da177e4SLinus Torvalds 4631da177e4SLinus Torvaldsconfig CRYPTO_ANUBIS 4641da177e4SLinus Torvalds tristate "Anubis cipher algorithm" 465cce9e06dSHerbert Xu select CRYPTO_ALGAPI 4661da177e4SLinus Torvalds help 4671da177e4SLinus Torvalds Anubis cipher algorithm. 4681da177e4SLinus Torvalds 4691da177e4SLinus Torvalds Anubis is a variable key length cipher which can use keys from 4701da177e4SLinus Torvalds 128 bits to 320 bits in length. It was evaluated as a entrant 4711da177e4SLinus Torvalds in the NESSIE competition. 4721da177e4SLinus Torvalds 4731da177e4SLinus Torvalds See also: 4741da177e4SLinus Torvalds <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/> 4751da177e4SLinus Torvalds <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html> 4761da177e4SLinus Torvalds 477e2ee95b8SHye-Shik Changconfig CRYPTO_SEED 478e2ee95b8SHye-Shik Chang tristate "SEED cipher algorithm" 479e2ee95b8SHye-Shik Chang select CRYPTO_ALGAPI 480e2ee95b8SHye-Shik Chang help 481e2ee95b8SHye-Shik Chang SEED cipher algorithm (RFC4269). 482e2ee95b8SHye-Shik Chang 483e2ee95b8SHye-Shik Chang SEED is a 128-bit symmetric key block cipher that has been 484e2ee95b8SHye-Shik Chang developed by KISA (Korea Information Security Agency) as a 485e2ee95b8SHye-Shik Chang national standard encryption algorithm of the Republic of Korea. 486e2ee95b8SHye-Shik Chang It is a 16 round block cipher with the key size of 128 bit. 487e2ee95b8SHye-Shik Chang 488e2ee95b8SHye-Shik Chang See also: 489e2ee95b8SHye-Shik Chang <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp> 490e2ee95b8SHye-Shik Chang 4912407d608STan Swee Hengconfig CRYPTO_SALSA20 4922407d608STan Swee Heng tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)" 4932407d608STan Swee Heng depends on EXPERIMENTAL 4942407d608STan Swee Heng select CRYPTO_BLKCIPHER 4952407d608STan Swee Heng help 4962407d608STan Swee Heng Salsa20 stream cipher algorithm. 4972407d608STan Swee Heng 4982407d608STan Swee Heng Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT 4992407d608STan Swee Heng Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/> 5002407d608STan Swee Heng 5012407d608STan Swee Heng The Salsa20 stream cipher algorithm is designed by Daniel J. 5022407d608STan Swee Heng Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html> 5031da177e4SLinus Torvalds 504974e4b75STan Swee Hengconfig CRYPTO_SALSA20_586 505974e4b75STan Swee Heng tristate "Salsa20 stream cipher algorithm (i586) (EXPERIMENTAL)" 506974e4b75STan Swee Heng depends on (X86 || UML_X86) && !64BIT 507974e4b75STan Swee Heng depends on EXPERIMENTAL 508974e4b75STan Swee Heng select CRYPTO_BLKCIPHER 509974e4b75STan Swee Heng help 510974e4b75STan Swee Heng Salsa20 stream cipher algorithm. 511974e4b75STan Swee Heng 512974e4b75STan Swee Heng Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT 513974e4b75STan Swee Heng Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/> 514974e4b75STan Swee Heng 515974e4b75STan Swee Heng The Salsa20 stream cipher algorithm is designed by Daniel J. 516974e4b75STan Swee Heng Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html> 517974e4b75STan Swee Heng 5189a7dafbbSTan Swee Hengconfig CRYPTO_SALSA20_X86_64 5199a7dafbbSTan Swee Heng tristate "Salsa20 stream cipher algorithm (x86_64) (EXPERIMENTAL)" 5209a7dafbbSTan Swee Heng depends on (X86 || UML_X86) && 64BIT 5219a7dafbbSTan Swee Heng depends on EXPERIMENTAL 5229a7dafbbSTan Swee Heng select CRYPTO_BLKCIPHER 5239a7dafbbSTan Swee Heng help 5249a7dafbbSTan Swee Heng Salsa20 stream cipher algorithm. 5259a7dafbbSTan Swee Heng 5269a7dafbbSTan Swee Heng Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT 5279a7dafbbSTan Swee Heng Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/> 5289a7dafbbSTan Swee Heng 5299a7dafbbSTan Swee Heng The Salsa20 stream cipher algorithm is designed by Daniel J. 5309a7dafbbSTan Swee Heng Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html> 5319a7dafbbSTan Swee Heng 5321da177e4SLinus Torvaldsconfig CRYPTO_DEFLATE 5331da177e4SLinus Torvalds tristate "Deflate compression algorithm" 534cce9e06dSHerbert Xu select CRYPTO_ALGAPI 5351da177e4SLinus Torvalds select ZLIB_INFLATE 5361da177e4SLinus Torvalds select ZLIB_DEFLATE 5371da177e4SLinus Torvalds help 5381da177e4SLinus Torvalds This is the Deflate algorithm (RFC1951), specified for use in 5391da177e4SLinus Torvalds IPSec with the IPCOMP protocol (RFC3173, RFC2394). 5401da177e4SLinus Torvalds 5411da177e4SLinus Torvalds You will most probably want this if using IPSec. 5421da177e4SLinus Torvalds 5431da177e4SLinus Torvaldsconfig CRYPTO_MICHAEL_MIC 5441da177e4SLinus Torvalds tristate "Michael MIC keyed digest algorithm" 545cce9e06dSHerbert Xu select CRYPTO_ALGAPI 5461da177e4SLinus Torvalds help 5471da177e4SLinus Torvalds Michael MIC is used for message integrity protection in TKIP 5481da177e4SLinus Torvalds (IEEE 802.11i). This algorithm is required for TKIP, but it 5491da177e4SLinus Torvalds should not be used for other purposes because of the weakness 5501da177e4SLinus Torvalds of the algorithm. 5511da177e4SLinus Torvalds 5521da177e4SLinus Torvaldsconfig CRYPTO_CRC32C 5531da177e4SLinus Torvalds tristate "CRC32c CRC algorithm" 554cce9e06dSHerbert Xu select CRYPTO_ALGAPI 5551da177e4SLinus Torvalds select LIBCRC32C 5561da177e4SLinus Torvalds help 5571da177e4SLinus Torvalds Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used 5581da177e4SLinus Torvalds by iSCSI for header and data digests and by others. 5591da177e4SLinus Torvalds See Castagnoli93. This implementation uses lib/libcrc32c. 5601da177e4SLinus Torvalds Module will be crc32c. 5611da177e4SLinus Torvalds 56204ac7db3SNoriaki TAKAMIYAconfig CRYPTO_CAMELLIA 56304ac7db3SNoriaki TAKAMIYA tristate "Camellia cipher algorithms" 56404ac7db3SNoriaki TAKAMIYA depends on CRYPTO 56504ac7db3SNoriaki TAKAMIYA select CRYPTO_ALGAPI 56604ac7db3SNoriaki TAKAMIYA help 56704ac7db3SNoriaki TAKAMIYA Camellia cipher algorithms module. 56804ac7db3SNoriaki TAKAMIYA 56904ac7db3SNoriaki TAKAMIYA Camellia is a symmetric key block cipher developed jointly 57004ac7db3SNoriaki TAKAMIYA at NTT and Mitsubishi Electric Corporation. 57104ac7db3SNoriaki TAKAMIYA 57204ac7db3SNoriaki TAKAMIYA The Camellia specifies three key sizes: 128, 192 and 256 bits. 57304ac7db3SNoriaki TAKAMIYA 57404ac7db3SNoriaki TAKAMIYA See also: 57504ac7db3SNoriaki TAKAMIYA <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html> 57604ac7db3SNoriaki TAKAMIYA 5771da177e4SLinus Torvaldsconfig CRYPTO_TEST 5781da177e4SLinus Torvalds tristate "Testing module" 579cce9e06dSHerbert Xu depends on m 580cce9e06dSHerbert Xu select CRYPTO_ALGAPI 581d1cda4e3SSebastian Siewior select CRYPTO_AEAD 582242f1a34SFrederik Deweerdt select CRYPTO_BLKCIPHER 5831da177e4SLinus Torvalds help 5841da177e4SLinus Torvalds Quick & dirty crypto test module. 5851da177e4SLinus Torvalds 5863c09f17cSHerbert Xuconfig CRYPTO_AUTHENC 5873c09f17cSHerbert Xu tristate "Authenc support" 5883c09f17cSHerbert Xu select CRYPTO_AEAD 5893e16bfbaSHerbert Xu select CRYPTO_BLKCIPHER 5903c09f17cSHerbert Xu select CRYPTO_MANAGER 5915e553110SBorislav Petkov select CRYPTO_HASH 5923c09f17cSHerbert Xu help 5933c09f17cSHerbert Xu Authenc: Combined mode wrapper for IPsec. 5943c09f17cSHerbert Xu This is required for IPSec. 5953c09f17cSHerbert Xu 5960b77abb3SZoltan Sogorconfig CRYPTO_LZO 5970b77abb3SZoltan Sogor tristate "LZO compression algorithm" 5980b77abb3SZoltan Sogor select CRYPTO_ALGAPI 5990b77abb3SZoltan Sogor select LZO_COMPRESS 6000b77abb3SZoltan Sogor select LZO_DECOMPRESS 6010b77abb3SZoltan Sogor help 6020b77abb3SZoltan Sogor This is the LZO algorithm. 6030b77abb3SZoltan Sogor 6041da177e4SLinus Torvaldssource "drivers/crypto/Kconfig" 6051da177e4SLinus Torvalds 606cce9e06dSHerbert Xuendif # if CRYPTO 607