xref: /linux/crypto/Kconfig (revision 81190b321548bb0bf2d6e1f172695275b0fd1363)
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
941da177e4SLinus Torvalds	tristate "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
1021da177e4SLinus Torvaldsconfig CRYPTO_SHA512
1031da177e4SLinus Torvalds	tristate "SHA384 and SHA512 digest algorithms"
104cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1051da177e4SLinus Torvalds	help
1061da177e4SLinus Torvalds	  SHA512 secure hash standard (DFIPS 180-2).
1071da177e4SLinus Torvalds
1081da177e4SLinus Torvalds	  This version of SHA implements a 512 bit hash with 256 bits of
1091da177e4SLinus Torvalds	  security against collision attacks.
1101da177e4SLinus Torvalds
1111da177e4SLinus Torvalds	  This code also includes SHA-384, a 384 bit hash with 192 bits
1121da177e4SLinus Torvalds	  of security against collision attacks.
1131da177e4SLinus Torvalds
1141da177e4SLinus Torvaldsconfig CRYPTO_WP512
1151da177e4SLinus Torvalds	tristate "Whirlpool digest algorithms"
116cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1171da177e4SLinus Torvalds	help
1181da177e4SLinus Torvalds	  Whirlpool hash algorithm 512, 384 and 256-bit hashes
1191da177e4SLinus Torvalds
1201da177e4SLinus Torvalds	  Whirlpool-512 is part of the NESSIE cryptographic primitives.
1211da177e4SLinus Torvalds	  Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
1221da177e4SLinus Torvalds
1231da177e4SLinus Torvalds	  See also:
1241da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
1251da177e4SLinus Torvalds
1261da177e4SLinus Torvaldsconfig CRYPTO_TGR192
1271da177e4SLinus Torvalds	tristate "Tiger digest algorithms"
128cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1291da177e4SLinus Torvalds	help
1301da177e4SLinus Torvalds	  Tiger hash algorithm 192, 160 and 128-bit hashes
1311da177e4SLinus Torvalds
1321da177e4SLinus Torvalds	  Tiger is a hash function optimized for 64-bit processors while
1331da177e4SLinus Torvalds	  still having decent performance on 32-bit processors.
1341da177e4SLinus Torvalds	  Tiger was developed by Ross Anderson and Eli Biham.
1351da177e4SLinus Torvalds
1361da177e4SLinus Torvalds	  See also:
1371da177e4SLinus Torvalds	  <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
1381da177e4SLinus Torvalds
139c494e070SRik Snelconfig CRYPTO_GF128MUL
140c494e070SRik Snel	tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
141c494e070SRik Snel	depends on EXPERIMENTAL
142c494e070SRik Snel	help
143c494e070SRik Snel	  Efficient table driven implementation of multiplications in the
144c494e070SRik Snel	  field GF(2^128).  This is needed by some cypher modes. This
145c494e070SRik Snel	  option will be selected automatically if you select such a
146c494e070SRik Snel	  cipher mode.  Only select this option by hand if you expect to load
147c494e070SRik Snel	  an external module that requires these functions.
148c494e070SRik Snel
149db131ef9SHerbert Xuconfig CRYPTO_ECB
150db131ef9SHerbert Xu	tristate "ECB support"
151db131ef9SHerbert Xu	select CRYPTO_BLKCIPHER
15243518407SHerbert Xu	select CRYPTO_MANAGER
153db131ef9SHerbert Xu	help
154db131ef9SHerbert Xu	  ECB: Electronic CodeBook mode
155db131ef9SHerbert Xu	  This is the simplest block cipher algorithm.  It simply encrypts
156db131ef9SHerbert Xu	  the input block by block.
157db131ef9SHerbert Xu
158db131ef9SHerbert Xuconfig CRYPTO_CBC
159db131ef9SHerbert Xu	tristate "CBC support"
160db131ef9SHerbert Xu	select CRYPTO_BLKCIPHER
16143518407SHerbert Xu	select CRYPTO_MANAGER
162db131ef9SHerbert Xu	help
163db131ef9SHerbert Xu	  CBC: Cipher Block Chaining mode
164db131ef9SHerbert Xu	  This block cipher algorithm is required for IPSec.
165db131ef9SHerbert Xu
16691652be5SDavid Howellsconfig CRYPTO_PCBC
16791652be5SDavid Howells	tristate "PCBC support"
16891652be5SDavid Howells	select CRYPTO_BLKCIPHER
16991652be5SDavid Howells	select CRYPTO_MANAGER
17091652be5SDavid Howells	help
17191652be5SDavid Howells	  PCBC: Propagating Cipher Block Chaining mode
17291652be5SDavid Howells	  This block cipher algorithm is required for RxRPC.
17391652be5SDavid Howells
17464470f1bSRik Snelconfig CRYPTO_LRW
17564470f1bSRik Snel	tristate "LRW support (EXPERIMENTAL)"
17664470f1bSRik Snel	depends on EXPERIMENTAL
17764470f1bSRik Snel	select CRYPTO_BLKCIPHER
17864470f1bSRik Snel	select CRYPTO_MANAGER
17964470f1bSRik Snel	select CRYPTO_GF128MUL
18064470f1bSRik Snel	help
18164470f1bSRik Snel	  LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
18264470f1bSRik Snel	  narrow block cipher mode for dm-crypt.  Use it with cipher
18364470f1bSRik Snel	  specification string aes-lrw-benbi, the key must be 256, 320 or 384.
18464470f1bSRik Snel	  The first 128, 192 or 256 bits in the key are used for AES and the
18564470f1bSRik Snel	  rest is used to tie each cipher block to its logical position.
18664470f1bSRik Snel
187f19f5111SRik Snelconfig CRYPTO_XTS
188f19f5111SRik Snel	tristate "XTS support (EXPERIMENTAL)"
189f19f5111SRik Snel	depends on EXPERIMENTAL
190f19f5111SRik Snel	select CRYPTO_BLKCIPHER
191f19f5111SRik Snel	select CRYPTO_MANAGER
192f19f5111SRik Snel	select CRYPTO_GF128MUL
193f19f5111SRik Snel	help
194f19f5111SRik Snel	  XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
195f19f5111SRik Snel	  key size 256, 384 or 512 bits. This implementation currently
196f19f5111SRik Snel	  can't handle a sectorsize which is not a multiple of 16 bytes.
197f19f5111SRik Snel
19823e353c8SJoy Lattenconfig CRYPTO_CTR
19923e353c8SJoy Latten	tristate "CTR support"
20023e353c8SJoy Latten	select CRYPTO_BLKCIPHER
20123e353c8SJoy Latten	select CRYPTO_MANAGER
20223e353c8SJoy Latten	default m
20323e353c8SJoy Latten	help
20423e353c8SJoy Latten	  CTR: Counter mode
20523e353c8SJoy Latten	  This block cipher algorithm is required for IPSec.
20623e353c8SJoy Latten
207124b53d0SHerbert Xuconfig CRYPTO_CRYPTD
208124b53d0SHerbert Xu	tristate "Software async crypto daemon"
209124b53d0SHerbert Xu	select CRYPTO_ABLKCIPHER
210124b53d0SHerbert Xu	select CRYPTO_MANAGER
211124b53d0SHerbert Xu	help
212124b53d0SHerbert Xu	  This is a generic software asynchronous crypto daemon that
213124b53d0SHerbert Xu	  converts an arbitrary synchronous software crypto algorithm
214124b53d0SHerbert Xu	  into an asynchronous algorithm that executes in a kernel thread.
215124b53d0SHerbert Xu
2161da177e4SLinus Torvaldsconfig CRYPTO_DES
2171da177e4SLinus Torvalds	tristate "DES and Triple DES EDE cipher algorithms"
218cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2191da177e4SLinus Torvalds	help
2201da177e4SLinus Torvalds	  DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
2211da177e4SLinus Torvalds
22290831639SDavid Howellsconfig CRYPTO_FCRYPT
22390831639SDavid Howells	tristate "FCrypt cipher algorithm"
22490831639SDavid Howells	select CRYPTO_ALGAPI
22590831639SDavid Howells	select CRYPTO_BLKCIPHER
22690831639SDavid Howells	help
22790831639SDavid Howells	  FCrypt algorithm used by RxRPC.
22890831639SDavid Howells
2291da177e4SLinus Torvaldsconfig CRYPTO_BLOWFISH
2301da177e4SLinus Torvalds	tristate "Blowfish cipher algorithm"
231cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2321da177e4SLinus Torvalds	help
2331da177e4SLinus Torvalds	  Blowfish cipher algorithm, by Bruce Schneier.
2341da177e4SLinus Torvalds
2351da177e4SLinus Torvalds	  This is a variable key length cipher which can use keys from 32
2361da177e4SLinus Torvalds	  bits to 448 bits in length.  It's fast, simple and specifically
2371da177e4SLinus Torvalds	  designed for use on "large microprocessors".
2381da177e4SLinus Torvalds
2391da177e4SLinus Torvalds	  See also:
2401da177e4SLinus Torvalds	  <http://www.schneier.com/blowfish.html>
2411da177e4SLinus Torvalds
2421da177e4SLinus Torvaldsconfig CRYPTO_TWOFISH
2431da177e4SLinus Torvalds	tristate "Twofish cipher algorithm"
244cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2452729bb42SJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
2461da177e4SLinus Torvalds	help
2471da177e4SLinus Torvalds	  Twofish cipher algorithm.
2481da177e4SLinus Torvalds
2491da177e4SLinus Torvalds	  Twofish was submitted as an AES (Advanced Encryption Standard)
2501da177e4SLinus Torvalds	  candidate cipher by researchers at CounterPane Systems.  It is a
2511da177e4SLinus Torvalds	  16 round block cipher supporting key sizes of 128, 192, and 256
2521da177e4SLinus Torvalds	  bits.
2531da177e4SLinus Torvalds
2541da177e4SLinus Torvalds	  See also:
2551da177e4SLinus Torvalds	  <http://www.schneier.com/twofish.html>
2561da177e4SLinus Torvalds
2572729bb42SJoachim Fritschiconfig CRYPTO_TWOFISH_COMMON
2582729bb42SJoachim Fritschi	tristate
2592729bb42SJoachim Fritschi	help
2602729bb42SJoachim Fritschi	  Common parts of the Twofish cipher algorithm shared by the
2612729bb42SJoachim Fritschi	  generic c and the assembler implementations.
2622729bb42SJoachim Fritschi
263b9f535ffSJoachim Fritschiconfig CRYPTO_TWOFISH_586
264b9f535ffSJoachim Fritschi	tristate "Twofish cipher algorithms (i586)"
265cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && !64BIT
266cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
267b9f535ffSJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
268b9f535ffSJoachim Fritschi	help
269b9f535ffSJoachim Fritschi	  Twofish cipher algorithm.
270b9f535ffSJoachim Fritschi
271b9f535ffSJoachim Fritschi	  Twofish was submitted as an AES (Advanced Encryption Standard)
272b9f535ffSJoachim Fritschi	  candidate cipher by researchers at CounterPane Systems.  It is a
273b9f535ffSJoachim Fritschi	  16 round block cipher supporting key sizes of 128, 192, and 256
274b9f535ffSJoachim Fritschi	  bits.
275b9f535ffSJoachim Fritschi
276b9f535ffSJoachim Fritschi	  See also:
277b9f535ffSJoachim Fritschi	  <http://www.schneier.com/twofish.html>
278b9f535ffSJoachim Fritschi
279eaf44088SJoachim Fritschiconfig CRYPTO_TWOFISH_X86_64
280eaf44088SJoachim Fritschi	tristate "Twofish cipher algorithm (x86_64)"
281cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && 64BIT
282cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
283eaf44088SJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
284eaf44088SJoachim Fritschi	help
285eaf44088SJoachim Fritschi	  Twofish cipher algorithm (x86_64).
286eaf44088SJoachim Fritschi
287eaf44088SJoachim Fritschi	  Twofish was submitted as an AES (Advanced Encryption Standard)
288eaf44088SJoachim Fritschi	  candidate cipher by researchers at CounterPane Systems.  It is a
289eaf44088SJoachim Fritschi	  16 round block cipher supporting key sizes of 128, 192, and 256
290eaf44088SJoachim Fritschi	  bits.
291eaf44088SJoachim Fritschi
292eaf44088SJoachim Fritschi	  See also:
293eaf44088SJoachim Fritschi	  <http://www.schneier.com/twofish.html>
294eaf44088SJoachim Fritschi
2951da177e4SLinus Torvaldsconfig CRYPTO_SERPENT
2961da177e4SLinus Torvalds	tristate "Serpent cipher algorithm"
297cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2981da177e4SLinus Torvalds	help
2991da177e4SLinus Torvalds	  Serpent cipher algorithm, by Anderson, Biham & Knudsen.
3001da177e4SLinus Torvalds
3011da177e4SLinus Torvalds	  Keys are allowed to be from 0 to 256 bits in length, in steps
3021da177e4SLinus Torvalds	  of 8 bits.  Also includes the 'Tnepres' algorithm, a reversed
3033dde6ad8SDavid Sterba	  variant of Serpent for compatibility with old kerneli.org code.
3041da177e4SLinus Torvalds
3051da177e4SLinus Torvalds	  See also:
3061da177e4SLinus Torvalds	  <http://www.cl.cam.ac.uk/~rja14/serpent.html>
3071da177e4SLinus Torvalds
3081da177e4SLinus Torvaldsconfig CRYPTO_AES
3091da177e4SLinus Torvalds	tristate "AES cipher algorithms"
310cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3111da177e4SLinus Torvalds	help
3121da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
3131da177e4SLinus Torvalds	  algorithm.
3141da177e4SLinus Torvalds
3151da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
3161da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
3171da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
3181da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
3191da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
3201da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
3211da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
3221da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
3231da177e4SLinus Torvalds
3241da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
3251da177e4SLinus Torvalds
3261da177e4SLinus Torvalds	  See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
3271da177e4SLinus Torvalds
3281da177e4SLinus Torvaldsconfig CRYPTO_AES_586
3291da177e4SLinus Torvalds	tristate "AES cipher algorithms (i586)"
330cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && !64BIT
331cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3321da177e4SLinus Torvalds	help
3331da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
3341da177e4SLinus Torvalds	  algorithm.
3351da177e4SLinus Torvalds
3361da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
3371da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
3381da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
3391da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
3401da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
3411da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
3421da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
3431da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
3441da177e4SLinus Torvalds
3451da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
3461da177e4SLinus Torvalds
3471da177e4SLinus Torvalds	  See <http://csrc.nist.gov/encryption/aes/> for more information.
3481da177e4SLinus Torvalds
349a2a892a2SAndreas Steinmetzconfig CRYPTO_AES_X86_64
350a2a892a2SAndreas Steinmetz	tristate "AES cipher algorithms (x86_64)"
351cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && 64BIT
352cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
353*81190b32SSebastian Siewior	select CRYPTO_AES
354a2a892a2SAndreas Steinmetz	help
355a2a892a2SAndreas Steinmetz	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
356a2a892a2SAndreas Steinmetz	  algorithm.
357a2a892a2SAndreas Steinmetz
358a2a892a2SAndreas Steinmetz	  Rijndael appears to be consistently a very good performer in
359a2a892a2SAndreas Steinmetz	  both hardware and software across a wide range of computing
360a2a892a2SAndreas Steinmetz	  environments regardless of its use in feedback or non-feedback
361a2a892a2SAndreas Steinmetz	  modes. Its key setup time is excellent, and its key agility is
362a2a892a2SAndreas Steinmetz	  good. Rijndael's very low memory requirements make it very well
363a2a892a2SAndreas Steinmetz	  suited for restricted-space environments, in which it also
364a2a892a2SAndreas Steinmetz	  demonstrates excellent performance. Rijndael's operations are
365a2a892a2SAndreas Steinmetz	  among the easiest to defend against power and timing attacks.
366a2a892a2SAndreas Steinmetz
367a2a892a2SAndreas Steinmetz	  The AES specifies three key sizes: 128, 192 and 256 bits
368a2a892a2SAndreas Steinmetz
369a2a892a2SAndreas Steinmetz	  See <http://csrc.nist.gov/encryption/aes/> for more information.
370a2a892a2SAndreas Steinmetz
3711da177e4SLinus Torvaldsconfig CRYPTO_CAST5
3721da177e4SLinus Torvalds	tristate "CAST5 (CAST-128) cipher algorithm"
373cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3741da177e4SLinus Torvalds	help
3751da177e4SLinus Torvalds	  The CAST5 encryption algorithm (synonymous with CAST-128) is
3761da177e4SLinus Torvalds	  described in RFC2144.
3771da177e4SLinus Torvalds
3781da177e4SLinus Torvaldsconfig CRYPTO_CAST6
3791da177e4SLinus Torvalds	tristate "CAST6 (CAST-256) cipher algorithm"
380cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3811da177e4SLinus Torvalds	help
3821da177e4SLinus Torvalds	  The CAST6 encryption algorithm (synonymous with CAST-256) is
3831da177e4SLinus Torvalds	  described in RFC2612.
3841da177e4SLinus Torvalds
3851da177e4SLinus Torvaldsconfig CRYPTO_TEA
386fb4f10edSAaron Grothe	tristate "TEA, XTEA and XETA cipher algorithms"
387cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3881da177e4SLinus Torvalds	help
3891da177e4SLinus Torvalds	  TEA cipher algorithm.
3901da177e4SLinus Torvalds
3911da177e4SLinus Torvalds	  Tiny Encryption Algorithm is a simple cipher that uses
3921da177e4SLinus Torvalds	  many rounds for security.  It is very fast and uses
3931da177e4SLinus Torvalds	  little memory.
3941da177e4SLinus Torvalds
3951da177e4SLinus Torvalds	  Xtendend Tiny Encryption Algorithm is a modification to
3961da177e4SLinus Torvalds	  the TEA algorithm to address a potential key weakness
3971da177e4SLinus Torvalds	  in the TEA algorithm.
3981da177e4SLinus Torvalds
399fb4f10edSAaron Grothe	  Xtendend Encryption Tiny Algorithm is a mis-implementation
400fb4f10edSAaron Grothe	  of the XTEA algorithm for compatibility purposes.
401fb4f10edSAaron Grothe
4021da177e4SLinus Torvaldsconfig CRYPTO_ARC4
4031da177e4SLinus Torvalds	tristate "ARC4 cipher algorithm"
404cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4051da177e4SLinus Torvalds	help
4061da177e4SLinus Torvalds	  ARC4 cipher algorithm.
4071da177e4SLinus Torvalds
4081da177e4SLinus Torvalds	  ARC4 is a stream cipher using keys ranging from 8 bits to 2048
4091da177e4SLinus Torvalds	  bits in length.  This algorithm is required for driver-based
4101da177e4SLinus Torvalds	  WEP, but it should not be for other purposes because of the
4111da177e4SLinus Torvalds	  weakness of the algorithm.
4121da177e4SLinus Torvalds
4131da177e4SLinus Torvaldsconfig CRYPTO_KHAZAD
4141da177e4SLinus Torvalds	tristate "Khazad cipher algorithm"
415cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4161da177e4SLinus Torvalds	help
4171da177e4SLinus Torvalds	  Khazad cipher algorithm.
4181da177e4SLinus Torvalds
4191da177e4SLinus Torvalds	  Khazad was a finalist in the initial NESSIE competition.  It is
4201da177e4SLinus Torvalds	  an algorithm optimized for 64-bit processors with good performance
4211da177e4SLinus Torvalds	  on 32-bit processors.  Khazad uses an 128 bit key size.
4221da177e4SLinus Torvalds
4231da177e4SLinus Torvalds	  See also:
4241da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
4251da177e4SLinus Torvalds
4261da177e4SLinus Torvaldsconfig CRYPTO_ANUBIS
4271da177e4SLinus Torvalds	tristate "Anubis cipher algorithm"
428cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4291da177e4SLinus Torvalds	help
4301da177e4SLinus Torvalds	  Anubis cipher algorithm.
4311da177e4SLinus Torvalds
4321da177e4SLinus Torvalds	  Anubis is a variable key length cipher which can use keys from
4331da177e4SLinus Torvalds	  128 bits to 320 bits in length.  It was evaluated as a entrant
4341da177e4SLinus Torvalds	  in the NESSIE competition.
4351da177e4SLinus Torvalds
4361da177e4SLinus Torvalds	  See also:
4371da177e4SLinus Torvalds	  <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
4381da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
4391da177e4SLinus Torvalds
440e2ee95b8SHye-Shik Changconfig CRYPTO_SEED
441e2ee95b8SHye-Shik Chang	tristate "SEED cipher algorithm"
442e2ee95b8SHye-Shik Chang	select CRYPTO_ALGAPI
443e2ee95b8SHye-Shik Chang	help
444e2ee95b8SHye-Shik Chang	  SEED cipher algorithm (RFC4269).
445e2ee95b8SHye-Shik Chang
446e2ee95b8SHye-Shik Chang	  SEED is a 128-bit symmetric key block cipher that has been
447e2ee95b8SHye-Shik Chang	  developed by KISA (Korea Information Security Agency) as a
448e2ee95b8SHye-Shik Chang	  national standard encryption algorithm of the Republic of Korea.
449e2ee95b8SHye-Shik Chang	  It is a 16 round block cipher with the key size of 128 bit.
450e2ee95b8SHye-Shik Chang
451e2ee95b8SHye-Shik Chang	  See also:
452e2ee95b8SHye-Shik Chang	  <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
453e2ee95b8SHye-Shik Chang
4541da177e4SLinus Torvalds
4551da177e4SLinus Torvaldsconfig CRYPTO_DEFLATE
4561da177e4SLinus Torvalds	tristate "Deflate compression algorithm"
457cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4581da177e4SLinus Torvalds	select ZLIB_INFLATE
4591da177e4SLinus Torvalds	select ZLIB_DEFLATE
4601da177e4SLinus Torvalds	help
4611da177e4SLinus Torvalds	  This is the Deflate algorithm (RFC1951), specified for use in
4621da177e4SLinus Torvalds	  IPSec with the IPCOMP protocol (RFC3173, RFC2394).
4631da177e4SLinus Torvalds
4641da177e4SLinus Torvalds	  You will most probably want this if using IPSec.
4651da177e4SLinus Torvalds
4661da177e4SLinus Torvaldsconfig CRYPTO_MICHAEL_MIC
4671da177e4SLinus Torvalds	tristate "Michael MIC keyed digest algorithm"
468cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4691da177e4SLinus Torvalds	help
4701da177e4SLinus Torvalds	  Michael MIC is used for message integrity protection in TKIP
4711da177e4SLinus Torvalds	  (IEEE 802.11i). This algorithm is required for TKIP, but it
4721da177e4SLinus Torvalds	  should not be used for other purposes because of the weakness
4731da177e4SLinus Torvalds	  of the algorithm.
4741da177e4SLinus Torvalds
4751da177e4SLinus Torvaldsconfig CRYPTO_CRC32C
4761da177e4SLinus Torvalds	tristate "CRC32c CRC algorithm"
477cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4781da177e4SLinus Torvalds	select LIBCRC32C
4791da177e4SLinus Torvalds	help
4801da177e4SLinus Torvalds	  Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
4811da177e4SLinus Torvalds	  by iSCSI for header and data digests and by others.
4821da177e4SLinus Torvalds	  See Castagnoli93.  This implementation uses lib/libcrc32c.
4831da177e4SLinus Torvalds          Module will be crc32c.
4841da177e4SLinus Torvalds
48504ac7db3SNoriaki TAKAMIYAconfig CRYPTO_CAMELLIA
48604ac7db3SNoriaki TAKAMIYA	tristate "Camellia cipher algorithms"
48704ac7db3SNoriaki TAKAMIYA	depends on CRYPTO
48804ac7db3SNoriaki TAKAMIYA	select CRYPTO_ALGAPI
48904ac7db3SNoriaki TAKAMIYA	help
49004ac7db3SNoriaki TAKAMIYA	  Camellia cipher algorithms module.
49104ac7db3SNoriaki TAKAMIYA
49204ac7db3SNoriaki TAKAMIYA	  Camellia is a symmetric key block cipher developed jointly
49304ac7db3SNoriaki TAKAMIYA	  at NTT and Mitsubishi Electric Corporation.
49404ac7db3SNoriaki TAKAMIYA
49504ac7db3SNoriaki TAKAMIYA	  The Camellia specifies three key sizes: 128, 192 and 256 bits.
49604ac7db3SNoriaki TAKAMIYA
49704ac7db3SNoriaki TAKAMIYA	  See also:
49804ac7db3SNoriaki TAKAMIYA	  <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
49904ac7db3SNoriaki TAKAMIYA
5001da177e4SLinus Torvaldsconfig CRYPTO_TEST
5011da177e4SLinus Torvalds	tristate "Testing module"
502cce9e06dSHerbert Xu	depends on m
503cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
5041da177e4SLinus Torvalds	help
5051da177e4SLinus Torvalds	  Quick & dirty crypto test module.
5061da177e4SLinus Torvalds
5073c09f17cSHerbert Xuconfig CRYPTO_AUTHENC
5083c09f17cSHerbert Xu	tristate "Authenc support"
5093c09f17cSHerbert Xu	select CRYPTO_AEAD
5103c09f17cSHerbert Xu	select CRYPTO_MANAGER
5113c09f17cSHerbert Xu	help
5123c09f17cSHerbert Xu	  Authenc: Combined mode wrapper for IPsec.
5133c09f17cSHerbert Xu	  This is required for IPSec.
5143c09f17cSHerbert Xu
5151da177e4SLinus Torvaldssource "drivers/crypto/Kconfig"
5161da177e4SLinus Torvalds
517cce9e06dSHerbert Xuendif	# if CRYPTO
518