xref: /linux/crypto/Kconfig (revision 9a7dafbba47384c330779c75a1546684efaa8c1a)
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
771da177e4SLinus Torvalds	help
781da177e4SLinus Torvalds	  These are 'Null' algorithms, used by IPsec, which do nothing.
791da177e4SLinus Torvalds
801da177e4SLinus Torvaldsconfig CRYPTO_MD4
811da177e4SLinus Torvalds	tristate "MD4 digest algorithm"
82cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
831da177e4SLinus Torvalds	help
841da177e4SLinus Torvalds	  MD4 message digest algorithm (RFC1320).
851da177e4SLinus Torvalds
861da177e4SLinus Torvaldsconfig CRYPTO_MD5
871da177e4SLinus Torvalds	tristate "MD5 digest algorithm"
88cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
891da177e4SLinus Torvalds	help
901da177e4SLinus Torvalds	  MD5 message digest algorithm (RFC1321).
911da177e4SLinus Torvalds
921da177e4SLinus Torvaldsconfig CRYPTO_SHA1
931da177e4SLinus Torvalds	tristate "SHA1 digest algorithm"
94cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
951da177e4SLinus Torvalds	help
961da177e4SLinus Torvalds	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
971da177e4SLinus Torvalds
981da177e4SLinus Torvaldsconfig CRYPTO_SHA256
99cd12fb90SJonathan Lynch	tristate "SHA224 and SHA256 digest algorithm"
100cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1011da177e4SLinus Torvalds	help
1021da177e4SLinus Torvalds	  SHA256 secure hash standard (DFIPS 180-2).
1031da177e4SLinus Torvalds
1041da177e4SLinus Torvalds	  This version of SHA implements a 256 bit hash with 128 bits of
1051da177e4SLinus Torvalds	  security against collision attacks.
1061da177e4SLinus Torvalds
107cd12fb90SJonathan Lynch          This code also includes SHA-224, a 224 bit hash with 112 bits
108cd12fb90SJonathan Lynch          of security against collision attacks.
109cd12fb90SJonathan Lynch
1101da177e4SLinus Torvaldsconfig CRYPTO_SHA512
1111da177e4SLinus Torvalds	tristate "SHA384 and SHA512 digest algorithms"
112cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1131da177e4SLinus Torvalds	help
1141da177e4SLinus Torvalds	  SHA512 secure hash standard (DFIPS 180-2).
1151da177e4SLinus Torvalds
1161da177e4SLinus Torvalds	  This version of SHA implements a 512 bit hash with 256 bits of
1171da177e4SLinus Torvalds	  security against collision attacks.
1181da177e4SLinus Torvalds
1191da177e4SLinus Torvalds	  This code also includes SHA-384, a 384 bit hash with 192 bits
1201da177e4SLinus Torvalds	  of security against collision attacks.
1211da177e4SLinus Torvalds
1221da177e4SLinus Torvaldsconfig CRYPTO_WP512
1231da177e4SLinus Torvalds	tristate "Whirlpool digest algorithms"
124cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1251da177e4SLinus Torvalds	help
1261da177e4SLinus Torvalds	  Whirlpool hash algorithm 512, 384 and 256-bit hashes
1271da177e4SLinus Torvalds
1281da177e4SLinus Torvalds	  Whirlpool-512 is part of the NESSIE cryptographic primitives.
1291da177e4SLinus Torvalds	  Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
1301da177e4SLinus Torvalds
1311da177e4SLinus Torvalds	  See also:
1321da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
1331da177e4SLinus Torvalds
1341da177e4SLinus Torvaldsconfig CRYPTO_TGR192
1351da177e4SLinus Torvalds	tristate "Tiger digest algorithms"
136cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1371da177e4SLinus Torvalds	help
1381da177e4SLinus Torvalds	  Tiger hash algorithm 192, 160 and 128-bit hashes
1391da177e4SLinus Torvalds
1401da177e4SLinus Torvalds	  Tiger is a hash function optimized for 64-bit processors while
1411da177e4SLinus Torvalds	  still having decent performance on 32-bit processors.
1421da177e4SLinus Torvalds	  Tiger was developed by Ross Anderson and Eli Biham.
1431da177e4SLinus Torvalds
1441da177e4SLinus Torvalds	  See also:
1451da177e4SLinus Torvalds	  <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
1461da177e4SLinus Torvalds
147c494e070SRik Snelconfig CRYPTO_GF128MUL
148c494e070SRik Snel	tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
149c494e070SRik Snel	depends on EXPERIMENTAL
150c494e070SRik Snel	help
151c494e070SRik Snel	  Efficient table driven implementation of multiplications in the
152c494e070SRik Snel	  field GF(2^128).  This is needed by some cypher modes. This
153c494e070SRik Snel	  option will be selected automatically if you select such a
154c494e070SRik Snel	  cipher mode.  Only select this option by hand if you expect to load
155c494e070SRik Snel	  an external module that requires these functions.
156c494e070SRik Snel
157db131ef9SHerbert Xuconfig CRYPTO_ECB
158db131ef9SHerbert Xu	tristate "ECB support"
159db131ef9SHerbert Xu	select CRYPTO_BLKCIPHER
16043518407SHerbert Xu	select CRYPTO_MANAGER
161db131ef9SHerbert Xu	help
162db131ef9SHerbert Xu	  ECB: Electronic CodeBook mode
163db131ef9SHerbert Xu	  This is the simplest block cipher algorithm.  It simply encrypts
164db131ef9SHerbert Xu	  the input block by block.
165db131ef9SHerbert Xu
166db131ef9SHerbert Xuconfig CRYPTO_CBC
167db131ef9SHerbert Xu	tristate "CBC support"
168db131ef9SHerbert Xu	select CRYPTO_BLKCIPHER
16943518407SHerbert Xu	select CRYPTO_MANAGER
170db131ef9SHerbert Xu	help
171db131ef9SHerbert Xu	  CBC: Cipher Block Chaining mode
172db131ef9SHerbert Xu	  This block cipher algorithm is required for IPSec.
173db131ef9SHerbert Xu
17491652be5SDavid Howellsconfig CRYPTO_PCBC
17591652be5SDavid Howells	tristate "PCBC support"
17691652be5SDavid Howells	select CRYPTO_BLKCIPHER
17791652be5SDavid Howells	select CRYPTO_MANAGER
17891652be5SDavid Howells	help
17991652be5SDavid Howells	  PCBC: Propagating Cipher Block Chaining mode
18091652be5SDavid Howells	  This block cipher algorithm is required for RxRPC.
18191652be5SDavid Howells
18264470f1bSRik Snelconfig CRYPTO_LRW
18364470f1bSRik Snel	tristate "LRW support (EXPERIMENTAL)"
18464470f1bSRik Snel	depends on EXPERIMENTAL
18564470f1bSRik Snel	select CRYPTO_BLKCIPHER
18664470f1bSRik Snel	select CRYPTO_MANAGER
18764470f1bSRik Snel	select CRYPTO_GF128MUL
18864470f1bSRik Snel	help
18964470f1bSRik Snel	  LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
19064470f1bSRik Snel	  narrow block cipher mode for dm-crypt.  Use it with cipher
19164470f1bSRik Snel	  specification string aes-lrw-benbi, the key must be 256, 320 or 384.
19264470f1bSRik Snel	  The first 128, 192 or 256 bits in the key are used for AES and the
19364470f1bSRik Snel	  rest is used to tie each cipher block to its logical position.
19464470f1bSRik Snel
195f19f5111SRik Snelconfig CRYPTO_XTS
196f19f5111SRik Snel	tristate "XTS support (EXPERIMENTAL)"
197f19f5111SRik Snel	depends on EXPERIMENTAL
198f19f5111SRik Snel	select CRYPTO_BLKCIPHER
199f19f5111SRik Snel	select CRYPTO_MANAGER
200f19f5111SRik Snel	select CRYPTO_GF128MUL
201f19f5111SRik Snel	help
202f19f5111SRik Snel	  XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
203f19f5111SRik Snel	  key size 256, 384 or 512 bits. This implementation currently
204f19f5111SRik Snel	  can't handle a sectorsize which is not a multiple of 16 bytes.
205f19f5111SRik Snel
20623e353c8SJoy Lattenconfig CRYPTO_CTR
20723e353c8SJoy Latten	tristate "CTR support"
20823e353c8SJoy Latten	select CRYPTO_BLKCIPHER
2090a270321SHerbert Xu	select CRYPTO_SEQIV
21023e353c8SJoy Latten	select CRYPTO_MANAGER
21123e353c8SJoy Latten	help
21223e353c8SJoy Latten	  CTR: Counter mode
21323e353c8SJoy Latten	  This block cipher algorithm is required for IPSec.
21423e353c8SJoy Latten
21528db8e3eSMikko Herranenconfig CRYPTO_GCM
21628db8e3eSMikko Herranen	tristate "GCM/GMAC support"
21728db8e3eSMikko Herranen	select CRYPTO_CTR
21828db8e3eSMikko Herranen	select CRYPTO_AEAD
21928db8e3eSMikko Herranen	select CRYPTO_GF128MUL
22028db8e3eSMikko Herranen	help
22128db8e3eSMikko Herranen	  Support for Galois/Counter Mode (GCM) and Galois Message
22228db8e3eSMikko Herranen	  Authentication Code (GMAC). Required for IPSec.
22328db8e3eSMikko Herranen
2244a49b499SJoy Lattenconfig CRYPTO_CCM
2254a49b499SJoy Latten	tristate "CCM support"
2264a49b499SJoy Latten	select CRYPTO_CTR
2274a49b499SJoy Latten	select CRYPTO_AEAD
2284a49b499SJoy Latten	help
2294a49b499SJoy Latten	  Support for Counter with CBC MAC. Required for IPsec.
2304a49b499SJoy Latten
231124b53d0SHerbert Xuconfig CRYPTO_CRYPTD
232124b53d0SHerbert Xu	tristate "Software async crypto daemon"
233653ebd9cSHerbert Xu	select CRYPTO_BLKCIPHER
234124b53d0SHerbert Xu	select CRYPTO_MANAGER
235124b53d0SHerbert Xu	help
236124b53d0SHerbert Xu	  This is a generic software asynchronous crypto daemon that
237124b53d0SHerbert Xu	  converts an arbitrary synchronous software crypto algorithm
238124b53d0SHerbert Xu	  into an asynchronous algorithm that executes in a kernel thread.
239124b53d0SHerbert Xu
2401da177e4SLinus Torvaldsconfig CRYPTO_DES
2411da177e4SLinus Torvalds	tristate "DES and Triple DES EDE cipher algorithms"
242cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2431da177e4SLinus Torvalds	help
2441da177e4SLinus Torvalds	  DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
2451da177e4SLinus Torvalds
24690831639SDavid Howellsconfig CRYPTO_FCRYPT
24790831639SDavid Howells	tristate "FCrypt cipher algorithm"
24890831639SDavid Howells	select CRYPTO_ALGAPI
24990831639SDavid Howells	select CRYPTO_BLKCIPHER
25090831639SDavid Howells	help
25190831639SDavid Howells	  FCrypt algorithm used by RxRPC.
25290831639SDavid Howells
2531da177e4SLinus Torvaldsconfig CRYPTO_BLOWFISH
2541da177e4SLinus Torvalds	tristate "Blowfish cipher algorithm"
255cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2561da177e4SLinus Torvalds	help
2571da177e4SLinus Torvalds	  Blowfish cipher algorithm, by Bruce Schneier.
2581da177e4SLinus Torvalds
2591da177e4SLinus Torvalds	  This is a variable key length cipher which can use keys from 32
2601da177e4SLinus Torvalds	  bits to 448 bits in length.  It's fast, simple and specifically
2611da177e4SLinus Torvalds	  designed for use on "large microprocessors".
2621da177e4SLinus Torvalds
2631da177e4SLinus Torvalds	  See also:
2641da177e4SLinus Torvalds	  <http://www.schneier.com/blowfish.html>
2651da177e4SLinus Torvalds
2661da177e4SLinus Torvaldsconfig CRYPTO_TWOFISH
2671da177e4SLinus Torvalds	tristate "Twofish cipher algorithm"
268cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2692729bb42SJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
2701da177e4SLinus Torvalds	help
2711da177e4SLinus Torvalds	  Twofish cipher algorithm.
2721da177e4SLinus Torvalds
2731da177e4SLinus Torvalds	  Twofish was submitted as an AES (Advanced Encryption Standard)
2741da177e4SLinus Torvalds	  candidate cipher by researchers at CounterPane Systems.  It is a
2751da177e4SLinus Torvalds	  16 round block cipher supporting key sizes of 128, 192, and 256
2761da177e4SLinus Torvalds	  bits.
2771da177e4SLinus Torvalds
2781da177e4SLinus Torvalds	  See also:
2791da177e4SLinus Torvalds	  <http://www.schneier.com/twofish.html>
2801da177e4SLinus Torvalds
2812729bb42SJoachim Fritschiconfig CRYPTO_TWOFISH_COMMON
2822729bb42SJoachim Fritschi	tristate
2832729bb42SJoachim Fritschi	help
2842729bb42SJoachim Fritschi	  Common parts of the Twofish cipher algorithm shared by the
2852729bb42SJoachim Fritschi	  generic c and the assembler implementations.
2862729bb42SJoachim Fritschi
287b9f535ffSJoachim Fritschiconfig CRYPTO_TWOFISH_586
288b9f535ffSJoachim Fritschi	tristate "Twofish cipher algorithms (i586)"
289cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && !64BIT
290cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
291b9f535ffSJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
292b9f535ffSJoachim Fritschi	help
293b9f535ffSJoachim Fritschi	  Twofish cipher algorithm.
294b9f535ffSJoachim Fritschi
295b9f535ffSJoachim Fritschi	  Twofish was submitted as an AES (Advanced Encryption Standard)
296b9f535ffSJoachim Fritschi	  candidate cipher by researchers at CounterPane Systems.  It is a
297b9f535ffSJoachim Fritschi	  16 round block cipher supporting key sizes of 128, 192, and 256
298b9f535ffSJoachim Fritschi	  bits.
299b9f535ffSJoachim Fritschi
300b9f535ffSJoachim Fritschi	  See also:
301b9f535ffSJoachim Fritschi	  <http://www.schneier.com/twofish.html>
302b9f535ffSJoachim Fritschi
303eaf44088SJoachim Fritschiconfig CRYPTO_TWOFISH_X86_64
304eaf44088SJoachim Fritschi	tristate "Twofish cipher algorithm (x86_64)"
305cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && 64BIT
306cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
307eaf44088SJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
308eaf44088SJoachim Fritschi	help
309eaf44088SJoachim Fritschi	  Twofish cipher algorithm (x86_64).
310eaf44088SJoachim Fritschi
311eaf44088SJoachim Fritschi	  Twofish was submitted as an AES (Advanced Encryption Standard)
312eaf44088SJoachim Fritschi	  candidate cipher by researchers at CounterPane Systems.  It is a
313eaf44088SJoachim Fritschi	  16 round block cipher supporting key sizes of 128, 192, and 256
314eaf44088SJoachim Fritschi	  bits.
315eaf44088SJoachim Fritschi
316eaf44088SJoachim Fritschi	  See also:
317eaf44088SJoachim Fritschi	  <http://www.schneier.com/twofish.html>
318eaf44088SJoachim Fritschi
3191da177e4SLinus Torvaldsconfig CRYPTO_SERPENT
3201da177e4SLinus Torvalds	tristate "Serpent cipher algorithm"
321cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3221da177e4SLinus Torvalds	help
3231da177e4SLinus Torvalds	  Serpent cipher algorithm, by Anderson, Biham & Knudsen.
3241da177e4SLinus Torvalds
3251da177e4SLinus Torvalds	  Keys are allowed to be from 0 to 256 bits in length, in steps
3261da177e4SLinus Torvalds	  of 8 bits.  Also includes the 'Tnepres' algorithm, a reversed
3273dde6ad8SDavid Sterba	  variant of Serpent for compatibility with old kerneli.org code.
3281da177e4SLinus Torvalds
3291da177e4SLinus Torvalds	  See also:
3301da177e4SLinus Torvalds	  <http://www.cl.cam.ac.uk/~rja14/serpent.html>
3311da177e4SLinus Torvalds
3321da177e4SLinus Torvaldsconfig CRYPTO_AES
3331da177e4SLinus Torvalds	tristate "AES cipher algorithms"
334cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3351da177e4SLinus Torvalds	help
3361da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
3371da177e4SLinus Torvalds	  algorithm.
3381da177e4SLinus Torvalds
3391da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
3401da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
3411da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
3421da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
3431da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
3441da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
3451da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
3461da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
3471da177e4SLinus Torvalds
3481da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
3491da177e4SLinus Torvalds
3501da177e4SLinus Torvalds	  See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
3511da177e4SLinus Torvalds
3521da177e4SLinus Torvaldsconfig CRYPTO_AES_586
3531da177e4SLinus Torvalds	tristate "AES cipher algorithms (i586)"
354cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && !64BIT
355cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3565157dea8SSebastian Siewior	select CRYPTO_AES
3571da177e4SLinus Torvalds	help
3581da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
3591da177e4SLinus Torvalds	  algorithm.
3601da177e4SLinus Torvalds
3611da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
3621da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
3631da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
3641da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
3651da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
3661da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
3671da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
3681da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
3691da177e4SLinus Torvalds
3701da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
3711da177e4SLinus Torvalds
3721da177e4SLinus Torvalds	  See <http://csrc.nist.gov/encryption/aes/> for more information.
3731da177e4SLinus Torvalds
374a2a892a2SAndreas Steinmetzconfig CRYPTO_AES_X86_64
375a2a892a2SAndreas Steinmetz	tristate "AES cipher algorithms (x86_64)"
376cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && 64BIT
377cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
37881190b32SSebastian Siewior	select CRYPTO_AES
379a2a892a2SAndreas Steinmetz	help
380a2a892a2SAndreas Steinmetz	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
381a2a892a2SAndreas Steinmetz	  algorithm.
382a2a892a2SAndreas Steinmetz
383a2a892a2SAndreas Steinmetz	  Rijndael appears to be consistently a very good performer in
384a2a892a2SAndreas Steinmetz	  both hardware and software across a wide range of computing
385a2a892a2SAndreas Steinmetz	  environments regardless of its use in feedback or non-feedback
386a2a892a2SAndreas Steinmetz	  modes. Its key setup time is excellent, and its key agility is
387a2a892a2SAndreas Steinmetz	  good. Rijndael's very low memory requirements make it very well
388a2a892a2SAndreas Steinmetz	  suited for restricted-space environments, in which it also
389a2a892a2SAndreas Steinmetz	  demonstrates excellent performance. Rijndael's operations are
390a2a892a2SAndreas Steinmetz	  among the easiest to defend against power and timing attacks.
391a2a892a2SAndreas Steinmetz
392a2a892a2SAndreas Steinmetz	  The AES specifies three key sizes: 128, 192 and 256 bits
393a2a892a2SAndreas Steinmetz
394a2a892a2SAndreas Steinmetz	  See <http://csrc.nist.gov/encryption/aes/> for more information.
395a2a892a2SAndreas Steinmetz
3961da177e4SLinus Torvaldsconfig CRYPTO_CAST5
3971da177e4SLinus Torvalds	tristate "CAST5 (CAST-128) cipher algorithm"
398cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3991da177e4SLinus Torvalds	help
4001da177e4SLinus Torvalds	  The CAST5 encryption algorithm (synonymous with CAST-128) is
4011da177e4SLinus Torvalds	  described in RFC2144.
4021da177e4SLinus Torvalds
4031da177e4SLinus Torvaldsconfig CRYPTO_CAST6
4041da177e4SLinus Torvalds	tristate "CAST6 (CAST-256) cipher algorithm"
405cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4061da177e4SLinus Torvalds	help
4071da177e4SLinus Torvalds	  The CAST6 encryption algorithm (synonymous with CAST-256) is
4081da177e4SLinus Torvalds	  described in RFC2612.
4091da177e4SLinus Torvalds
4101da177e4SLinus Torvaldsconfig CRYPTO_TEA
411fb4f10edSAaron Grothe	tristate "TEA, XTEA and XETA cipher algorithms"
412cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4131da177e4SLinus Torvalds	help
4141da177e4SLinus Torvalds	  TEA cipher algorithm.
4151da177e4SLinus Torvalds
4161da177e4SLinus Torvalds	  Tiny Encryption Algorithm is a simple cipher that uses
4171da177e4SLinus Torvalds	  many rounds for security.  It is very fast and uses
4181da177e4SLinus Torvalds	  little memory.
4191da177e4SLinus Torvalds
4201da177e4SLinus Torvalds	  Xtendend Tiny Encryption Algorithm is a modification to
4211da177e4SLinus Torvalds	  the TEA algorithm to address a potential key weakness
4221da177e4SLinus Torvalds	  in the TEA algorithm.
4231da177e4SLinus Torvalds
424fb4f10edSAaron Grothe	  Xtendend Encryption Tiny Algorithm is a mis-implementation
425fb4f10edSAaron Grothe	  of the XTEA algorithm for compatibility purposes.
426fb4f10edSAaron Grothe
4271da177e4SLinus Torvaldsconfig CRYPTO_ARC4
4281da177e4SLinus Torvalds	tristate "ARC4 cipher algorithm"
429cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4301da177e4SLinus Torvalds	help
4311da177e4SLinus Torvalds	  ARC4 cipher algorithm.
4321da177e4SLinus Torvalds
4331da177e4SLinus Torvalds	  ARC4 is a stream cipher using keys ranging from 8 bits to 2048
4341da177e4SLinus Torvalds	  bits in length.  This algorithm is required for driver-based
4351da177e4SLinus Torvalds	  WEP, but it should not be for other purposes because of the
4361da177e4SLinus Torvalds	  weakness of the algorithm.
4371da177e4SLinus Torvalds
4381da177e4SLinus Torvaldsconfig CRYPTO_KHAZAD
4391da177e4SLinus Torvalds	tristate "Khazad cipher algorithm"
440cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4411da177e4SLinus Torvalds	help
4421da177e4SLinus Torvalds	  Khazad cipher algorithm.
4431da177e4SLinus Torvalds
4441da177e4SLinus Torvalds	  Khazad was a finalist in the initial NESSIE competition.  It is
4451da177e4SLinus Torvalds	  an algorithm optimized for 64-bit processors with good performance
4461da177e4SLinus Torvalds	  on 32-bit processors.  Khazad uses an 128 bit key size.
4471da177e4SLinus Torvalds
4481da177e4SLinus Torvalds	  See also:
4491da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
4501da177e4SLinus Torvalds
4511da177e4SLinus Torvaldsconfig CRYPTO_ANUBIS
4521da177e4SLinus Torvalds	tristate "Anubis cipher algorithm"
453cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4541da177e4SLinus Torvalds	help
4551da177e4SLinus Torvalds	  Anubis cipher algorithm.
4561da177e4SLinus Torvalds
4571da177e4SLinus Torvalds	  Anubis is a variable key length cipher which can use keys from
4581da177e4SLinus Torvalds	  128 bits to 320 bits in length.  It was evaluated as a entrant
4591da177e4SLinus Torvalds	  in the NESSIE competition.
4601da177e4SLinus Torvalds
4611da177e4SLinus Torvalds	  See also:
4621da177e4SLinus Torvalds	  <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
4631da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
4641da177e4SLinus Torvalds
465e2ee95b8SHye-Shik Changconfig CRYPTO_SEED
466e2ee95b8SHye-Shik Chang	tristate "SEED cipher algorithm"
467e2ee95b8SHye-Shik Chang	select CRYPTO_ALGAPI
468e2ee95b8SHye-Shik Chang	help
469e2ee95b8SHye-Shik Chang	  SEED cipher algorithm (RFC4269).
470e2ee95b8SHye-Shik Chang
471e2ee95b8SHye-Shik Chang	  SEED is a 128-bit symmetric key block cipher that has been
472e2ee95b8SHye-Shik Chang	  developed by KISA (Korea Information Security Agency) as a
473e2ee95b8SHye-Shik Chang	  national standard encryption algorithm of the Republic of Korea.
474e2ee95b8SHye-Shik Chang	  It is a 16 round block cipher with the key size of 128 bit.
475e2ee95b8SHye-Shik Chang
476e2ee95b8SHye-Shik Chang	  See also:
477e2ee95b8SHye-Shik Chang	  <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
478e2ee95b8SHye-Shik Chang
4792407d608STan Swee Hengconfig CRYPTO_SALSA20
4802407d608STan Swee Heng	tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)"
4812407d608STan Swee Heng	depends on EXPERIMENTAL
4822407d608STan Swee Heng	select CRYPTO_BLKCIPHER
4832407d608STan Swee Heng	help
4842407d608STan Swee Heng	  Salsa20 stream cipher algorithm.
4852407d608STan Swee Heng
4862407d608STan Swee Heng	  Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
4872407d608STan Swee Heng	  Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
4882407d608STan Swee Heng
4892407d608STan Swee Heng	  The Salsa20 stream cipher algorithm is designed by Daniel J.
4902407d608STan Swee Heng	  Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
4911da177e4SLinus Torvalds
492974e4b75STan Swee Hengconfig CRYPTO_SALSA20_586
493974e4b75STan Swee Heng	tristate "Salsa20 stream cipher algorithm (i586) (EXPERIMENTAL)"
494974e4b75STan Swee Heng	depends on (X86 || UML_X86) && !64BIT
495974e4b75STan Swee Heng	depends on EXPERIMENTAL
496974e4b75STan Swee Heng	select CRYPTO_BLKCIPHER
497974e4b75STan Swee Heng	select CRYPTO_SALSA20
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
507*9a7dafbbSTan Swee Hengconfig CRYPTO_SALSA20_X86_64
508*9a7dafbbSTan Swee Heng	tristate "Salsa20 stream cipher algorithm (x86_64) (EXPERIMENTAL)"
509*9a7dafbbSTan Swee Heng	depends on (X86 || UML_X86) && 64BIT
510*9a7dafbbSTan Swee Heng	depends on EXPERIMENTAL
511*9a7dafbbSTan Swee Heng	select CRYPTO_BLKCIPHER
512*9a7dafbbSTan Swee Heng	select CRYPTO_SALSA20
513*9a7dafbbSTan Swee Heng	help
514*9a7dafbbSTan Swee Heng	  Salsa20 stream cipher algorithm.
515*9a7dafbbSTan Swee Heng
516*9a7dafbbSTan Swee Heng	  Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
517*9a7dafbbSTan Swee Heng	  Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
518*9a7dafbbSTan Swee Heng
519*9a7dafbbSTan Swee Heng	  The Salsa20 stream cipher algorithm is designed by Daniel J.
520*9a7dafbbSTan Swee Heng	  Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
521*9a7dafbbSTan Swee Heng
5221da177e4SLinus Torvaldsconfig CRYPTO_DEFLATE
5231da177e4SLinus Torvalds	tristate "Deflate compression algorithm"
524cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
5251da177e4SLinus Torvalds	select ZLIB_INFLATE
5261da177e4SLinus Torvalds	select ZLIB_DEFLATE
5271da177e4SLinus Torvalds	help
5281da177e4SLinus Torvalds	  This is the Deflate algorithm (RFC1951), specified for use in
5291da177e4SLinus Torvalds	  IPSec with the IPCOMP protocol (RFC3173, RFC2394).
5301da177e4SLinus Torvalds
5311da177e4SLinus Torvalds	  You will most probably want this if using IPSec.
5321da177e4SLinus Torvalds
5331da177e4SLinus Torvaldsconfig CRYPTO_MICHAEL_MIC
5341da177e4SLinus Torvalds	tristate "Michael MIC keyed digest algorithm"
535cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
5361da177e4SLinus Torvalds	help
5371da177e4SLinus Torvalds	  Michael MIC is used for message integrity protection in TKIP
5381da177e4SLinus Torvalds	  (IEEE 802.11i). This algorithm is required for TKIP, but it
5391da177e4SLinus Torvalds	  should not be used for other purposes because of the weakness
5401da177e4SLinus Torvalds	  of the algorithm.
5411da177e4SLinus Torvalds
5421da177e4SLinus Torvaldsconfig CRYPTO_CRC32C
5431da177e4SLinus Torvalds	tristate "CRC32c CRC algorithm"
544cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
5451da177e4SLinus Torvalds	select LIBCRC32C
5461da177e4SLinus Torvalds	help
5471da177e4SLinus Torvalds	  Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
5481da177e4SLinus Torvalds	  by iSCSI for header and data digests and by others.
5491da177e4SLinus Torvalds	  See Castagnoli93.  This implementation uses lib/libcrc32c.
5501da177e4SLinus Torvalds          Module will be crc32c.
5511da177e4SLinus Torvalds
55204ac7db3SNoriaki TAKAMIYAconfig CRYPTO_CAMELLIA
55304ac7db3SNoriaki TAKAMIYA	tristate "Camellia cipher algorithms"
55404ac7db3SNoriaki TAKAMIYA	depends on CRYPTO
55504ac7db3SNoriaki TAKAMIYA	select CRYPTO_ALGAPI
55604ac7db3SNoriaki TAKAMIYA	help
55704ac7db3SNoriaki TAKAMIYA	  Camellia cipher algorithms module.
55804ac7db3SNoriaki TAKAMIYA
55904ac7db3SNoriaki TAKAMIYA	  Camellia is a symmetric key block cipher developed jointly
56004ac7db3SNoriaki TAKAMIYA	  at NTT and Mitsubishi Electric Corporation.
56104ac7db3SNoriaki TAKAMIYA
56204ac7db3SNoriaki TAKAMIYA	  The Camellia specifies three key sizes: 128, 192 and 256 bits.
56304ac7db3SNoriaki TAKAMIYA
56404ac7db3SNoriaki TAKAMIYA	  See also:
56504ac7db3SNoriaki TAKAMIYA	  <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
56604ac7db3SNoriaki TAKAMIYA
5671da177e4SLinus Torvaldsconfig CRYPTO_TEST
5681da177e4SLinus Torvalds	tristate "Testing module"
569cce9e06dSHerbert Xu	depends on m
570cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
5711da177e4SLinus Torvalds	help
5721da177e4SLinus Torvalds	  Quick & dirty crypto test module.
5731da177e4SLinus Torvalds
5743c09f17cSHerbert Xuconfig CRYPTO_AUTHENC
5753c09f17cSHerbert Xu	tristate "Authenc support"
5763c09f17cSHerbert Xu	select CRYPTO_AEAD
5773c09f17cSHerbert Xu	select CRYPTO_MANAGER
5785e553110SBorislav Petkov	select CRYPTO_HASH
5793c09f17cSHerbert Xu	help
5803c09f17cSHerbert Xu	  Authenc: Combined mode wrapper for IPsec.
5813c09f17cSHerbert Xu	  This is required for IPSec.
5823c09f17cSHerbert Xu
5830b77abb3SZoltan Sogorconfig CRYPTO_LZO
5840b77abb3SZoltan Sogor	tristate "LZO compression algorithm"
5850b77abb3SZoltan Sogor	select CRYPTO_ALGAPI
5860b77abb3SZoltan Sogor	select LZO_COMPRESS
5870b77abb3SZoltan Sogor	select LZO_DECOMPRESS
5880b77abb3SZoltan Sogor	help
5890b77abb3SZoltan Sogor	  This is the LZO algorithm.
5900b77abb3SZoltan Sogor
5911da177e4SLinus Torvaldssource "drivers/crypto/Kconfig"
5921da177e4SLinus Torvalds
593cce9e06dSHerbert Xuendif	# if CRYPTO
594