xref: /linux/crypto/Kconfig (revision 653ebd9c8510a7d647ed23e66e1338f848ebdbab)
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
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
35055bcee3SHerbert Xuconfig CRYPTO_HASH
36055bcee3SHerbert Xu	tristate
37055bcee3SHerbert Xu	select CRYPTO_ALGAPI
38055bcee3SHerbert Xu
392b8c19dbSHerbert Xuconfig CRYPTO_MANAGER
402b8c19dbSHerbert Xu	tristate "Cryptographic algorithm manager"
412b8c19dbSHerbert Xu	select CRYPTO_ALGAPI
422b8c19dbSHerbert Xu	help
432b8c19dbSHerbert Xu	  Create default cryptographic template instantiations such as
442b8c19dbSHerbert Xu	  cbc(aes).
452b8c19dbSHerbert Xu
461da177e4SLinus Torvaldsconfig CRYPTO_HMAC
478425165dSHerbert Xu	tristate "HMAC support"
480796ae06SHerbert Xu	select CRYPTO_HASH
4943518407SHerbert Xu	select CRYPTO_MANAGER
501da177e4SLinus Torvalds	help
511da177e4SLinus Torvalds	  HMAC: Keyed-Hashing for Message Authentication (RFC2104).
521da177e4SLinus Torvalds	  This is required for IPSec.
531da177e4SLinus Torvalds
54333b0d7eSKazunori MIYAZAWAconfig CRYPTO_XCBC
55333b0d7eSKazunori MIYAZAWA	tristate "XCBC support"
56333b0d7eSKazunori MIYAZAWA	depends on EXPERIMENTAL
57333b0d7eSKazunori MIYAZAWA	select CRYPTO_HASH
58333b0d7eSKazunori MIYAZAWA	select CRYPTO_MANAGER
59333b0d7eSKazunori MIYAZAWA	help
60333b0d7eSKazunori MIYAZAWA	  XCBC: Keyed-Hashing with encryption algorithm
61333b0d7eSKazunori MIYAZAWA		http://www.ietf.org/rfc/rfc3566.txt
62333b0d7eSKazunori MIYAZAWA		http://csrc.nist.gov/encryption/modes/proposedmodes/
63333b0d7eSKazunori MIYAZAWA		 xcbc-mac/xcbc-mac-spec.pdf
64333b0d7eSKazunori MIYAZAWA
651da177e4SLinus Torvaldsconfig CRYPTO_NULL
661da177e4SLinus Torvalds	tristate "Null algorithms"
67cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
681da177e4SLinus Torvalds	help
691da177e4SLinus Torvalds	  These are 'Null' algorithms, used by IPsec, which do nothing.
701da177e4SLinus Torvalds
711da177e4SLinus Torvaldsconfig CRYPTO_MD4
721da177e4SLinus Torvalds	tristate "MD4 digest algorithm"
73cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
741da177e4SLinus Torvalds	help
751da177e4SLinus Torvalds	  MD4 message digest algorithm (RFC1320).
761da177e4SLinus Torvalds
771da177e4SLinus Torvaldsconfig CRYPTO_MD5
781da177e4SLinus Torvalds	tristate "MD5 digest algorithm"
79cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
801da177e4SLinus Torvalds	help
811da177e4SLinus Torvalds	  MD5 message digest algorithm (RFC1321).
821da177e4SLinus Torvalds
831da177e4SLinus Torvaldsconfig CRYPTO_SHA1
841da177e4SLinus Torvalds	tristate "SHA1 digest algorithm"
85cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
861da177e4SLinus Torvalds	help
871da177e4SLinus Torvalds	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
881da177e4SLinus Torvalds
891da177e4SLinus Torvaldsconfig CRYPTO_SHA256
90cd12fb90SJonathan Lynch	tristate "SHA224 and SHA256 digest algorithm"
91cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
921da177e4SLinus Torvalds	help
931da177e4SLinus Torvalds	  SHA256 secure hash standard (DFIPS 180-2).
941da177e4SLinus Torvalds
951da177e4SLinus Torvalds	  This version of SHA implements a 256 bit hash with 128 bits of
961da177e4SLinus Torvalds	  security against collision attacks.
971da177e4SLinus Torvalds
98cd12fb90SJonathan Lynch          This code also includes SHA-224, a 224 bit hash with 112 bits
99cd12fb90SJonathan Lynch          of security against collision attacks.
100cd12fb90SJonathan Lynch
1011da177e4SLinus Torvaldsconfig CRYPTO_SHA512
1021da177e4SLinus Torvalds	tristate "SHA384 and SHA512 digest algorithms"
103cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1041da177e4SLinus Torvalds	help
1051da177e4SLinus Torvalds	  SHA512 secure hash standard (DFIPS 180-2).
1061da177e4SLinus Torvalds
1071da177e4SLinus Torvalds	  This version of SHA implements a 512 bit hash with 256 bits of
1081da177e4SLinus Torvalds	  security against collision attacks.
1091da177e4SLinus Torvalds
1101da177e4SLinus Torvalds	  This code also includes SHA-384, a 384 bit hash with 192 bits
1111da177e4SLinus Torvalds	  of security against collision attacks.
1121da177e4SLinus Torvalds
1131da177e4SLinus Torvaldsconfig CRYPTO_WP512
1141da177e4SLinus Torvalds	tristate "Whirlpool digest algorithms"
115cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1161da177e4SLinus Torvalds	help
1171da177e4SLinus Torvalds	  Whirlpool hash algorithm 512, 384 and 256-bit hashes
1181da177e4SLinus Torvalds
1191da177e4SLinus Torvalds	  Whirlpool-512 is part of the NESSIE cryptographic primitives.
1201da177e4SLinus Torvalds	  Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
1211da177e4SLinus Torvalds
1221da177e4SLinus Torvalds	  See also:
1231da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
1241da177e4SLinus Torvalds
1251da177e4SLinus Torvaldsconfig CRYPTO_TGR192
1261da177e4SLinus Torvalds	tristate "Tiger digest algorithms"
127cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1281da177e4SLinus Torvalds	help
1291da177e4SLinus Torvalds	  Tiger hash algorithm 192, 160 and 128-bit hashes
1301da177e4SLinus Torvalds
1311da177e4SLinus Torvalds	  Tiger is a hash function optimized for 64-bit processors while
1321da177e4SLinus Torvalds	  still having decent performance on 32-bit processors.
1331da177e4SLinus Torvalds	  Tiger was developed by Ross Anderson and Eli Biham.
1341da177e4SLinus Torvalds
1351da177e4SLinus Torvalds	  See also:
1361da177e4SLinus Torvalds	  <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
1371da177e4SLinus Torvalds
138c494e070SRik Snelconfig CRYPTO_GF128MUL
139c494e070SRik Snel	tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
140c494e070SRik Snel	depends on EXPERIMENTAL
141c494e070SRik Snel	help
142c494e070SRik Snel	  Efficient table driven implementation of multiplications in the
143c494e070SRik Snel	  field GF(2^128).  This is needed by some cypher modes. This
144c494e070SRik Snel	  option will be selected automatically if you select such a
145c494e070SRik Snel	  cipher mode.  Only select this option by hand if you expect to load
146c494e070SRik Snel	  an external module that requires these functions.
147c494e070SRik Snel
148db131ef9SHerbert Xuconfig CRYPTO_ECB
149db131ef9SHerbert Xu	tristate "ECB support"
150db131ef9SHerbert Xu	select CRYPTO_BLKCIPHER
15143518407SHerbert Xu	select CRYPTO_MANAGER
152db131ef9SHerbert Xu	help
153db131ef9SHerbert Xu	  ECB: Electronic CodeBook mode
154db131ef9SHerbert Xu	  This is the simplest block cipher algorithm.  It simply encrypts
155db131ef9SHerbert Xu	  the input block by block.
156db131ef9SHerbert Xu
157db131ef9SHerbert Xuconfig CRYPTO_CBC
158db131ef9SHerbert Xu	tristate "CBC support"
159db131ef9SHerbert Xu	select CRYPTO_BLKCIPHER
16043518407SHerbert Xu	select CRYPTO_MANAGER
161db131ef9SHerbert Xu	help
162db131ef9SHerbert Xu	  CBC: Cipher Block Chaining mode
163db131ef9SHerbert Xu	  This block cipher algorithm is required for IPSec.
164db131ef9SHerbert Xu
16591652be5SDavid Howellsconfig CRYPTO_PCBC
16691652be5SDavid Howells	tristate "PCBC support"
16791652be5SDavid Howells	select CRYPTO_BLKCIPHER
16891652be5SDavid Howells	select CRYPTO_MANAGER
16991652be5SDavid Howells	help
17091652be5SDavid Howells	  PCBC: Propagating Cipher Block Chaining mode
17191652be5SDavid Howells	  This block cipher algorithm is required for RxRPC.
17291652be5SDavid Howells
17364470f1bSRik Snelconfig CRYPTO_LRW
17464470f1bSRik Snel	tristate "LRW support (EXPERIMENTAL)"
17564470f1bSRik Snel	depends on EXPERIMENTAL
17664470f1bSRik Snel	select CRYPTO_BLKCIPHER
17764470f1bSRik Snel	select CRYPTO_MANAGER
17864470f1bSRik Snel	select CRYPTO_GF128MUL
17964470f1bSRik Snel	help
18064470f1bSRik Snel	  LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
18164470f1bSRik Snel	  narrow block cipher mode for dm-crypt.  Use it with cipher
18264470f1bSRik Snel	  specification string aes-lrw-benbi, the key must be 256, 320 or 384.
18364470f1bSRik Snel	  The first 128, 192 or 256 bits in the key are used for AES and the
18464470f1bSRik Snel	  rest is used to tie each cipher block to its logical position.
18564470f1bSRik Snel
186f19f5111SRik Snelconfig CRYPTO_XTS
187f19f5111SRik Snel	tristate "XTS support (EXPERIMENTAL)"
188f19f5111SRik Snel	depends on EXPERIMENTAL
189f19f5111SRik Snel	select CRYPTO_BLKCIPHER
190f19f5111SRik Snel	select CRYPTO_MANAGER
191f19f5111SRik Snel	select CRYPTO_GF128MUL
192f19f5111SRik Snel	help
193f19f5111SRik Snel	  XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
194f19f5111SRik Snel	  key size 256, 384 or 512 bits. This implementation currently
195f19f5111SRik Snel	  can't handle a sectorsize which is not a multiple of 16 bytes.
196f19f5111SRik Snel
19723e353c8SJoy Lattenconfig CRYPTO_CTR
19823e353c8SJoy Latten	tristate "CTR support"
19923e353c8SJoy Latten	select CRYPTO_BLKCIPHER
20023e353c8SJoy Latten	select CRYPTO_MANAGER
20123e353c8SJoy Latten	help
20223e353c8SJoy Latten	  CTR: Counter mode
20323e353c8SJoy Latten	  This block cipher algorithm is required for IPSec.
20423e353c8SJoy Latten
20528db8e3eSMikko Herranenconfig CRYPTO_GCM
20628db8e3eSMikko Herranen	tristate "GCM/GMAC support"
20728db8e3eSMikko Herranen	select CRYPTO_CTR
20828db8e3eSMikko Herranen	select CRYPTO_AEAD
20928db8e3eSMikko Herranen	select CRYPTO_GF128MUL
21028db8e3eSMikko Herranen	help
21128db8e3eSMikko Herranen	  Support for Galois/Counter Mode (GCM) and Galois Message
21228db8e3eSMikko Herranen	  Authentication Code (GMAC). Required for IPSec.
21328db8e3eSMikko Herranen
214124b53d0SHerbert Xuconfig CRYPTO_CRYPTD
215124b53d0SHerbert Xu	tristate "Software async crypto daemon"
216*653ebd9cSHerbert Xu	select CRYPTO_BLKCIPHER
217124b53d0SHerbert Xu	select CRYPTO_MANAGER
218124b53d0SHerbert Xu	help
219124b53d0SHerbert Xu	  This is a generic software asynchronous crypto daemon that
220124b53d0SHerbert Xu	  converts an arbitrary synchronous software crypto algorithm
221124b53d0SHerbert Xu	  into an asynchronous algorithm that executes in a kernel thread.
222124b53d0SHerbert Xu
2231da177e4SLinus Torvaldsconfig CRYPTO_DES
2241da177e4SLinus Torvalds	tristate "DES and Triple DES EDE cipher algorithms"
225cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2261da177e4SLinus Torvalds	help
2271da177e4SLinus Torvalds	  DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
2281da177e4SLinus Torvalds
22990831639SDavid Howellsconfig CRYPTO_FCRYPT
23090831639SDavid Howells	tristate "FCrypt cipher algorithm"
23190831639SDavid Howells	select CRYPTO_ALGAPI
23290831639SDavid Howells	select CRYPTO_BLKCIPHER
23390831639SDavid Howells	help
23490831639SDavid Howells	  FCrypt algorithm used by RxRPC.
23590831639SDavid Howells
2361da177e4SLinus Torvaldsconfig CRYPTO_BLOWFISH
2371da177e4SLinus Torvalds	tristate "Blowfish cipher algorithm"
238cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2391da177e4SLinus Torvalds	help
2401da177e4SLinus Torvalds	  Blowfish cipher algorithm, by Bruce Schneier.
2411da177e4SLinus Torvalds
2421da177e4SLinus Torvalds	  This is a variable key length cipher which can use keys from 32
2431da177e4SLinus Torvalds	  bits to 448 bits in length.  It's fast, simple and specifically
2441da177e4SLinus Torvalds	  designed for use on "large microprocessors".
2451da177e4SLinus Torvalds
2461da177e4SLinus Torvalds	  See also:
2471da177e4SLinus Torvalds	  <http://www.schneier.com/blowfish.html>
2481da177e4SLinus Torvalds
2491da177e4SLinus Torvaldsconfig CRYPTO_TWOFISH
2501da177e4SLinus Torvalds	tristate "Twofish cipher algorithm"
251cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2522729bb42SJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
2531da177e4SLinus Torvalds	help
2541da177e4SLinus Torvalds	  Twofish cipher algorithm.
2551da177e4SLinus Torvalds
2561da177e4SLinus Torvalds	  Twofish was submitted as an AES (Advanced Encryption Standard)
2571da177e4SLinus Torvalds	  candidate cipher by researchers at CounterPane Systems.  It is a
2581da177e4SLinus Torvalds	  16 round block cipher supporting key sizes of 128, 192, and 256
2591da177e4SLinus Torvalds	  bits.
2601da177e4SLinus Torvalds
2611da177e4SLinus Torvalds	  See also:
2621da177e4SLinus Torvalds	  <http://www.schneier.com/twofish.html>
2631da177e4SLinus Torvalds
2642729bb42SJoachim Fritschiconfig CRYPTO_TWOFISH_COMMON
2652729bb42SJoachim Fritschi	tristate
2662729bb42SJoachim Fritschi	help
2672729bb42SJoachim Fritschi	  Common parts of the Twofish cipher algorithm shared by the
2682729bb42SJoachim Fritschi	  generic c and the assembler implementations.
2692729bb42SJoachim Fritschi
270b9f535ffSJoachim Fritschiconfig CRYPTO_TWOFISH_586
271b9f535ffSJoachim Fritschi	tristate "Twofish cipher algorithms (i586)"
272cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && !64BIT
273cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
274b9f535ffSJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
275b9f535ffSJoachim Fritschi	help
276b9f535ffSJoachim Fritschi	  Twofish cipher algorithm.
277b9f535ffSJoachim Fritschi
278b9f535ffSJoachim Fritschi	  Twofish was submitted as an AES (Advanced Encryption Standard)
279b9f535ffSJoachim Fritschi	  candidate cipher by researchers at CounterPane Systems.  It is a
280b9f535ffSJoachim Fritschi	  16 round block cipher supporting key sizes of 128, 192, and 256
281b9f535ffSJoachim Fritschi	  bits.
282b9f535ffSJoachim Fritschi
283b9f535ffSJoachim Fritschi	  See also:
284b9f535ffSJoachim Fritschi	  <http://www.schneier.com/twofish.html>
285b9f535ffSJoachim Fritschi
286eaf44088SJoachim Fritschiconfig CRYPTO_TWOFISH_X86_64
287eaf44088SJoachim Fritschi	tristate "Twofish cipher algorithm (x86_64)"
288cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && 64BIT
289cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
290eaf44088SJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
291eaf44088SJoachim Fritschi	help
292eaf44088SJoachim Fritschi	  Twofish cipher algorithm (x86_64).
293eaf44088SJoachim Fritschi
294eaf44088SJoachim Fritschi	  Twofish was submitted as an AES (Advanced Encryption Standard)
295eaf44088SJoachim Fritschi	  candidate cipher by researchers at CounterPane Systems.  It is a
296eaf44088SJoachim Fritschi	  16 round block cipher supporting key sizes of 128, 192, and 256
297eaf44088SJoachim Fritschi	  bits.
298eaf44088SJoachim Fritschi
299eaf44088SJoachim Fritschi	  See also:
300eaf44088SJoachim Fritschi	  <http://www.schneier.com/twofish.html>
301eaf44088SJoachim Fritschi
3021da177e4SLinus Torvaldsconfig CRYPTO_SERPENT
3031da177e4SLinus Torvalds	tristate "Serpent cipher algorithm"
304cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3051da177e4SLinus Torvalds	help
3061da177e4SLinus Torvalds	  Serpent cipher algorithm, by Anderson, Biham & Knudsen.
3071da177e4SLinus Torvalds
3081da177e4SLinus Torvalds	  Keys are allowed to be from 0 to 256 bits in length, in steps
3091da177e4SLinus Torvalds	  of 8 bits.  Also includes the 'Tnepres' algorithm, a reversed
3103dde6ad8SDavid Sterba	  variant of Serpent for compatibility with old kerneli.org code.
3111da177e4SLinus Torvalds
3121da177e4SLinus Torvalds	  See also:
3131da177e4SLinus Torvalds	  <http://www.cl.cam.ac.uk/~rja14/serpent.html>
3141da177e4SLinus Torvalds
3151da177e4SLinus Torvaldsconfig CRYPTO_AES
3161da177e4SLinus Torvalds	tristate "AES cipher algorithms"
317cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3181da177e4SLinus Torvalds	help
3191da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
3201da177e4SLinus Torvalds	  algorithm.
3211da177e4SLinus Torvalds
3221da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
3231da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
3241da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
3251da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
3261da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
3271da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
3281da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
3291da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
3301da177e4SLinus Torvalds
3311da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
3321da177e4SLinus Torvalds
3331da177e4SLinus Torvalds	  See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
3341da177e4SLinus Torvalds
3351da177e4SLinus Torvaldsconfig CRYPTO_AES_586
3361da177e4SLinus Torvalds	tristate "AES cipher algorithms (i586)"
337cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && !64BIT
338cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3395157dea8SSebastian Siewior	select CRYPTO_AES
3401da177e4SLinus Torvalds	help
3411da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
3421da177e4SLinus Torvalds	  algorithm.
3431da177e4SLinus Torvalds
3441da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
3451da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
3461da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
3471da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
3481da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
3491da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
3501da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
3511da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
3521da177e4SLinus Torvalds
3531da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
3541da177e4SLinus Torvalds
3551da177e4SLinus Torvalds	  See <http://csrc.nist.gov/encryption/aes/> for more information.
3561da177e4SLinus Torvalds
357a2a892a2SAndreas Steinmetzconfig CRYPTO_AES_X86_64
358a2a892a2SAndreas Steinmetz	tristate "AES cipher algorithms (x86_64)"
359cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && 64BIT
360cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
36181190b32SSebastian Siewior	select CRYPTO_AES
362a2a892a2SAndreas Steinmetz	help
363a2a892a2SAndreas Steinmetz	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
364a2a892a2SAndreas Steinmetz	  algorithm.
365a2a892a2SAndreas Steinmetz
366a2a892a2SAndreas Steinmetz	  Rijndael appears to be consistently a very good performer in
367a2a892a2SAndreas Steinmetz	  both hardware and software across a wide range of computing
368a2a892a2SAndreas Steinmetz	  environments regardless of its use in feedback or non-feedback
369a2a892a2SAndreas Steinmetz	  modes. Its key setup time is excellent, and its key agility is
370a2a892a2SAndreas Steinmetz	  good. Rijndael's very low memory requirements make it very well
371a2a892a2SAndreas Steinmetz	  suited for restricted-space environments, in which it also
372a2a892a2SAndreas Steinmetz	  demonstrates excellent performance. Rijndael's operations are
373a2a892a2SAndreas Steinmetz	  among the easiest to defend against power and timing attacks.
374a2a892a2SAndreas Steinmetz
375a2a892a2SAndreas Steinmetz	  The AES specifies three key sizes: 128, 192 and 256 bits
376a2a892a2SAndreas Steinmetz
377a2a892a2SAndreas Steinmetz	  See <http://csrc.nist.gov/encryption/aes/> for more information.
378a2a892a2SAndreas Steinmetz
3791da177e4SLinus Torvaldsconfig CRYPTO_CAST5
3801da177e4SLinus Torvalds	tristate "CAST5 (CAST-128) cipher algorithm"
381cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3821da177e4SLinus Torvalds	help
3831da177e4SLinus Torvalds	  The CAST5 encryption algorithm (synonymous with CAST-128) is
3841da177e4SLinus Torvalds	  described in RFC2144.
3851da177e4SLinus Torvalds
3861da177e4SLinus Torvaldsconfig CRYPTO_CAST6
3871da177e4SLinus Torvalds	tristate "CAST6 (CAST-256) cipher algorithm"
388cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3891da177e4SLinus Torvalds	help
3901da177e4SLinus Torvalds	  The CAST6 encryption algorithm (synonymous with CAST-256) is
3911da177e4SLinus Torvalds	  described in RFC2612.
3921da177e4SLinus Torvalds
3931da177e4SLinus Torvaldsconfig CRYPTO_TEA
394fb4f10edSAaron Grothe	tristate "TEA, XTEA and XETA cipher algorithms"
395cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3961da177e4SLinus Torvalds	help
3971da177e4SLinus Torvalds	  TEA cipher algorithm.
3981da177e4SLinus Torvalds
3991da177e4SLinus Torvalds	  Tiny Encryption Algorithm is a simple cipher that uses
4001da177e4SLinus Torvalds	  many rounds for security.  It is very fast and uses
4011da177e4SLinus Torvalds	  little memory.
4021da177e4SLinus Torvalds
4031da177e4SLinus Torvalds	  Xtendend Tiny Encryption Algorithm is a modification to
4041da177e4SLinus Torvalds	  the TEA algorithm to address a potential key weakness
4051da177e4SLinus Torvalds	  in the TEA algorithm.
4061da177e4SLinus Torvalds
407fb4f10edSAaron Grothe	  Xtendend Encryption Tiny Algorithm is a mis-implementation
408fb4f10edSAaron Grothe	  of the XTEA algorithm for compatibility purposes.
409fb4f10edSAaron Grothe
4101da177e4SLinus Torvaldsconfig CRYPTO_ARC4
4111da177e4SLinus Torvalds	tristate "ARC4 cipher algorithm"
412cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4131da177e4SLinus Torvalds	help
4141da177e4SLinus Torvalds	  ARC4 cipher algorithm.
4151da177e4SLinus Torvalds
4161da177e4SLinus Torvalds	  ARC4 is a stream cipher using keys ranging from 8 bits to 2048
4171da177e4SLinus Torvalds	  bits in length.  This algorithm is required for driver-based
4181da177e4SLinus Torvalds	  WEP, but it should not be for other purposes because of the
4191da177e4SLinus Torvalds	  weakness of the algorithm.
4201da177e4SLinus Torvalds
4211da177e4SLinus Torvaldsconfig CRYPTO_KHAZAD
4221da177e4SLinus Torvalds	tristate "Khazad cipher algorithm"
423cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4241da177e4SLinus Torvalds	help
4251da177e4SLinus Torvalds	  Khazad cipher algorithm.
4261da177e4SLinus Torvalds
4271da177e4SLinus Torvalds	  Khazad was a finalist in the initial NESSIE competition.  It is
4281da177e4SLinus Torvalds	  an algorithm optimized for 64-bit processors with good performance
4291da177e4SLinus Torvalds	  on 32-bit processors.  Khazad uses an 128 bit key size.
4301da177e4SLinus Torvalds
4311da177e4SLinus Torvalds	  See also:
4321da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
4331da177e4SLinus Torvalds
4341da177e4SLinus Torvaldsconfig CRYPTO_ANUBIS
4351da177e4SLinus Torvalds	tristate "Anubis cipher algorithm"
436cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4371da177e4SLinus Torvalds	help
4381da177e4SLinus Torvalds	  Anubis cipher algorithm.
4391da177e4SLinus Torvalds
4401da177e4SLinus Torvalds	  Anubis is a variable key length cipher which can use keys from
4411da177e4SLinus Torvalds	  128 bits to 320 bits in length.  It was evaluated as a entrant
4421da177e4SLinus Torvalds	  in the NESSIE competition.
4431da177e4SLinus Torvalds
4441da177e4SLinus Torvalds	  See also:
4451da177e4SLinus Torvalds	  <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
4461da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
4471da177e4SLinus Torvalds
448e2ee95b8SHye-Shik Changconfig CRYPTO_SEED
449e2ee95b8SHye-Shik Chang	tristate "SEED cipher algorithm"
450e2ee95b8SHye-Shik Chang	select CRYPTO_ALGAPI
451e2ee95b8SHye-Shik Chang	help
452e2ee95b8SHye-Shik Chang	  SEED cipher algorithm (RFC4269).
453e2ee95b8SHye-Shik Chang
454e2ee95b8SHye-Shik Chang	  SEED is a 128-bit symmetric key block cipher that has been
455e2ee95b8SHye-Shik Chang	  developed by KISA (Korea Information Security Agency) as a
456e2ee95b8SHye-Shik Chang	  national standard encryption algorithm of the Republic of Korea.
457e2ee95b8SHye-Shik Chang	  It is a 16 round block cipher with the key size of 128 bit.
458e2ee95b8SHye-Shik Chang
459e2ee95b8SHye-Shik Chang	  See also:
460e2ee95b8SHye-Shik Chang	  <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
461e2ee95b8SHye-Shik Chang
4622407d608STan Swee Hengconfig CRYPTO_SALSA20
4632407d608STan Swee Heng	tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)"
4642407d608STan Swee Heng	depends on EXPERIMENTAL
4652407d608STan Swee Heng	select CRYPTO_BLKCIPHER
4662407d608STan Swee Heng	help
4672407d608STan Swee Heng	  Salsa20 stream cipher algorithm.
4682407d608STan Swee Heng
4692407d608STan Swee Heng	  Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
4702407d608STan Swee Heng	  Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
4712407d608STan Swee Heng
4722407d608STan Swee Heng	  The Salsa20 stream cipher algorithm is designed by Daniel J.
4732407d608STan Swee Heng	  Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
4741da177e4SLinus Torvalds
4751da177e4SLinus Torvaldsconfig CRYPTO_DEFLATE
4761da177e4SLinus Torvalds	tristate "Deflate compression algorithm"
477cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4781da177e4SLinus Torvalds	select ZLIB_INFLATE
4791da177e4SLinus Torvalds	select ZLIB_DEFLATE
4801da177e4SLinus Torvalds	help
4811da177e4SLinus Torvalds	  This is the Deflate algorithm (RFC1951), specified for use in
4821da177e4SLinus Torvalds	  IPSec with the IPCOMP protocol (RFC3173, RFC2394).
4831da177e4SLinus Torvalds
4841da177e4SLinus Torvalds	  You will most probably want this if using IPSec.
4851da177e4SLinus Torvalds
4861da177e4SLinus Torvaldsconfig CRYPTO_MICHAEL_MIC
4871da177e4SLinus Torvalds	tristate "Michael MIC keyed digest algorithm"
488cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4891da177e4SLinus Torvalds	help
4901da177e4SLinus Torvalds	  Michael MIC is used for message integrity protection in TKIP
4911da177e4SLinus Torvalds	  (IEEE 802.11i). This algorithm is required for TKIP, but it
4921da177e4SLinus Torvalds	  should not be used for other purposes because of the weakness
4931da177e4SLinus Torvalds	  of the algorithm.
4941da177e4SLinus Torvalds
4951da177e4SLinus Torvaldsconfig CRYPTO_CRC32C
4961da177e4SLinus Torvalds	tristate "CRC32c CRC algorithm"
497cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4981da177e4SLinus Torvalds	select LIBCRC32C
4991da177e4SLinus Torvalds	help
5001da177e4SLinus Torvalds	  Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
5011da177e4SLinus Torvalds	  by iSCSI for header and data digests and by others.
5021da177e4SLinus Torvalds	  See Castagnoli93.  This implementation uses lib/libcrc32c.
5031da177e4SLinus Torvalds          Module will be crc32c.
5041da177e4SLinus Torvalds
50504ac7db3SNoriaki TAKAMIYAconfig CRYPTO_CAMELLIA
50604ac7db3SNoriaki TAKAMIYA	tristate "Camellia cipher algorithms"
50704ac7db3SNoriaki TAKAMIYA	depends on CRYPTO
50804ac7db3SNoriaki TAKAMIYA	select CRYPTO_ALGAPI
50904ac7db3SNoriaki TAKAMIYA	help
51004ac7db3SNoriaki TAKAMIYA	  Camellia cipher algorithms module.
51104ac7db3SNoriaki TAKAMIYA
51204ac7db3SNoriaki TAKAMIYA	  Camellia is a symmetric key block cipher developed jointly
51304ac7db3SNoriaki TAKAMIYA	  at NTT and Mitsubishi Electric Corporation.
51404ac7db3SNoriaki TAKAMIYA
51504ac7db3SNoriaki TAKAMIYA	  The Camellia specifies three key sizes: 128, 192 and 256 bits.
51604ac7db3SNoriaki TAKAMIYA
51704ac7db3SNoriaki TAKAMIYA	  See also:
51804ac7db3SNoriaki TAKAMIYA	  <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
51904ac7db3SNoriaki TAKAMIYA
5201da177e4SLinus Torvaldsconfig CRYPTO_TEST
5211da177e4SLinus Torvalds	tristate "Testing module"
522cce9e06dSHerbert Xu	depends on m
523cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
5241da177e4SLinus Torvalds	help
5251da177e4SLinus Torvalds	  Quick & dirty crypto test module.
5261da177e4SLinus Torvalds
5273c09f17cSHerbert Xuconfig CRYPTO_AUTHENC
5283c09f17cSHerbert Xu	tristate "Authenc support"
5293c09f17cSHerbert Xu	select CRYPTO_AEAD
5303c09f17cSHerbert Xu	select CRYPTO_MANAGER
5315e553110SBorislav Petkov	select CRYPTO_HASH
5323c09f17cSHerbert Xu	help
5333c09f17cSHerbert Xu	  Authenc: Combined mode wrapper for IPsec.
5343c09f17cSHerbert Xu	  This is required for IPSec.
5353c09f17cSHerbert Xu
5360b77abb3SZoltan Sogorconfig CRYPTO_LZO
5370b77abb3SZoltan Sogor	tristate "LZO compression algorithm"
5380b77abb3SZoltan Sogor	select CRYPTO_ALGAPI
5390b77abb3SZoltan Sogor	select LZO_COMPRESS
5400b77abb3SZoltan Sogor	select LZO_DECOMPRESS
5410b77abb3SZoltan Sogor	help
5420b77abb3SZoltan Sogor	  This is the LZO algorithm.
5430b77abb3SZoltan Sogor
5441da177e4SLinus Torvaldssource "drivers/crypto/Kconfig"
5451da177e4SLinus Torvalds
546cce9e06dSHerbert Xuendif	# if CRYPTO
547