xref: /linux/crypto/Kconfig (revision 2407d60872dd2a95404c6048f775f3b64d438f4b)
11da177e4SLinus Torvalds#
2685784aaSDan Williams# Generic algorithms support
3685784aaSDan Williams#
4685784aaSDan Williamsconfig XOR_BLOCKS
5685784aaSDan Williams	tristate
6685784aaSDan Williams
7685784aaSDan Williams#
89bc89cd8SDan Williams# async_tx api: hardware offloaded memory transfer/transform support
99bc89cd8SDan Williams#
109bc89cd8SDan Williamssource "crypto/async_tx/Kconfig"
119bc89cd8SDan Williams
129bc89cd8SDan Williams#
131da177e4SLinus Torvalds# Cryptographic API Configuration
141da177e4SLinus Torvalds#
152e290f43SJan Engelhardtmenuconfig CRYPTO
161da177e4SLinus Torvalds	bool "Cryptographic API"
171da177e4SLinus Torvalds	help
181da177e4SLinus Torvalds	  This option provides the core Cryptographic API.
191da177e4SLinus Torvalds
20cce9e06dSHerbert Xuif CRYPTO
21cce9e06dSHerbert Xu
22cce9e06dSHerbert Xuconfig CRYPTO_ALGAPI
23cce9e06dSHerbert Xu	tristate
24cce9e06dSHerbert Xu	help
25cce9e06dSHerbert Xu	  This option provides the API for cryptographic algorithms.
26cce9e06dSHerbert Xu
27b5b7f088SHerbert Xuconfig CRYPTO_ABLKCIPHER
28b5b7f088SHerbert Xu	tristate
29b5b7f088SHerbert Xu	select CRYPTO_BLKCIPHER
30b5b7f088SHerbert Xu
311ae97820SHerbert Xuconfig CRYPTO_AEAD
321ae97820SHerbert Xu	tristate
331ae97820SHerbert Xu	select CRYPTO_ALGAPI
341ae97820SHerbert Xu
355cde0af2SHerbert Xuconfig CRYPTO_BLKCIPHER
365cde0af2SHerbert Xu	tristate
375cde0af2SHerbert Xu	select CRYPTO_ALGAPI
385cde0af2SHerbert Xu
39055bcee3SHerbert Xuconfig CRYPTO_HASH
40055bcee3SHerbert Xu	tristate
41055bcee3SHerbert Xu	select CRYPTO_ALGAPI
42055bcee3SHerbert Xu
432b8c19dbSHerbert Xuconfig CRYPTO_MANAGER
442b8c19dbSHerbert Xu	tristate "Cryptographic algorithm manager"
452b8c19dbSHerbert Xu	select CRYPTO_ALGAPI
462b8c19dbSHerbert Xu	help
472b8c19dbSHerbert Xu	  Create default cryptographic template instantiations such as
482b8c19dbSHerbert Xu	  cbc(aes).
492b8c19dbSHerbert Xu
501da177e4SLinus Torvaldsconfig CRYPTO_HMAC
518425165dSHerbert Xu	tristate "HMAC support"
520796ae06SHerbert Xu	select CRYPTO_HASH
5343518407SHerbert Xu	select CRYPTO_MANAGER
541da177e4SLinus Torvalds	help
551da177e4SLinus Torvalds	  HMAC: Keyed-Hashing for Message Authentication (RFC2104).
561da177e4SLinus Torvalds	  This is required for IPSec.
571da177e4SLinus Torvalds
58333b0d7eSKazunori MIYAZAWAconfig CRYPTO_XCBC
59333b0d7eSKazunori MIYAZAWA	tristate "XCBC support"
60333b0d7eSKazunori MIYAZAWA	depends on EXPERIMENTAL
61333b0d7eSKazunori MIYAZAWA	select CRYPTO_HASH
62333b0d7eSKazunori MIYAZAWA	select CRYPTO_MANAGER
63333b0d7eSKazunori MIYAZAWA	help
64333b0d7eSKazunori MIYAZAWA	  XCBC: Keyed-Hashing with encryption algorithm
65333b0d7eSKazunori MIYAZAWA		http://www.ietf.org/rfc/rfc3566.txt
66333b0d7eSKazunori MIYAZAWA		http://csrc.nist.gov/encryption/modes/proposedmodes/
67333b0d7eSKazunori MIYAZAWA		 xcbc-mac/xcbc-mac-spec.pdf
68333b0d7eSKazunori MIYAZAWA
691da177e4SLinus Torvaldsconfig CRYPTO_NULL
701da177e4SLinus Torvalds	tristate "Null algorithms"
71cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
721da177e4SLinus Torvalds	help
731da177e4SLinus Torvalds	  These are 'Null' algorithms, used by IPsec, which do nothing.
741da177e4SLinus Torvalds
751da177e4SLinus Torvaldsconfig CRYPTO_MD4
761da177e4SLinus Torvalds	tristate "MD4 digest algorithm"
77cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
781da177e4SLinus Torvalds	help
791da177e4SLinus Torvalds	  MD4 message digest algorithm (RFC1320).
801da177e4SLinus Torvalds
811da177e4SLinus Torvaldsconfig CRYPTO_MD5
821da177e4SLinus Torvalds	tristate "MD5 digest algorithm"
83cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
841da177e4SLinus Torvalds	help
851da177e4SLinus Torvalds	  MD5 message digest algorithm (RFC1321).
861da177e4SLinus Torvalds
871da177e4SLinus Torvaldsconfig CRYPTO_SHA1
881da177e4SLinus Torvalds	tristate "SHA1 digest algorithm"
89cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
901da177e4SLinus Torvalds	help
911da177e4SLinus Torvalds	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
921da177e4SLinus Torvalds
931da177e4SLinus Torvaldsconfig CRYPTO_SHA256
94cd12fb90SJonathan Lynch	tristate "SHA224 and SHA256 digest algorithm"
95cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
961da177e4SLinus Torvalds	help
971da177e4SLinus Torvalds	  SHA256 secure hash standard (DFIPS 180-2).
981da177e4SLinus Torvalds
991da177e4SLinus Torvalds	  This version of SHA implements a 256 bit hash with 128 bits of
1001da177e4SLinus Torvalds	  security against collision attacks.
1011da177e4SLinus Torvalds
102cd12fb90SJonathan Lynch          This code also includes SHA-224, a 224 bit hash with 112 bits
103cd12fb90SJonathan Lynch          of security against collision attacks.
104cd12fb90SJonathan Lynch
1051da177e4SLinus Torvaldsconfig CRYPTO_SHA512
1061da177e4SLinus Torvalds	tristate "SHA384 and SHA512 digest algorithms"
107cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1081da177e4SLinus Torvalds	help
1091da177e4SLinus Torvalds	  SHA512 secure hash standard (DFIPS 180-2).
1101da177e4SLinus Torvalds
1111da177e4SLinus Torvalds	  This version of SHA implements a 512 bit hash with 256 bits of
1121da177e4SLinus Torvalds	  security against collision attacks.
1131da177e4SLinus Torvalds
1141da177e4SLinus Torvalds	  This code also includes SHA-384, a 384 bit hash with 192 bits
1151da177e4SLinus Torvalds	  of security against collision attacks.
1161da177e4SLinus Torvalds
1171da177e4SLinus Torvaldsconfig CRYPTO_WP512
1181da177e4SLinus Torvalds	tristate "Whirlpool digest algorithms"
119cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1201da177e4SLinus Torvalds	help
1211da177e4SLinus Torvalds	  Whirlpool hash algorithm 512, 384 and 256-bit hashes
1221da177e4SLinus Torvalds
1231da177e4SLinus Torvalds	  Whirlpool-512 is part of the NESSIE cryptographic primitives.
1241da177e4SLinus Torvalds	  Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
1251da177e4SLinus Torvalds
1261da177e4SLinus Torvalds	  See also:
1271da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
1281da177e4SLinus Torvalds
1291da177e4SLinus Torvaldsconfig CRYPTO_TGR192
1301da177e4SLinus Torvalds	tristate "Tiger digest algorithms"
131cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1321da177e4SLinus Torvalds	help
1331da177e4SLinus Torvalds	  Tiger hash algorithm 192, 160 and 128-bit hashes
1341da177e4SLinus Torvalds
1351da177e4SLinus Torvalds	  Tiger is a hash function optimized for 64-bit processors while
1361da177e4SLinus Torvalds	  still having decent performance on 32-bit processors.
1371da177e4SLinus Torvalds	  Tiger was developed by Ross Anderson and Eli Biham.
1381da177e4SLinus Torvalds
1391da177e4SLinus Torvalds	  See also:
1401da177e4SLinus Torvalds	  <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
1411da177e4SLinus Torvalds
142c494e070SRik Snelconfig CRYPTO_GF128MUL
143c494e070SRik Snel	tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
144c494e070SRik Snel	depends on EXPERIMENTAL
145c494e070SRik Snel	help
146c494e070SRik Snel	  Efficient table driven implementation of multiplications in the
147c494e070SRik Snel	  field GF(2^128).  This is needed by some cypher modes. This
148c494e070SRik Snel	  option will be selected automatically if you select such a
149c494e070SRik Snel	  cipher mode.  Only select this option by hand if you expect to load
150c494e070SRik Snel	  an external module that requires these functions.
151c494e070SRik Snel
152db131ef9SHerbert Xuconfig CRYPTO_ECB
153db131ef9SHerbert Xu	tristate "ECB support"
154db131ef9SHerbert Xu	select CRYPTO_BLKCIPHER
15543518407SHerbert Xu	select CRYPTO_MANAGER
156db131ef9SHerbert Xu	help
157db131ef9SHerbert Xu	  ECB: Electronic CodeBook mode
158db131ef9SHerbert Xu	  This is the simplest block cipher algorithm.  It simply encrypts
159db131ef9SHerbert Xu	  the input block by block.
160db131ef9SHerbert Xu
161db131ef9SHerbert Xuconfig CRYPTO_CBC
162db131ef9SHerbert Xu	tristate "CBC support"
163db131ef9SHerbert Xu	select CRYPTO_BLKCIPHER
16443518407SHerbert Xu	select CRYPTO_MANAGER
165db131ef9SHerbert Xu	help
166db131ef9SHerbert Xu	  CBC: Cipher Block Chaining mode
167db131ef9SHerbert Xu	  This block cipher algorithm is required for IPSec.
168db131ef9SHerbert Xu
16991652be5SDavid Howellsconfig CRYPTO_PCBC
17091652be5SDavid Howells	tristate "PCBC support"
17191652be5SDavid Howells	select CRYPTO_BLKCIPHER
17291652be5SDavid Howells	select CRYPTO_MANAGER
17391652be5SDavid Howells	help
17491652be5SDavid Howells	  PCBC: Propagating Cipher Block Chaining mode
17591652be5SDavid Howells	  This block cipher algorithm is required for RxRPC.
17691652be5SDavid Howells
17764470f1bSRik Snelconfig CRYPTO_LRW
17864470f1bSRik Snel	tristate "LRW support (EXPERIMENTAL)"
17964470f1bSRik Snel	depends on EXPERIMENTAL
18064470f1bSRik Snel	select CRYPTO_BLKCIPHER
18164470f1bSRik Snel	select CRYPTO_MANAGER
18264470f1bSRik Snel	select CRYPTO_GF128MUL
18364470f1bSRik Snel	help
18464470f1bSRik Snel	  LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
18564470f1bSRik Snel	  narrow block cipher mode for dm-crypt.  Use it with cipher
18664470f1bSRik Snel	  specification string aes-lrw-benbi, the key must be 256, 320 or 384.
18764470f1bSRik Snel	  The first 128, 192 or 256 bits in the key are used for AES and the
18864470f1bSRik Snel	  rest is used to tie each cipher block to its logical position.
18964470f1bSRik Snel
190f19f5111SRik Snelconfig CRYPTO_XTS
191f19f5111SRik Snel	tristate "XTS support (EXPERIMENTAL)"
192f19f5111SRik Snel	depends on EXPERIMENTAL
193f19f5111SRik Snel	select CRYPTO_BLKCIPHER
194f19f5111SRik Snel	select CRYPTO_MANAGER
195f19f5111SRik Snel	select CRYPTO_GF128MUL
196f19f5111SRik Snel	help
197f19f5111SRik Snel	  XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
198f19f5111SRik Snel	  key size 256, 384 or 512 bits. This implementation currently
199f19f5111SRik Snel	  can't handle a sectorsize which is not a multiple of 16 bytes.
200f19f5111SRik Snel
20123e353c8SJoy Lattenconfig CRYPTO_CTR
20223e353c8SJoy Latten	tristate "CTR support"
20323e353c8SJoy Latten	select CRYPTO_BLKCIPHER
20423e353c8SJoy Latten	select CRYPTO_MANAGER
20523e353c8SJoy Latten	help
20623e353c8SJoy Latten	  CTR: Counter mode
20723e353c8SJoy Latten	  This block cipher algorithm is required for IPSec.
20823e353c8SJoy Latten
209124b53d0SHerbert Xuconfig CRYPTO_CRYPTD
210124b53d0SHerbert Xu	tristate "Software async crypto daemon"
211124b53d0SHerbert Xu	select CRYPTO_ABLKCIPHER
212124b53d0SHerbert Xu	select CRYPTO_MANAGER
213124b53d0SHerbert Xu	help
214124b53d0SHerbert Xu	  This is a generic software asynchronous crypto daemon that
215124b53d0SHerbert Xu	  converts an arbitrary synchronous software crypto algorithm
216124b53d0SHerbert Xu	  into an asynchronous algorithm that executes in a kernel thread.
217124b53d0SHerbert Xu
2181da177e4SLinus Torvaldsconfig CRYPTO_DES
2191da177e4SLinus Torvalds	tristate "DES and Triple DES EDE cipher algorithms"
220cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2211da177e4SLinus Torvalds	help
2221da177e4SLinus Torvalds	  DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
2231da177e4SLinus Torvalds
22490831639SDavid Howellsconfig CRYPTO_FCRYPT
22590831639SDavid Howells	tristate "FCrypt cipher algorithm"
22690831639SDavid Howells	select CRYPTO_ALGAPI
22790831639SDavid Howells	select CRYPTO_BLKCIPHER
22890831639SDavid Howells	help
22990831639SDavid Howells	  FCrypt algorithm used by RxRPC.
23090831639SDavid Howells
2311da177e4SLinus Torvaldsconfig CRYPTO_BLOWFISH
2321da177e4SLinus Torvalds	tristate "Blowfish cipher algorithm"
233cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2341da177e4SLinus Torvalds	help
2351da177e4SLinus Torvalds	  Blowfish cipher algorithm, by Bruce Schneier.
2361da177e4SLinus Torvalds
2371da177e4SLinus Torvalds	  This is a variable key length cipher which can use keys from 32
2381da177e4SLinus Torvalds	  bits to 448 bits in length.  It's fast, simple and specifically
2391da177e4SLinus Torvalds	  designed for use on "large microprocessors".
2401da177e4SLinus Torvalds
2411da177e4SLinus Torvalds	  See also:
2421da177e4SLinus Torvalds	  <http://www.schneier.com/blowfish.html>
2431da177e4SLinus Torvalds
2441da177e4SLinus Torvaldsconfig CRYPTO_TWOFISH
2451da177e4SLinus Torvalds	tristate "Twofish cipher algorithm"
246cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2472729bb42SJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
2481da177e4SLinus Torvalds	help
2491da177e4SLinus Torvalds	  Twofish cipher algorithm.
2501da177e4SLinus Torvalds
2511da177e4SLinus Torvalds	  Twofish was submitted as an AES (Advanced Encryption Standard)
2521da177e4SLinus Torvalds	  candidate cipher by researchers at CounterPane Systems.  It is a
2531da177e4SLinus Torvalds	  16 round block cipher supporting key sizes of 128, 192, and 256
2541da177e4SLinus Torvalds	  bits.
2551da177e4SLinus Torvalds
2561da177e4SLinus Torvalds	  See also:
2571da177e4SLinus Torvalds	  <http://www.schneier.com/twofish.html>
2581da177e4SLinus Torvalds
2592729bb42SJoachim Fritschiconfig CRYPTO_TWOFISH_COMMON
2602729bb42SJoachim Fritschi	tristate
2612729bb42SJoachim Fritschi	help
2622729bb42SJoachim Fritschi	  Common parts of the Twofish cipher algorithm shared by the
2632729bb42SJoachim Fritschi	  generic c and the assembler implementations.
2642729bb42SJoachim Fritschi
265b9f535ffSJoachim Fritschiconfig CRYPTO_TWOFISH_586
266b9f535ffSJoachim Fritschi	tristate "Twofish cipher algorithms (i586)"
267cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && !64BIT
268cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
269b9f535ffSJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
270b9f535ffSJoachim Fritschi	help
271b9f535ffSJoachim Fritschi	  Twofish cipher algorithm.
272b9f535ffSJoachim Fritschi
273b9f535ffSJoachim Fritschi	  Twofish was submitted as an AES (Advanced Encryption Standard)
274b9f535ffSJoachim Fritschi	  candidate cipher by researchers at CounterPane Systems.  It is a
275b9f535ffSJoachim Fritschi	  16 round block cipher supporting key sizes of 128, 192, and 256
276b9f535ffSJoachim Fritschi	  bits.
277b9f535ffSJoachim Fritschi
278b9f535ffSJoachim Fritschi	  See also:
279b9f535ffSJoachim Fritschi	  <http://www.schneier.com/twofish.html>
280b9f535ffSJoachim Fritschi
281eaf44088SJoachim Fritschiconfig CRYPTO_TWOFISH_X86_64
282eaf44088SJoachim Fritschi	tristate "Twofish cipher algorithm (x86_64)"
283cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && 64BIT
284cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
285eaf44088SJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
286eaf44088SJoachim Fritschi	help
287eaf44088SJoachim Fritschi	  Twofish cipher algorithm (x86_64).
288eaf44088SJoachim Fritschi
289eaf44088SJoachim Fritschi	  Twofish was submitted as an AES (Advanced Encryption Standard)
290eaf44088SJoachim Fritschi	  candidate cipher by researchers at CounterPane Systems.  It is a
291eaf44088SJoachim Fritschi	  16 round block cipher supporting key sizes of 128, 192, and 256
292eaf44088SJoachim Fritschi	  bits.
293eaf44088SJoachim Fritschi
294eaf44088SJoachim Fritschi	  See also:
295eaf44088SJoachim Fritschi	  <http://www.schneier.com/twofish.html>
296eaf44088SJoachim Fritschi
2971da177e4SLinus Torvaldsconfig CRYPTO_SERPENT
2981da177e4SLinus Torvalds	tristate "Serpent cipher algorithm"
299cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3001da177e4SLinus Torvalds	help
3011da177e4SLinus Torvalds	  Serpent cipher algorithm, by Anderson, Biham & Knudsen.
3021da177e4SLinus Torvalds
3031da177e4SLinus Torvalds	  Keys are allowed to be from 0 to 256 bits in length, in steps
3041da177e4SLinus Torvalds	  of 8 bits.  Also includes the 'Tnepres' algorithm, a reversed
3053dde6ad8SDavid Sterba	  variant of Serpent for compatibility with old kerneli.org code.
3061da177e4SLinus Torvalds
3071da177e4SLinus Torvalds	  See also:
3081da177e4SLinus Torvalds	  <http://www.cl.cam.ac.uk/~rja14/serpent.html>
3091da177e4SLinus Torvalds
3101da177e4SLinus Torvaldsconfig CRYPTO_AES
3111da177e4SLinus Torvalds	tristate "AES cipher algorithms"
312cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3131da177e4SLinus Torvalds	help
3141da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
3151da177e4SLinus Torvalds	  algorithm.
3161da177e4SLinus Torvalds
3171da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
3181da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
3191da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
3201da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
3211da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
3221da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
3231da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
3241da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
3251da177e4SLinus Torvalds
3261da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
3271da177e4SLinus Torvalds
3281da177e4SLinus Torvalds	  See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
3291da177e4SLinus Torvalds
3301da177e4SLinus Torvaldsconfig CRYPTO_AES_586
3311da177e4SLinus Torvalds	tristate "AES cipher algorithms (i586)"
332cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && !64BIT
333cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3345157dea8SSebastian Siewior	select CRYPTO_AES
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/encryption/aes/> for more information.
3511da177e4SLinus Torvalds
352a2a892a2SAndreas Steinmetzconfig CRYPTO_AES_X86_64
353a2a892a2SAndreas Steinmetz	tristate "AES cipher algorithms (x86_64)"
354cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && 64BIT
355cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
35681190b32SSebastian Siewior	select CRYPTO_AES
357a2a892a2SAndreas Steinmetz	help
358a2a892a2SAndreas Steinmetz	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
359a2a892a2SAndreas Steinmetz	  algorithm.
360a2a892a2SAndreas Steinmetz
361a2a892a2SAndreas Steinmetz	  Rijndael appears to be consistently a very good performer in
362a2a892a2SAndreas Steinmetz	  both hardware and software across a wide range of computing
363a2a892a2SAndreas Steinmetz	  environments regardless of its use in feedback or non-feedback
364a2a892a2SAndreas Steinmetz	  modes. Its key setup time is excellent, and its key agility is
365a2a892a2SAndreas Steinmetz	  good. Rijndael's very low memory requirements make it very well
366a2a892a2SAndreas Steinmetz	  suited for restricted-space environments, in which it also
367a2a892a2SAndreas Steinmetz	  demonstrates excellent performance. Rijndael's operations are
368a2a892a2SAndreas Steinmetz	  among the easiest to defend against power and timing attacks.
369a2a892a2SAndreas Steinmetz
370a2a892a2SAndreas Steinmetz	  The AES specifies three key sizes: 128, 192 and 256 bits
371a2a892a2SAndreas Steinmetz
372a2a892a2SAndreas Steinmetz	  See <http://csrc.nist.gov/encryption/aes/> for more information.
373a2a892a2SAndreas Steinmetz
3741da177e4SLinus Torvaldsconfig CRYPTO_CAST5
3751da177e4SLinus Torvalds	tristate "CAST5 (CAST-128) cipher algorithm"
376cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3771da177e4SLinus Torvalds	help
3781da177e4SLinus Torvalds	  The CAST5 encryption algorithm (synonymous with CAST-128) is
3791da177e4SLinus Torvalds	  described in RFC2144.
3801da177e4SLinus Torvalds
3811da177e4SLinus Torvaldsconfig CRYPTO_CAST6
3821da177e4SLinus Torvalds	tristate "CAST6 (CAST-256) cipher algorithm"
383cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3841da177e4SLinus Torvalds	help
3851da177e4SLinus Torvalds	  The CAST6 encryption algorithm (synonymous with CAST-256) is
3861da177e4SLinus Torvalds	  described in RFC2612.
3871da177e4SLinus Torvalds
3881da177e4SLinus Torvaldsconfig CRYPTO_TEA
389fb4f10edSAaron Grothe	tristate "TEA, XTEA and XETA cipher algorithms"
390cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3911da177e4SLinus Torvalds	help
3921da177e4SLinus Torvalds	  TEA cipher algorithm.
3931da177e4SLinus Torvalds
3941da177e4SLinus Torvalds	  Tiny Encryption Algorithm is a simple cipher that uses
3951da177e4SLinus Torvalds	  many rounds for security.  It is very fast and uses
3961da177e4SLinus Torvalds	  little memory.
3971da177e4SLinus Torvalds
3981da177e4SLinus Torvalds	  Xtendend Tiny Encryption Algorithm is a modification to
3991da177e4SLinus Torvalds	  the TEA algorithm to address a potential key weakness
4001da177e4SLinus Torvalds	  in the TEA algorithm.
4011da177e4SLinus Torvalds
402fb4f10edSAaron Grothe	  Xtendend Encryption Tiny Algorithm is a mis-implementation
403fb4f10edSAaron Grothe	  of the XTEA algorithm for compatibility purposes.
404fb4f10edSAaron Grothe
4051da177e4SLinus Torvaldsconfig CRYPTO_ARC4
4061da177e4SLinus Torvalds	tristate "ARC4 cipher algorithm"
407cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4081da177e4SLinus Torvalds	help
4091da177e4SLinus Torvalds	  ARC4 cipher algorithm.
4101da177e4SLinus Torvalds
4111da177e4SLinus Torvalds	  ARC4 is a stream cipher using keys ranging from 8 bits to 2048
4121da177e4SLinus Torvalds	  bits in length.  This algorithm is required for driver-based
4131da177e4SLinus Torvalds	  WEP, but it should not be for other purposes because of the
4141da177e4SLinus Torvalds	  weakness of the algorithm.
4151da177e4SLinus Torvalds
4161da177e4SLinus Torvaldsconfig CRYPTO_KHAZAD
4171da177e4SLinus Torvalds	tristate "Khazad cipher algorithm"
418cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4191da177e4SLinus Torvalds	help
4201da177e4SLinus Torvalds	  Khazad cipher algorithm.
4211da177e4SLinus Torvalds
4221da177e4SLinus Torvalds	  Khazad was a finalist in the initial NESSIE competition.  It is
4231da177e4SLinus Torvalds	  an algorithm optimized for 64-bit processors with good performance
4241da177e4SLinus Torvalds	  on 32-bit processors.  Khazad uses an 128 bit key size.
4251da177e4SLinus Torvalds
4261da177e4SLinus Torvalds	  See also:
4271da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
4281da177e4SLinus Torvalds
4291da177e4SLinus Torvaldsconfig CRYPTO_ANUBIS
4301da177e4SLinus Torvalds	tristate "Anubis cipher algorithm"
431cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4321da177e4SLinus Torvalds	help
4331da177e4SLinus Torvalds	  Anubis cipher algorithm.
4341da177e4SLinus Torvalds
4351da177e4SLinus Torvalds	  Anubis is a variable key length cipher which can use keys from
4361da177e4SLinus Torvalds	  128 bits to 320 bits in length.  It was evaluated as a entrant
4371da177e4SLinus Torvalds	  in the NESSIE competition.
4381da177e4SLinus Torvalds
4391da177e4SLinus Torvalds	  See also:
4401da177e4SLinus Torvalds	  <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
4411da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
4421da177e4SLinus Torvalds
443e2ee95b8SHye-Shik Changconfig CRYPTO_SEED
444e2ee95b8SHye-Shik Chang	tristate "SEED cipher algorithm"
445e2ee95b8SHye-Shik Chang	select CRYPTO_ALGAPI
446e2ee95b8SHye-Shik Chang	help
447e2ee95b8SHye-Shik Chang	  SEED cipher algorithm (RFC4269).
448e2ee95b8SHye-Shik Chang
449e2ee95b8SHye-Shik Chang	  SEED is a 128-bit symmetric key block cipher that has been
450e2ee95b8SHye-Shik Chang	  developed by KISA (Korea Information Security Agency) as a
451e2ee95b8SHye-Shik Chang	  national standard encryption algorithm of the Republic of Korea.
452e2ee95b8SHye-Shik Chang	  It is a 16 round block cipher with the key size of 128 bit.
453e2ee95b8SHye-Shik Chang
454e2ee95b8SHye-Shik Chang	  See also:
455e2ee95b8SHye-Shik Chang	  <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
456e2ee95b8SHye-Shik Chang
457*2407d608STan Swee Hengconfig CRYPTO_SALSA20
458*2407d608STan Swee Heng	tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)"
459*2407d608STan Swee Heng	depends on EXPERIMENTAL
460*2407d608STan Swee Heng	select CRYPTO_BLKCIPHER
461*2407d608STan Swee Heng	help
462*2407d608STan Swee Heng	  Salsa20 stream cipher algorithm.
463*2407d608STan Swee Heng
464*2407d608STan Swee Heng	  Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
465*2407d608STan Swee Heng	  Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
466*2407d608STan Swee Heng
467*2407d608STan Swee Heng	  The Salsa20 stream cipher algorithm is designed by Daniel J.
468*2407d608STan Swee Heng	  Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
4691da177e4SLinus Torvalds
4701da177e4SLinus Torvaldsconfig CRYPTO_DEFLATE
4711da177e4SLinus Torvalds	tristate "Deflate compression algorithm"
472cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4731da177e4SLinus Torvalds	select ZLIB_INFLATE
4741da177e4SLinus Torvalds	select ZLIB_DEFLATE
4751da177e4SLinus Torvalds	help
4761da177e4SLinus Torvalds	  This is the Deflate algorithm (RFC1951), specified for use in
4771da177e4SLinus Torvalds	  IPSec with the IPCOMP protocol (RFC3173, RFC2394).
4781da177e4SLinus Torvalds
4791da177e4SLinus Torvalds	  You will most probably want this if using IPSec.
4801da177e4SLinus Torvalds
4811da177e4SLinus Torvaldsconfig CRYPTO_MICHAEL_MIC
4821da177e4SLinus Torvalds	tristate "Michael MIC keyed digest algorithm"
483cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4841da177e4SLinus Torvalds	help
4851da177e4SLinus Torvalds	  Michael MIC is used for message integrity protection in TKIP
4861da177e4SLinus Torvalds	  (IEEE 802.11i). This algorithm is required for TKIP, but it
4871da177e4SLinus Torvalds	  should not be used for other purposes because of the weakness
4881da177e4SLinus Torvalds	  of the algorithm.
4891da177e4SLinus Torvalds
4901da177e4SLinus Torvaldsconfig CRYPTO_CRC32C
4911da177e4SLinus Torvalds	tristate "CRC32c CRC algorithm"
492cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4931da177e4SLinus Torvalds	select LIBCRC32C
4941da177e4SLinus Torvalds	help
4951da177e4SLinus Torvalds	  Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
4961da177e4SLinus Torvalds	  by iSCSI for header and data digests and by others.
4971da177e4SLinus Torvalds	  See Castagnoli93.  This implementation uses lib/libcrc32c.
4981da177e4SLinus Torvalds          Module will be crc32c.
4991da177e4SLinus Torvalds
50004ac7db3SNoriaki TAKAMIYAconfig CRYPTO_CAMELLIA
50104ac7db3SNoriaki TAKAMIYA	tristate "Camellia cipher algorithms"
50204ac7db3SNoriaki TAKAMIYA	depends on CRYPTO
50304ac7db3SNoriaki TAKAMIYA	select CRYPTO_ALGAPI
50404ac7db3SNoriaki TAKAMIYA	help
50504ac7db3SNoriaki TAKAMIYA	  Camellia cipher algorithms module.
50604ac7db3SNoriaki TAKAMIYA
50704ac7db3SNoriaki TAKAMIYA	  Camellia is a symmetric key block cipher developed jointly
50804ac7db3SNoriaki TAKAMIYA	  at NTT and Mitsubishi Electric Corporation.
50904ac7db3SNoriaki TAKAMIYA
51004ac7db3SNoriaki TAKAMIYA	  The Camellia specifies three key sizes: 128, 192 and 256 bits.
51104ac7db3SNoriaki TAKAMIYA
51204ac7db3SNoriaki TAKAMIYA	  See also:
51304ac7db3SNoriaki TAKAMIYA	  <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
51404ac7db3SNoriaki TAKAMIYA
5151da177e4SLinus Torvaldsconfig CRYPTO_TEST
5161da177e4SLinus Torvalds	tristate "Testing module"
517cce9e06dSHerbert Xu	depends on m
518cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
5191da177e4SLinus Torvalds	help
5201da177e4SLinus Torvalds	  Quick & dirty crypto test module.
5211da177e4SLinus Torvalds
5223c09f17cSHerbert Xuconfig CRYPTO_AUTHENC
5233c09f17cSHerbert Xu	tristate "Authenc support"
5243c09f17cSHerbert Xu	select CRYPTO_AEAD
5253c09f17cSHerbert Xu	select CRYPTO_MANAGER
5263c09f17cSHerbert Xu	help
5273c09f17cSHerbert Xu	  Authenc: Combined mode wrapper for IPsec.
5283c09f17cSHerbert Xu	  This is required for IPSec.
5293c09f17cSHerbert Xu
5301da177e4SLinus Torvaldssource "drivers/crypto/Kconfig"
5311da177e4SLinus Torvalds
532cce9e06dSHerbert Xuendif	# if CRYPTO
533