xref: /linux/crypto/Kconfig (revision c3715cb90f722b1cf5f6f073be02cc8a49659b90)
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