xref: /linux/crypto/Kconfig (revision 0b77abb3b2d0c2eee1da79a3f3bd4312a0edb156)
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
161da177e4SLinus Torvalds	bool "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
27b5b7f088SHerbert Xuconfig CRYPTO_ABLKCIPHER
28b5b7f088SHerbert Xu	tristate
29b5b7f088SHerbert Xu	select CRYPTO_BLKCIPHER
30b5b7f088SHerbert Xu
311ae97820SHerbert Xuconfig CRYPTO_AEAD
321ae97820SHerbert Xu	tristate
331ae97820SHerbert Xu	select CRYPTO_ALGAPI
341ae97820SHerbert Xu
355cde0af2SHerbert Xuconfig CRYPTO_BLKCIPHER
365cde0af2SHerbert Xu	tristate
375cde0af2SHerbert Xu	select CRYPTO_ALGAPI
385cde0af2SHerbert Xu
39055bcee3SHerbert Xuconfig CRYPTO_HASH
40055bcee3SHerbert Xu	tristate
41055bcee3SHerbert Xu	select CRYPTO_ALGAPI
42055bcee3SHerbert Xu
432b8c19dbSHerbert Xuconfig CRYPTO_MANAGER
442b8c19dbSHerbert Xu	tristate "Cryptographic algorithm manager"
452b8c19dbSHerbert Xu	select CRYPTO_ALGAPI
462b8c19dbSHerbert Xu	help
472b8c19dbSHerbert Xu	  Create default cryptographic template instantiations such as
482b8c19dbSHerbert Xu	  cbc(aes).
492b8c19dbSHerbert Xu
501da177e4SLinus Torvaldsconfig CRYPTO_HMAC
518425165dSHerbert Xu	tristate "HMAC support"
520796ae06SHerbert Xu	select CRYPTO_HASH
5343518407SHerbert Xu	select CRYPTO_MANAGER
541da177e4SLinus Torvalds	help
551da177e4SLinus Torvalds	  HMAC: Keyed-Hashing for Message Authentication (RFC2104).
561da177e4SLinus Torvalds	  This is required for IPSec.
571da177e4SLinus Torvalds
58333b0d7eSKazunori MIYAZAWAconfig CRYPTO_XCBC
59333b0d7eSKazunori MIYAZAWA	tristate "XCBC support"
60333b0d7eSKazunori MIYAZAWA	depends on EXPERIMENTAL
61333b0d7eSKazunori MIYAZAWA	select CRYPTO_HASH
62333b0d7eSKazunori MIYAZAWA	select CRYPTO_MANAGER
63333b0d7eSKazunori MIYAZAWA	help
64333b0d7eSKazunori MIYAZAWA	  XCBC: Keyed-Hashing with encryption algorithm
65333b0d7eSKazunori MIYAZAWA		http://www.ietf.org/rfc/rfc3566.txt
66333b0d7eSKazunori MIYAZAWA		http://csrc.nist.gov/encryption/modes/proposedmodes/
67333b0d7eSKazunori MIYAZAWA		 xcbc-mac/xcbc-mac-spec.pdf
68333b0d7eSKazunori MIYAZAWA
691da177e4SLinus Torvaldsconfig CRYPTO_NULL
701da177e4SLinus Torvalds	tristate "Null algorithms"
71cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
721da177e4SLinus Torvalds	help
731da177e4SLinus Torvalds	  These are 'Null' algorithms, used by IPsec, which do nothing.
741da177e4SLinus Torvalds
751da177e4SLinus Torvaldsconfig CRYPTO_MD4
761da177e4SLinus Torvalds	tristate "MD4 digest algorithm"
77cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
781da177e4SLinus Torvalds	help
791da177e4SLinus Torvalds	  MD4 message digest algorithm (RFC1320).
801da177e4SLinus Torvalds
811da177e4SLinus Torvaldsconfig CRYPTO_MD5
821da177e4SLinus Torvalds	tristate "MD5 digest algorithm"
83cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
841da177e4SLinus Torvalds	help
851da177e4SLinus Torvalds	  MD5 message digest algorithm (RFC1321).
861da177e4SLinus Torvalds
871da177e4SLinus Torvaldsconfig CRYPTO_SHA1
881da177e4SLinus Torvalds	tristate "SHA1 digest algorithm"
89cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
901da177e4SLinus Torvalds	help
911da177e4SLinus Torvalds	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
921da177e4SLinus Torvalds
931da177e4SLinus Torvaldsconfig CRYPTO_SHA256
94cd12fb90SJonathan Lynch	tristate "SHA224 and SHA256 digest algorithm"
95cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
961da177e4SLinus Torvalds	help
971da177e4SLinus Torvalds	  SHA256 secure hash standard (DFIPS 180-2).
981da177e4SLinus Torvalds
991da177e4SLinus Torvalds	  This version of SHA implements a 256 bit hash with 128 bits of
1001da177e4SLinus Torvalds	  security against collision attacks.
1011da177e4SLinus Torvalds
102cd12fb90SJonathan Lynch          This code also includes SHA-224, a 224 bit hash with 112 bits
103cd12fb90SJonathan Lynch          of security against collision attacks.
104cd12fb90SJonathan Lynch
1051da177e4SLinus Torvaldsconfig CRYPTO_SHA512
1061da177e4SLinus Torvalds	tristate "SHA384 and SHA512 digest algorithms"
107cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1081da177e4SLinus Torvalds	help
1091da177e4SLinus Torvalds	  SHA512 secure hash standard (DFIPS 180-2).
1101da177e4SLinus Torvalds
1111da177e4SLinus Torvalds	  This version of SHA implements a 512 bit hash with 256 bits of
1121da177e4SLinus Torvalds	  security against collision attacks.
1131da177e4SLinus Torvalds
1141da177e4SLinus Torvalds	  This code also includes SHA-384, a 384 bit hash with 192 bits
1151da177e4SLinus Torvalds	  of security against collision attacks.
1161da177e4SLinus Torvalds
1171da177e4SLinus Torvaldsconfig CRYPTO_WP512
1181da177e4SLinus Torvalds	tristate "Whirlpool digest algorithms"
119cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1201da177e4SLinus Torvalds	help
1211da177e4SLinus Torvalds	  Whirlpool hash algorithm 512, 384 and 256-bit hashes
1221da177e4SLinus Torvalds
1231da177e4SLinus Torvalds	  Whirlpool-512 is part of the NESSIE cryptographic primitives.
1241da177e4SLinus Torvalds	  Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
1251da177e4SLinus Torvalds
1261da177e4SLinus Torvalds	  See also:
1271da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
1281da177e4SLinus Torvalds
1291da177e4SLinus Torvaldsconfig CRYPTO_TGR192
1301da177e4SLinus Torvalds	tristate "Tiger digest algorithms"
131cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1321da177e4SLinus Torvalds	help
1331da177e4SLinus Torvalds	  Tiger hash algorithm 192, 160 and 128-bit hashes
1341da177e4SLinus Torvalds
1351da177e4SLinus Torvalds	  Tiger is a hash function optimized for 64-bit processors while
1361da177e4SLinus Torvalds	  still having decent performance on 32-bit processors.
1371da177e4SLinus Torvalds	  Tiger was developed by Ross Anderson and Eli Biham.
1381da177e4SLinus Torvalds
1391da177e4SLinus Torvalds	  See also:
1401da177e4SLinus Torvalds	  <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
1411da177e4SLinus Torvalds
142c494e070SRik Snelconfig CRYPTO_GF128MUL
143c494e070SRik Snel	tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
144c494e070SRik Snel	depends on EXPERIMENTAL
145c494e070SRik Snel	help
146c494e070SRik Snel	  Efficient table driven implementation of multiplications in the
147c494e070SRik Snel	  field GF(2^128).  This is needed by some cypher modes. This
148c494e070SRik Snel	  option will be selected automatically if you select such a
149c494e070SRik Snel	  cipher mode.  Only select this option by hand if you expect to load
150c494e070SRik Snel	  an external module that requires these functions.
151c494e070SRik Snel
152db131ef9SHerbert Xuconfig CRYPTO_ECB
153db131ef9SHerbert Xu	tristate "ECB support"
154db131ef9SHerbert Xu	select CRYPTO_BLKCIPHER
15543518407SHerbert Xu	select CRYPTO_MANAGER
156db131ef9SHerbert Xu	help
157db131ef9SHerbert Xu	  ECB: Electronic CodeBook mode
158db131ef9SHerbert Xu	  This is the simplest block cipher algorithm.  It simply encrypts
159db131ef9SHerbert Xu	  the input block by block.
160db131ef9SHerbert Xu
161db131ef9SHerbert Xuconfig CRYPTO_CBC
162db131ef9SHerbert Xu	tristate "CBC support"
163db131ef9SHerbert Xu	select CRYPTO_BLKCIPHER
16443518407SHerbert Xu	select CRYPTO_MANAGER
165db131ef9SHerbert Xu	help
166db131ef9SHerbert Xu	  CBC: Cipher Block Chaining mode
167db131ef9SHerbert Xu	  This block cipher algorithm is required for IPSec.
168db131ef9SHerbert Xu
16991652be5SDavid Howellsconfig CRYPTO_PCBC
17091652be5SDavid Howells	tristate "PCBC support"
17191652be5SDavid Howells	select CRYPTO_BLKCIPHER
17291652be5SDavid Howells	select CRYPTO_MANAGER
17391652be5SDavid Howells	help
17491652be5SDavid Howells	  PCBC: Propagating Cipher Block Chaining mode
17591652be5SDavid Howells	  This block cipher algorithm is required for RxRPC.
17691652be5SDavid Howells
17764470f1bSRik Snelconfig CRYPTO_LRW
17864470f1bSRik Snel	tristate "LRW support (EXPERIMENTAL)"
17964470f1bSRik Snel	depends on EXPERIMENTAL
18064470f1bSRik Snel	select CRYPTO_BLKCIPHER
18164470f1bSRik Snel	select CRYPTO_MANAGER
18264470f1bSRik Snel	select CRYPTO_GF128MUL
18364470f1bSRik Snel	help
18464470f1bSRik Snel	  LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
18564470f1bSRik Snel	  narrow block cipher mode for dm-crypt.  Use it with cipher
18664470f1bSRik Snel	  specification string aes-lrw-benbi, the key must be 256, 320 or 384.
18764470f1bSRik Snel	  The first 128, 192 or 256 bits in the key are used for AES and the
18864470f1bSRik Snel	  rest is used to tie each cipher block to its logical position.
18964470f1bSRik Snel
190f19f5111SRik Snelconfig CRYPTO_XTS
191f19f5111SRik Snel	tristate "XTS support (EXPERIMENTAL)"
192f19f5111SRik Snel	depends on EXPERIMENTAL
193f19f5111SRik Snel	select CRYPTO_BLKCIPHER
194f19f5111SRik Snel	select CRYPTO_MANAGER
195f19f5111SRik Snel	select CRYPTO_GF128MUL
196f19f5111SRik Snel	help
197f19f5111SRik Snel	  XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
198f19f5111SRik Snel	  key size 256, 384 or 512 bits. This implementation currently
199f19f5111SRik Snel	  can't handle a sectorsize which is not a multiple of 16 bytes.
200f19f5111SRik Snel
20123e353c8SJoy Lattenconfig CRYPTO_CTR
20223e353c8SJoy Latten	tristate "CTR support"
20323e353c8SJoy Latten	select CRYPTO_BLKCIPHER
20423e353c8SJoy Latten	select CRYPTO_MANAGER
20523e353c8SJoy Latten	help
20623e353c8SJoy Latten	  CTR: Counter mode
20723e353c8SJoy Latten	  This block cipher algorithm is required for IPSec.
20823e353c8SJoy Latten
20928db8e3eSMikko Herranenconfig CRYPTO_GCM
21028db8e3eSMikko Herranen	tristate "GCM/GMAC support"
21128db8e3eSMikko Herranen	select CRYPTO_CTR
21228db8e3eSMikko Herranen	select CRYPTO_AEAD
21328db8e3eSMikko Herranen	select CRYPTO_GF128MUL
21428db8e3eSMikko Herranen	help
21528db8e3eSMikko Herranen	  Support for Galois/Counter Mode (GCM) and Galois Message
21628db8e3eSMikko Herranen	  Authentication Code (GMAC). Required for IPSec.
21728db8e3eSMikko Herranen
218124b53d0SHerbert Xuconfig CRYPTO_CRYPTD
219124b53d0SHerbert Xu	tristate "Software async crypto daemon"
220124b53d0SHerbert Xu	select CRYPTO_ABLKCIPHER
221124b53d0SHerbert Xu	select CRYPTO_MANAGER
222124b53d0SHerbert Xu	help
223124b53d0SHerbert Xu	  This is a generic software asynchronous crypto daemon that
224124b53d0SHerbert Xu	  converts an arbitrary synchronous software crypto algorithm
225124b53d0SHerbert Xu	  into an asynchronous algorithm that executes in a kernel thread.
226124b53d0SHerbert Xu
2271da177e4SLinus Torvaldsconfig CRYPTO_DES
2281da177e4SLinus Torvalds	tristate "DES and Triple DES EDE cipher algorithms"
229cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2301da177e4SLinus Torvalds	help
2311da177e4SLinus Torvalds	  DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
2321da177e4SLinus Torvalds
23390831639SDavid Howellsconfig CRYPTO_FCRYPT
23490831639SDavid Howells	tristate "FCrypt cipher algorithm"
23590831639SDavid Howells	select CRYPTO_ALGAPI
23690831639SDavid Howells	select CRYPTO_BLKCIPHER
23790831639SDavid Howells	help
23890831639SDavid Howells	  FCrypt algorithm used by RxRPC.
23990831639SDavid Howells
2401da177e4SLinus Torvaldsconfig CRYPTO_BLOWFISH
2411da177e4SLinus Torvalds	tristate "Blowfish cipher algorithm"
242cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2431da177e4SLinus Torvalds	help
2441da177e4SLinus Torvalds	  Blowfish cipher algorithm, by Bruce Schneier.
2451da177e4SLinus Torvalds
2461da177e4SLinus Torvalds	  This is a variable key length cipher which can use keys from 32
2471da177e4SLinus Torvalds	  bits to 448 bits in length.  It's fast, simple and specifically
2481da177e4SLinus Torvalds	  designed for use on "large microprocessors".
2491da177e4SLinus Torvalds
2501da177e4SLinus Torvalds	  See also:
2511da177e4SLinus Torvalds	  <http://www.schneier.com/blowfish.html>
2521da177e4SLinus Torvalds
2531da177e4SLinus Torvaldsconfig CRYPTO_TWOFISH
2541da177e4SLinus Torvalds	tristate "Twofish cipher algorithm"
255cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2562729bb42SJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
2571da177e4SLinus Torvalds	help
2581da177e4SLinus Torvalds	  Twofish cipher algorithm.
2591da177e4SLinus Torvalds
2601da177e4SLinus Torvalds	  Twofish was submitted as an AES (Advanced Encryption Standard)
2611da177e4SLinus Torvalds	  candidate cipher by researchers at CounterPane Systems.  It is a
2621da177e4SLinus Torvalds	  16 round block cipher supporting key sizes of 128, 192, and 256
2631da177e4SLinus Torvalds	  bits.
2641da177e4SLinus Torvalds
2651da177e4SLinus Torvalds	  See also:
2661da177e4SLinus Torvalds	  <http://www.schneier.com/twofish.html>
2671da177e4SLinus Torvalds
2682729bb42SJoachim Fritschiconfig CRYPTO_TWOFISH_COMMON
2692729bb42SJoachim Fritschi	tristate
2702729bb42SJoachim Fritschi	help
2712729bb42SJoachim Fritschi	  Common parts of the Twofish cipher algorithm shared by the
2722729bb42SJoachim Fritschi	  generic c and the assembler implementations.
2732729bb42SJoachim Fritschi
274b9f535ffSJoachim Fritschiconfig CRYPTO_TWOFISH_586
275b9f535ffSJoachim Fritschi	tristate "Twofish cipher algorithms (i586)"
276cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && !64BIT
277cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
278b9f535ffSJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
279b9f535ffSJoachim Fritschi	help
280b9f535ffSJoachim Fritschi	  Twofish cipher algorithm.
281b9f535ffSJoachim Fritschi
282b9f535ffSJoachim Fritschi	  Twofish was submitted as an AES (Advanced Encryption Standard)
283b9f535ffSJoachim Fritschi	  candidate cipher by researchers at CounterPane Systems.  It is a
284b9f535ffSJoachim Fritschi	  16 round block cipher supporting key sizes of 128, 192, and 256
285b9f535ffSJoachim Fritschi	  bits.
286b9f535ffSJoachim Fritschi
287b9f535ffSJoachim Fritschi	  See also:
288b9f535ffSJoachim Fritschi	  <http://www.schneier.com/twofish.html>
289b9f535ffSJoachim Fritschi
290eaf44088SJoachim Fritschiconfig CRYPTO_TWOFISH_X86_64
291eaf44088SJoachim Fritschi	tristate "Twofish cipher algorithm (x86_64)"
292cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && 64BIT
293cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
294eaf44088SJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
295eaf44088SJoachim Fritschi	help
296eaf44088SJoachim Fritschi	  Twofish cipher algorithm (x86_64).
297eaf44088SJoachim Fritschi
298eaf44088SJoachim Fritschi	  Twofish was submitted as an AES (Advanced Encryption Standard)
299eaf44088SJoachim Fritschi	  candidate cipher by researchers at CounterPane Systems.  It is a
300eaf44088SJoachim Fritschi	  16 round block cipher supporting key sizes of 128, 192, and 256
301eaf44088SJoachim Fritschi	  bits.
302eaf44088SJoachim Fritschi
303eaf44088SJoachim Fritschi	  See also:
304eaf44088SJoachim Fritschi	  <http://www.schneier.com/twofish.html>
305eaf44088SJoachim Fritschi
3061da177e4SLinus Torvaldsconfig CRYPTO_SERPENT
3071da177e4SLinus Torvalds	tristate "Serpent cipher algorithm"
308cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3091da177e4SLinus Torvalds	help
3101da177e4SLinus Torvalds	  Serpent cipher algorithm, by Anderson, Biham & Knudsen.
3111da177e4SLinus Torvalds
3121da177e4SLinus Torvalds	  Keys are allowed to be from 0 to 256 bits in length, in steps
3131da177e4SLinus Torvalds	  of 8 bits.  Also includes the 'Tnepres' algorithm, a reversed
3143dde6ad8SDavid Sterba	  variant of Serpent for compatibility with old kerneli.org code.
3151da177e4SLinus Torvalds
3161da177e4SLinus Torvalds	  See also:
3171da177e4SLinus Torvalds	  <http://www.cl.cam.ac.uk/~rja14/serpent.html>
3181da177e4SLinus Torvalds
3191da177e4SLinus Torvaldsconfig CRYPTO_AES
3201da177e4SLinus Torvalds	tristate "AES cipher algorithms"
321cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3221da177e4SLinus Torvalds	help
3231da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
3241da177e4SLinus Torvalds	  algorithm.
3251da177e4SLinus Torvalds
3261da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
3271da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
3281da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
3291da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
3301da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
3311da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
3321da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
3331da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
3341da177e4SLinus Torvalds
3351da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
3361da177e4SLinus Torvalds
3371da177e4SLinus Torvalds	  See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
3381da177e4SLinus Torvalds
3391da177e4SLinus Torvaldsconfig CRYPTO_AES_586
3401da177e4SLinus Torvalds	tristate "AES cipher algorithms (i586)"
341cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && !64BIT
342cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3435157dea8SSebastian Siewior	select CRYPTO_AES
3441da177e4SLinus Torvalds	help
3451da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
3461da177e4SLinus Torvalds	  algorithm.
3471da177e4SLinus Torvalds
3481da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
3491da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
3501da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
3511da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
3521da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
3531da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
3541da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
3551da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
3561da177e4SLinus Torvalds
3571da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
3581da177e4SLinus Torvalds
3591da177e4SLinus Torvalds	  See <http://csrc.nist.gov/encryption/aes/> for more information.
3601da177e4SLinus Torvalds
361a2a892a2SAndreas Steinmetzconfig CRYPTO_AES_X86_64
362a2a892a2SAndreas Steinmetz	tristate "AES cipher algorithms (x86_64)"
363cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && 64BIT
364cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
36581190b32SSebastian Siewior	select CRYPTO_AES
366a2a892a2SAndreas Steinmetz	help
367a2a892a2SAndreas Steinmetz	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
368a2a892a2SAndreas Steinmetz	  algorithm.
369a2a892a2SAndreas Steinmetz
370a2a892a2SAndreas Steinmetz	  Rijndael appears to be consistently a very good performer in
371a2a892a2SAndreas Steinmetz	  both hardware and software across a wide range of computing
372a2a892a2SAndreas Steinmetz	  environments regardless of its use in feedback or non-feedback
373a2a892a2SAndreas Steinmetz	  modes. Its key setup time is excellent, and its key agility is
374a2a892a2SAndreas Steinmetz	  good. Rijndael's very low memory requirements make it very well
375a2a892a2SAndreas Steinmetz	  suited for restricted-space environments, in which it also
376a2a892a2SAndreas Steinmetz	  demonstrates excellent performance. Rijndael's operations are
377a2a892a2SAndreas Steinmetz	  among the easiest to defend against power and timing attacks.
378a2a892a2SAndreas Steinmetz
379a2a892a2SAndreas Steinmetz	  The AES specifies three key sizes: 128, 192 and 256 bits
380a2a892a2SAndreas Steinmetz
381a2a892a2SAndreas Steinmetz	  See <http://csrc.nist.gov/encryption/aes/> for more information.
382a2a892a2SAndreas Steinmetz
3831da177e4SLinus Torvaldsconfig CRYPTO_CAST5
3841da177e4SLinus Torvalds	tristate "CAST5 (CAST-128) cipher algorithm"
385cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3861da177e4SLinus Torvalds	help
3871da177e4SLinus Torvalds	  The CAST5 encryption algorithm (synonymous with CAST-128) is
3881da177e4SLinus Torvalds	  described in RFC2144.
3891da177e4SLinus Torvalds
3901da177e4SLinus Torvaldsconfig CRYPTO_CAST6
3911da177e4SLinus Torvalds	tristate "CAST6 (CAST-256) cipher algorithm"
392cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3931da177e4SLinus Torvalds	help
3941da177e4SLinus Torvalds	  The CAST6 encryption algorithm (synonymous with CAST-256) is
3951da177e4SLinus Torvalds	  described in RFC2612.
3961da177e4SLinus Torvalds
3971da177e4SLinus Torvaldsconfig CRYPTO_TEA
398fb4f10edSAaron Grothe	tristate "TEA, XTEA and XETA cipher algorithms"
399cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4001da177e4SLinus Torvalds	help
4011da177e4SLinus Torvalds	  TEA cipher algorithm.
4021da177e4SLinus Torvalds
4031da177e4SLinus Torvalds	  Tiny Encryption Algorithm is a simple cipher that uses
4041da177e4SLinus Torvalds	  many rounds for security.  It is very fast and uses
4051da177e4SLinus Torvalds	  little memory.
4061da177e4SLinus Torvalds
4071da177e4SLinus Torvalds	  Xtendend Tiny Encryption Algorithm is a modification to
4081da177e4SLinus Torvalds	  the TEA algorithm to address a potential key weakness
4091da177e4SLinus Torvalds	  in the TEA algorithm.
4101da177e4SLinus Torvalds
411fb4f10edSAaron Grothe	  Xtendend Encryption Tiny Algorithm is a mis-implementation
412fb4f10edSAaron Grothe	  of the XTEA algorithm for compatibility purposes.
413fb4f10edSAaron Grothe
4141da177e4SLinus Torvaldsconfig CRYPTO_ARC4
4151da177e4SLinus Torvalds	tristate "ARC4 cipher algorithm"
416cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4171da177e4SLinus Torvalds	help
4181da177e4SLinus Torvalds	  ARC4 cipher algorithm.
4191da177e4SLinus Torvalds
4201da177e4SLinus Torvalds	  ARC4 is a stream cipher using keys ranging from 8 bits to 2048
4211da177e4SLinus Torvalds	  bits in length.  This algorithm is required for driver-based
4221da177e4SLinus Torvalds	  WEP, but it should not be for other purposes because of the
4231da177e4SLinus Torvalds	  weakness of the algorithm.
4241da177e4SLinus Torvalds
4251da177e4SLinus Torvaldsconfig CRYPTO_KHAZAD
4261da177e4SLinus Torvalds	tristate "Khazad cipher algorithm"
427cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4281da177e4SLinus Torvalds	help
4291da177e4SLinus Torvalds	  Khazad cipher algorithm.
4301da177e4SLinus Torvalds
4311da177e4SLinus Torvalds	  Khazad was a finalist in the initial NESSIE competition.  It is
4321da177e4SLinus Torvalds	  an algorithm optimized for 64-bit processors with good performance
4331da177e4SLinus Torvalds	  on 32-bit processors.  Khazad uses an 128 bit key size.
4341da177e4SLinus Torvalds
4351da177e4SLinus Torvalds	  See also:
4361da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
4371da177e4SLinus Torvalds
4381da177e4SLinus Torvaldsconfig CRYPTO_ANUBIS
4391da177e4SLinus Torvalds	tristate "Anubis cipher algorithm"
440cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4411da177e4SLinus Torvalds	help
4421da177e4SLinus Torvalds	  Anubis cipher algorithm.
4431da177e4SLinus Torvalds
4441da177e4SLinus Torvalds	  Anubis is a variable key length cipher which can use keys from
4451da177e4SLinus Torvalds	  128 bits to 320 bits in length.  It was evaluated as a entrant
4461da177e4SLinus Torvalds	  in the NESSIE competition.
4471da177e4SLinus Torvalds
4481da177e4SLinus Torvalds	  See also:
4491da177e4SLinus Torvalds	  <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
4501da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
4511da177e4SLinus Torvalds
452e2ee95b8SHye-Shik Changconfig CRYPTO_SEED
453e2ee95b8SHye-Shik Chang	tristate "SEED cipher algorithm"
454e2ee95b8SHye-Shik Chang	select CRYPTO_ALGAPI
455e2ee95b8SHye-Shik Chang	help
456e2ee95b8SHye-Shik Chang	  SEED cipher algorithm (RFC4269).
457e2ee95b8SHye-Shik Chang
458e2ee95b8SHye-Shik Chang	  SEED is a 128-bit symmetric key block cipher that has been
459e2ee95b8SHye-Shik Chang	  developed by KISA (Korea Information Security Agency) as a
460e2ee95b8SHye-Shik Chang	  national standard encryption algorithm of the Republic of Korea.
461e2ee95b8SHye-Shik Chang	  It is a 16 round block cipher with the key size of 128 bit.
462e2ee95b8SHye-Shik Chang
463e2ee95b8SHye-Shik Chang	  See also:
464e2ee95b8SHye-Shik Chang	  <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
465e2ee95b8SHye-Shik Chang
4662407d608STan Swee Hengconfig CRYPTO_SALSA20
4672407d608STan Swee Heng	tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)"
4682407d608STan Swee Heng	depends on EXPERIMENTAL
4692407d608STan Swee Heng	select CRYPTO_BLKCIPHER
4702407d608STan Swee Heng	help
4712407d608STan Swee Heng	  Salsa20 stream cipher algorithm.
4722407d608STan Swee Heng
4732407d608STan Swee Heng	  Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
4742407d608STan Swee Heng	  Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
4752407d608STan Swee Heng
4762407d608STan Swee Heng	  The Salsa20 stream cipher algorithm is designed by Daniel J.
4772407d608STan Swee Heng	  Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
4781da177e4SLinus Torvalds
4791da177e4SLinus Torvaldsconfig CRYPTO_DEFLATE
4801da177e4SLinus Torvalds	tristate "Deflate compression algorithm"
481cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4821da177e4SLinus Torvalds	select ZLIB_INFLATE
4831da177e4SLinus Torvalds	select ZLIB_DEFLATE
4841da177e4SLinus Torvalds	help
4851da177e4SLinus Torvalds	  This is the Deflate algorithm (RFC1951), specified for use in
4861da177e4SLinus Torvalds	  IPSec with the IPCOMP protocol (RFC3173, RFC2394).
4871da177e4SLinus Torvalds
4881da177e4SLinus Torvalds	  You will most probably want this if using IPSec.
4891da177e4SLinus Torvalds
4901da177e4SLinus Torvaldsconfig CRYPTO_MICHAEL_MIC
4911da177e4SLinus Torvalds	tristate "Michael MIC keyed digest algorithm"
492cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4931da177e4SLinus Torvalds	help
4941da177e4SLinus Torvalds	  Michael MIC is used for message integrity protection in TKIP
4951da177e4SLinus Torvalds	  (IEEE 802.11i). This algorithm is required for TKIP, but it
4961da177e4SLinus Torvalds	  should not be used for other purposes because of the weakness
4971da177e4SLinus Torvalds	  of the algorithm.
4981da177e4SLinus Torvalds
4991da177e4SLinus Torvaldsconfig CRYPTO_CRC32C
5001da177e4SLinus Torvalds	tristate "CRC32c CRC algorithm"
501cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
5021da177e4SLinus Torvalds	select LIBCRC32C
5031da177e4SLinus Torvalds	help
5041da177e4SLinus Torvalds	  Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
5051da177e4SLinus Torvalds	  by iSCSI for header and data digests and by others.
5061da177e4SLinus Torvalds	  See Castagnoli93.  This implementation uses lib/libcrc32c.
5071da177e4SLinus Torvalds          Module will be crc32c.
5081da177e4SLinus Torvalds
50904ac7db3SNoriaki TAKAMIYAconfig CRYPTO_CAMELLIA
51004ac7db3SNoriaki TAKAMIYA	tristate "Camellia cipher algorithms"
51104ac7db3SNoriaki TAKAMIYA	depends on CRYPTO
51204ac7db3SNoriaki TAKAMIYA	select CRYPTO_ALGAPI
51304ac7db3SNoriaki TAKAMIYA	help
51404ac7db3SNoriaki TAKAMIYA	  Camellia cipher algorithms module.
51504ac7db3SNoriaki TAKAMIYA
51604ac7db3SNoriaki TAKAMIYA	  Camellia is a symmetric key block cipher developed jointly
51704ac7db3SNoriaki TAKAMIYA	  at NTT and Mitsubishi Electric Corporation.
51804ac7db3SNoriaki TAKAMIYA
51904ac7db3SNoriaki TAKAMIYA	  The Camellia specifies three key sizes: 128, 192 and 256 bits.
52004ac7db3SNoriaki TAKAMIYA
52104ac7db3SNoriaki TAKAMIYA	  See also:
52204ac7db3SNoriaki TAKAMIYA	  <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
52304ac7db3SNoriaki TAKAMIYA
5241da177e4SLinus Torvaldsconfig CRYPTO_TEST
5251da177e4SLinus Torvalds	tristate "Testing module"
526cce9e06dSHerbert Xu	depends on m
527cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
5281da177e4SLinus Torvalds	help
5291da177e4SLinus Torvalds	  Quick & dirty crypto test module.
5301da177e4SLinus Torvalds
5313c09f17cSHerbert Xuconfig CRYPTO_AUTHENC
5323c09f17cSHerbert Xu	tristate "Authenc support"
5333c09f17cSHerbert Xu	select CRYPTO_AEAD
5343c09f17cSHerbert Xu	select CRYPTO_MANAGER
5353c09f17cSHerbert Xu	help
5363c09f17cSHerbert Xu	  Authenc: Combined mode wrapper for IPsec.
5373c09f17cSHerbert Xu	  This is required for IPSec.
5383c09f17cSHerbert Xu
539*0b77abb3SZoltan Sogorconfig CRYPTO_LZO
540*0b77abb3SZoltan Sogor	tristate "LZO compression algorithm"
541*0b77abb3SZoltan Sogor	select CRYPTO_ALGAPI
542*0b77abb3SZoltan Sogor	select LZO_COMPRESS
543*0b77abb3SZoltan Sogor	select LZO_DECOMPRESS
544*0b77abb3SZoltan Sogor	help
545*0b77abb3SZoltan Sogor	  This is the LZO algorithm.
546*0b77abb3SZoltan Sogor
5471da177e4SLinus Torvaldssource "drivers/crypto/Kconfig"
5481da177e4SLinus Torvalds
549cce9e06dSHerbert Xuendif	# if CRYPTO
550