xref: /linux/crypto/Kconfig (revision 3e16bfbaf3195b4725bc87d6a1ef11bf7716e83d)
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
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
21628db8e3eSMikko Herranenconfig CRYPTO_GCM
21728db8e3eSMikko Herranen	tristate "GCM/GMAC support"
21828db8e3eSMikko Herranen	select CRYPTO_CTR
21928db8e3eSMikko Herranen	select CRYPTO_AEAD
22028db8e3eSMikko Herranen	select CRYPTO_GF128MUL
22128db8e3eSMikko Herranen	help
22228db8e3eSMikko Herranen	  Support for Galois/Counter Mode (GCM) and Galois Message
22328db8e3eSMikko Herranen	  Authentication Code (GMAC). Required for IPSec.
22428db8e3eSMikko Herranen
2254a49b499SJoy Lattenconfig CRYPTO_CCM
2264a49b499SJoy Latten	tristate "CCM support"
2274a49b499SJoy Latten	select CRYPTO_CTR
2284a49b499SJoy Latten	select CRYPTO_AEAD
2294a49b499SJoy Latten	help
2304a49b499SJoy Latten	  Support for Counter with CBC MAC. Required for IPsec.
2314a49b499SJoy Latten
232124b53d0SHerbert Xuconfig CRYPTO_CRYPTD
233124b53d0SHerbert Xu	tristate "Software async crypto daemon"
234653ebd9cSHerbert Xu	select CRYPTO_BLKCIPHER
235124b53d0SHerbert Xu	select CRYPTO_MANAGER
236124b53d0SHerbert Xu	help
237124b53d0SHerbert Xu	  This is a generic software asynchronous crypto daemon that
238124b53d0SHerbert Xu	  converts an arbitrary synchronous software crypto algorithm
239124b53d0SHerbert Xu	  into an asynchronous algorithm that executes in a kernel thread.
240124b53d0SHerbert Xu
2411da177e4SLinus Torvaldsconfig CRYPTO_DES
2421da177e4SLinus Torvalds	tristate "DES and Triple DES EDE cipher algorithms"
243cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2441da177e4SLinus Torvalds	help
2451da177e4SLinus Torvalds	  DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
2461da177e4SLinus Torvalds
24790831639SDavid Howellsconfig CRYPTO_FCRYPT
24890831639SDavid Howells	tristate "FCrypt cipher algorithm"
24990831639SDavid Howells	select CRYPTO_ALGAPI
25090831639SDavid Howells	select CRYPTO_BLKCIPHER
25190831639SDavid Howells	help
25290831639SDavid Howells	  FCrypt algorithm used by RxRPC.
25390831639SDavid Howells
2541da177e4SLinus Torvaldsconfig CRYPTO_BLOWFISH
2551da177e4SLinus Torvalds	tristate "Blowfish cipher algorithm"
256cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2571da177e4SLinus Torvalds	help
2581da177e4SLinus Torvalds	  Blowfish cipher algorithm, by Bruce Schneier.
2591da177e4SLinus Torvalds
2601da177e4SLinus Torvalds	  This is a variable key length cipher which can use keys from 32
2611da177e4SLinus Torvalds	  bits to 448 bits in length.  It's fast, simple and specifically
2621da177e4SLinus Torvalds	  designed for use on "large microprocessors".
2631da177e4SLinus Torvalds
2641da177e4SLinus Torvalds	  See also:
2651da177e4SLinus Torvalds	  <http://www.schneier.com/blowfish.html>
2661da177e4SLinus Torvalds
2671da177e4SLinus Torvaldsconfig CRYPTO_TWOFISH
2681da177e4SLinus Torvalds	tristate "Twofish cipher algorithm"
269cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2702729bb42SJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
2711da177e4SLinus Torvalds	help
2721da177e4SLinus Torvalds	  Twofish cipher algorithm.
2731da177e4SLinus Torvalds
2741da177e4SLinus Torvalds	  Twofish was submitted as an AES (Advanced Encryption Standard)
2751da177e4SLinus Torvalds	  candidate cipher by researchers at CounterPane Systems.  It is a
2761da177e4SLinus Torvalds	  16 round block cipher supporting key sizes of 128, 192, and 256
2771da177e4SLinus Torvalds	  bits.
2781da177e4SLinus Torvalds
2791da177e4SLinus Torvalds	  See also:
2801da177e4SLinus Torvalds	  <http://www.schneier.com/twofish.html>
2811da177e4SLinus Torvalds
2822729bb42SJoachim Fritschiconfig CRYPTO_TWOFISH_COMMON
2832729bb42SJoachim Fritschi	tristate
2842729bb42SJoachim Fritschi	help
2852729bb42SJoachim Fritschi	  Common parts of the Twofish cipher algorithm shared by the
2862729bb42SJoachim Fritschi	  generic c and the assembler implementations.
2872729bb42SJoachim Fritschi
288b9f535ffSJoachim Fritschiconfig CRYPTO_TWOFISH_586
289b9f535ffSJoachim Fritschi	tristate "Twofish cipher algorithms (i586)"
290cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && !64BIT
291cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
292b9f535ffSJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
293b9f535ffSJoachim Fritschi	help
294b9f535ffSJoachim Fritschi	  Twofish cipher algorithm.
295b9f535ffSJoachim Fritschi
296b9f535ffSJoachim Fritschi	  Twofish was submitted as an AES (Advanced Encryption Standard)
297b9f535ffSJoachim Fritschi	  candidate cipher by researchers at CounterPane Systems.  It is a
298b9f535ffSJoachim Fritschi	  16 round block cipher supporting key sizes of 128, 192, and 256
299b9f535ffSJoachim Fritschi	  bits.
300b9f535ffSJoachim Fritschi
301b9f535ffSJoachim Fritschi	  See also:
302b9f535ffSJoachim Fritschi	  <http://www.schneier.com/twofish.html>
303b9f535ffSJoachim Fritschi
304eaf44088SJoachim Fritschiconfig CRYPTO_TWOFISH_X86_64
305eaf44088SJoachim Fritschi	tristate "Twofish cipher algorithm (x86_64)"
306cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && 64BIT
307cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
308eaf44088SJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
309eaf44088SJoachim Fritschi	help
310eaf44088SJoachim Fritschi	  Twofish cipher algorithm (x86_64).
311eaf44088SJoachim Fritschi
312eaf44088SJoachim Fritschi	  Twofish was submitted as an AES (Advanced Encryption Standard)
313eaf44088SJoachim Fritschi	  candidate cipher by researchers at CounterPane Systems.  It is a
314eaf44088SJoachim Fritschi	  16 round block cipher supporting key sizes of 128, 192, and 256
315eaf44088SJoachim Fritschi	  bits.
316eaf44088SJoachim Fritschi
317eaf44088SJoachim Fritschi	  See also:
318eaf44088SJoachim Fritschi	  <http://www.schneier.com/twofish.html>
319eaf44088SJoachim Fritschi
3201da177e4SLinus Torvaldsconfig CRYPTO_SERPENT
3211da177e4SLinus Torvalds	tristate "Serpent cipher algorithm"
322cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3231da177e4SLinus Torvalds	help
3241da177e4SLinus Torvalds	  Serpent cipher algorithm, by Anderson, Biham & Knudsen.
3251da177e4SLinus Torvalds
3261da177e4SLinus Torvalds	  Keys are allowed to be from 0 to 256 bits in length, in steps
3271da177e4SLinus Torvalds	  of 8 bits.  Also includes the 'Tnepres' algorithm, a reversed
3283dde6ad8SDavid Sterba	  variant of Serpent for compatibility with old kerneli.org code.
3291da177e4SLinus Torvalds
3301da177e4SLinus Torvalds	  See also:
3311da177e4SLinus Torvalds	  <http://www.cl.cam.ac.uk/~rja14/serpent.html>
3321da177e4SLinus Torvalds
3331da177e4SLinus Torvaldsconfig CRYPTO_AES
3341da177e4SLinus Torvalds	tristate "AES cipher algorithms"
335cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3361da177e4SLinus Torvalds	help
3371da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
3381da177e4SLinus Torvalds	  algorithm.
3391da177e4SLinus Torvalds
3401da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
3411da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
3421da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
3431da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
3441da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
3451da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
3461da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
3471da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
3481da177e4SLinus Torvalds
3491da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
3501da177e4SLinus Torvalds
3511da177e4SLinus Torvalds	  See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
3521da177e4SLinus Torvalds
3531da177e4SLinus Torvaldsconfig CRYPTO_AES_586
3541da177e4SLinus Torvalds	tristate "AES cipher algorithms (i586)"
355cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && !64BIT
356cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3575157dea8SSebastian Siewior	select CRYPTO_AES
3581da177e4SLinus Torvalds	help
3591da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
3601da177e4SLinus Torvalds	  algorithm.
3611da177e4SLinus Torvalds
3621da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
3631da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
3641da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
3651da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
3661da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
3671da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
3681da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
3691da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
3701da177e4SLinus Torvalds
3711da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
3721da177e4SLinus Torvalds
3731da177e4SLinus Torvalds	  See <http://csrc.nist.gov/encryption/aes/> for more information.
3741da177e4SLinus Torvalds
375a2a892a2SAndreas Steinmetzconfig CRYPTO_AES_X86_64
376a2a892a2SAndreas Steinmetz	tristate "AES cipher algorithms (x86_64)"
377cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && 64BIT
378cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
37981190b32SSebastian Siewior	select CRYPTO_AES
380a2a892a2SAndreas Steinmetz	help
381a2a892a2SAndreas Steinmetz	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
382a2a892a2SAndreas Steinmetz	  algorithm.
383a2a892a2SAndreas Steinmetz
384a2a892a2SAndreas Steinmetz	  Rijndael appears to be consistently a very good performer in
385a2a892a2SAndreas Steinmetz	  both hardware and software across a wide range of computing
386a2a892a2SAndreas Steinmetz	  environments regardless of its use in feedback or non-feedback
387a2a892a2SAndreas Steinmetz	  modes. Its key setup time is excellent, and its key agility is
388a2a892a2SAndreas Steinmetz	  good. Rijndael's very low memory requirements make it very well
389a2a892a2SAndreas Steinmetz	  suited for restricted-space environments, in which it also
390a2a892a2SAndreas Steinmetz	  demonstrates excellent performance. Rijndael's operations are
391a2a892a2SAndreas Steinmetz	  among the easiest to defend against power and timing attacks.
392a2a892a2SAndreas Steinmetz
393a2a892a2SAndreas Steinmetz	  The AES specifies three key sizes: 128, 192 and 256 bits
394a2a892a2SAndreas Steinmetz
395a2a892a2SAndreas Steinmetz	  See <http://csrc.nist.gov/encryption/aes/> for more information.
396a2a892a2SAndreas Steinmetz
3971da177e4SLinus Torvaldsconfig CRYPTO_CAST5
3981da177e4SLinus Torvalds	tristate "CAST5 (CAST-128) cipher algorithm"
399cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4001da177e4SLinus Torvalds	help
4011da177e4SLinus Torvalds	  The CAST5 encryption algorithm (synonymous with CAST-128) is
4021da177e4SLinus Torvalds	  described in RFC2144.
4031da177e4SLinus Torvalds
4041da177e4SLinus Torvaldsconfig CRYPTO_CAST6
4051da177e4SLinus Torvalds	tristate "CAST6 (CAST-256) cipher algorithm"
406cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4071da177e4SLinus Torvalds	help
4081da177e4SLinus Torvalds	  The CAST6 encryption algorithm (synonymous with CAST-256) is
4091da177e4SLinus Torvalds	  described in RFC2612.
4101da177e4SLinus Torvalds
4111da177e4SLinus Torvaldsconfig CRYPTO_TEA
412fb4f10edSAaron Grothe	tristate "TEA, XTEA and XETA cipher algorithms"
413cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4141da177e4SLinus Torvalds	help
4151da177e4SLinus Torvalds	  TEA cipher algorithm.
4161da177e4SLinus Torvalds
4171da177e4SLinus Torvalds	  Tiny Encryption Algorithm is a simple cipher that uses
4181da177e4SLinus Torvalds	  many rounds for security.  It is very fast and uses
4191da177e4SLinus Torvalds	  little memory.
4201da177e4SLinus Torvalds
4211da177e4SLinus Torvalds	  Xtendend Tiny Encryption Algorithm is a modification to
4221da177e4SLinus Torvalds	  the TEA algorithm to address a potential key weakness
4231da177e4SLinus Torvalds	  in the TEA algorithm.
4241da177e4SLinus Torvalds
425fb4f10edSAaron Grothe	  Xtendend Encryption Tiny Algorithm is a mis-implementation
426fb4f10edSAaron Grothe	  of the XTEA algorithm for compatibility purposes.
427fb4f10edSAaron Grothe
4281da177e4SLinus Torvaldsconfig CRYPTO_ARC4
4291da177e4SLinus Torvalds	tristate "ARC4 cipher algorithm"
430cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4311da177e4SLinus Torvalds	help
4321da177e4SLinus Torvalds	  ARC4 cipher algorithm.
4331da177e4SLinus Torvalds
4341da177e4SLinus Torvalds	  ARC4 is a stream cipher using keys ranging from 8 bits to 2048
4351da177e4SLinus Torvalds	  bits in length.  This algorithm is required for driver-based
4361da177e4SLinus Torvalds	  WEP, but it should not be for other purposes because of the
4371da177e4SLinus Torvalds	  weakness of the algorithm.
4381da177e4SLinus Torvalds
4391da177e4SLinus Torvaldsconfig CRYPTO_KHAZAD
4401da177e4SLinus Torvalds	tristate "Khazad cipher algorithm"
441cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4421da177e4SLinus Torvalds	help
4431da177e4SLinus Torvalds	  Khazad cipher algorithm.
4441da177e4SLinus Torvalds
4451da177e4SLinus Torvalds	  Khazad was a finalist in the initial NESSIE competition.  It is
4461da177e4SLinus Torvalds	  an algorithm optimized for 64-bit processors with good performance
4471da177e4SLinus Torvalds	  on 32-bit processors.  Khazad uses an 128 bit key size.
4481da177e4SLinus Torvalds
4491da177e4SLinus Torvalds	  See also:
4501da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
4511da177e4SLinus Torvalds
4521da177e4SLinus Torvaldsconfig CRYPTO_ANUBIS
4531da177e4SLinus Torvalds	tristate "Anubis cipher algorithm"
454cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4551da177e4SLinus Torvalds	help
4561da177e4SLinus Torvalds	  Anubis cipher algorithm.
4571da177e4SLinus Torvalds
4581da177e4SLinus Torvalds	  Anubis is a variable key length cipher which can use keys from
4591da177e4SLinus Torvalds	  128 bits to 320 bits in length.  It was evaluated as a entrant
4601da177e4SLinus Torvalds	  in the NESSIE competition.
4611da177e4SLinus Torvalds
4621da177e4SLinus Torvalds	  See also:
4631da177e4SLinus Torvalds	  <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
4641da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
4651da177e4SLinus Torvalds
466e2ee95b8SHye-Shik Changconfig CRYPTO_SEED
467e2ee95b8SHye-Shik Chang	tristate "SEED cipher algorithm"
468e2ee95b8SHye-Shik Chang	select CRYPTO_ALGAPI
469e2ee95b8SHye-Shik Chang	help
470e2ee95b8SHye-Shik Chang	  SEED cipher algorithm (RFC4269).
471e2ee95b8SHye-Shik Chang
472e2ee95b8SHye-Shik Chang	  SEED is a 128-bit symmetric key block cipher that has been
473e2ee95b8SHye-Shik Chang	  developed by KISA (Korea Information Security Agency) as a
474e2ee95b8SHye-Shik Chang	  national standard encryption algorithm of the Republic of Korea.
475e2ee95b8SHye-Shik Chang	  It is a 16 round block cipher with the key size of 128 bit.
476e2ee95b8SHye-Shik Chang
477e2ee95b8SHye-Shik Chang	  See also:
478e2ee95b8SHye-Shik Chang	  <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
479e2ee95b8SHye-Shik Chang
4802407d608STan Swee Hengconfig CRYPTO_SALSA20
4812407d608STan Swee Heng	tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)"
4822407d608STan Swee Heng	depends on EXPERIMENTAL
4832407d608STan Swee Heng	select CRYPTO_BLKCIPHER
4842407d608STan Swee Heng	help
4852407d608STan Swee Heng	  Salsa20 stream cipher algorithm.
4862407d608STan Swee Heng
4872407d608STan Swee Heng	  Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
4882407d608STan Swee Heng	  Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
4892407d608STan Swee Heng
4902407d608STan Swee Heng	  The Salsa20 stream cipher algorithm is designed by Daniel J.
4912407d608STan Swee Heng	  Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
4921da177e4SLinus Torvalds
493974e4b75STan Swee Hengconfig CRYPTO_SALSA20_586
494974e4b75STan Swee Heng	tristate "Salsa20 stream cipher algorithm (i586) (EXPERIMENTAL)"
495974e4b75STan Swee Heng	depends on (X86 || UML_X86) && !64BIT
496974e4b75STan Swee Heng	depends on EXPERIMENTAL
497974e4b75STan Swee Heng	select CRYPTO_BLKCIPHER
498974e4b75STan Swee Heng	help
499974e4b75STan Swee Heng	  Salsa20 stream cipher algorithm.
500974e4b75STan Swee Heng
501974e4b75STan Swee Heng	  Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
502974e4b75STan Swee Heng	  Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
503974e4b75STan Swee Heng
504974e4b75STan Swee Heng	  The Salsa20 stream cipher algorithm is designed by Daniel J.
505974e4b75STan Swee Heng	  Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
506974e4b75STan Swee Heng
5079a7dafbbSTan Swee Hengconfig CRYPTO_SALSA20_X86_64
5089a7dafbbSTan Swee Heng	tristate "Salsa20 stream cipher algorithm (x86_64) (EXPERIMENTAL)"
5099a7dafbbSTan Swee Heng	depends on (X86 || UML_X86) && 64BIT
5109a7dafbbSTan Swee Heng	depends on EXPERIMENTAL
5119a7dafbbSTan Swee Heng	select CRYPTO_BLKCIPHER
5129a7dafbbSTan Swee Heng	help
5139a7dafbbSTan Swee Heng	  Salsa20 stream cipher algorithm.
5149a7dafbbSTan Swee Heng
5159a7dafbbSTan Swee Heng	  Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
5169a7dafbbSTan Swee Heng	  Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
5179a7dafbbSTan Swee Heng
5189a7dafbbSTan Swee Heng	  The Salsa20 stream cipher algorithm is designed by Daniel J.
5199a7dafbbSTan Swee Heng	  Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
5209a7dafbbSTan Swee Heng
5211da177e4SLinus Torvaldsconfig CRYPTO_DEFLATE
5221da177e4SLinus Torvalds	tristate "Deflate compression algorithm"
523cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
5241da177e4SLinus Torvalds	select ZLIB_INFLATE
5251da177e4SLinus Torvalds	select ZLIB_DEFLATE
5261da177e4SLinus Torvalds	help
5271da177e4SLinus Torvalds	  This is the Deflate algorithm (RFC1951), specified for use in
5281da177e4SLinus Torvalds	  IPSec with the IPCOMP protocol (RFC3173, RFC2394).
5291da177e4SLinus Torvalds
5301da177e4SLinus Torvalds	  You will most probably want this if using IPSec.
5311da177e4SLinus Torvalds
5321da177e4SLinus Torvaldsconfig CRYPTO_MICHAEL_MIC
5331da177e4SLinus Torvalds	tristate "Michael MIC keyed digest algorithm"
534cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
5351da177e4SLinus Torvalds	help
5361da177e4SLinus Torvalds	  Michael MIC is used for message integrity protection in TKIP
5371da177e4SLinus Torvalds	  (IEEE 802.11i). This algorithm is required for TKIP, but it
5381da177e4SLinus Torvalds	  should not be used for other purposes because of the weakness
5391da177e4SLinus Torvalds	  of the algorithm.
5401da177e4SLinus Torvalds
5411da177e4SLinus Torvaldsconfig CRYPTO_CRC32C
5421da177e4SLinus Torvalds	tristate "CRC32c CRC algorithm"
543cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
5441da177e4SLinus Torvalds	select LIBCRC32C
5451da177e4SLinus Torvalds	help
5461da177e4SLinus Torvalds	  Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
5471da177e4SLinus Torvalds	  by iSCSI for header and data digests and by others.
5481da177e4SLinus Torvalds	  See Castagnoli93.  This implementation uses lib/libcrc32c.
5491da177e4SLinus Torvalds          Module will be crc32c.
5501da177e4SLinus Torvalds
55104ac7db3SNoriaki TAKAMIYAconfig CRYPTO_CAMELLIA
55204ac7db3SNoriaki TAKAMIYA	tristate "Camellia cipher algorithms"
55304ac7db3SNoriaki TAKAMIYA	depends on CRYPTO
55404ac7db3SNoriaki TAKAMIYA	select CRYPTO_ALGAPI
55504ac7db3SNoriaki TAKAMIYA	help
55604ac7db3SNoriaki TAKAMIYA	  Camellia cipher algorithms module.
55704ac7db3SNoriaki TAKAMIYA
55804ac7db3SNoriaki TAKAMIYA	  Camellia is a symmetric key block cipher developed jointly
55904ac7db3SNoriaki TAKAMIYA	  at NTT and Mitsubishi Electric Corporation.
56004ac7db3SNoriaki TAKAMIYA
56104ac7db3SNoriaki TAKAMIYA	  The Camellia specifies three key sizes: 128, 192 and 256 bits.
56204ac7db3SNoriaki TAKAMIYA
56304ac7db3SNoriaki TAKAMIYA	  See also:
56404ac7db3SNoriaki TAKAMIYA	  <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
56504ac7db3SNoriaki TAKAMIYA
5661da177e4SLinus Torvaldsconfig CRYPTO_TEST
5671da177e4SLinus Torvalds	tristate "Testing module"
568cce9e06dSHerbert Xu	depends on m
569cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
570d1cda4e3SSebastian Siewior	select CRYPTO_AEAD
571242f1a34SFrederik Deweerdt	select CRYPTO_BLKCIPHER
5721da177e4SLinus Torvalds	help
5731da177e4SLinus Torvalds	  Quick & dirty crypto test module.
5741da177e4SLinus Torvalds
5753c09f17cSHerbert Xuconfig CRYPTO_AUTHENC
5763c09f17cSHerbert Xu	tristate "Authenc support"
5773c09f17cSHerbert Xu	select CRYPTO_AEAD
578*3e16bfbaSHerbert Xu	select CRYPTO_BLKCIPHER
5793c09f17cSHerbert Xu	select CRYPTO_MANAGER
5805e553110SBorislav Petkov	select CRYPTO_HASH
5813c09f17cSHerbert Xu	help
5823c09f17cSHerbert Xu	  Authenc: Combined mode wrapper for IPsec.
5833c09f17cSHerbert Xu	  This is required for IPSec.
5843c09f17cSHerbert Xu
5850b77abb3SZoltan Sogorconfig CRYPTO_LZO
5860b77abb3SZoltan Sogor	tristate "LZO compression algorithm"
5870b77abb3SZoltan Sogor	select CRYPTO_ALGAPI
5880b77abb3SZoltan Sogor	select LZO_COMPRESS
5890b77abb3SZoltan Sogor	select LZO_DECOMPRESS
5900b77abb3SZoltan Sogor	help
5910b77abb3SZoltan Sogor	  This is the LZO algorithm.
5920b77abb3SZoltan Sogor
5931da177e4SLinus Torvaldssource "drivers/crypto/Kconfig"
5941da177e4SLinus Torvalds
595cce9e06dSHerbert Xuendif	# if CRYPTO
596