xref: /linux/crypto/Kconfig (revision 2e290f43ddb2331db2e308da206fe154bec91a7d)
11da177e4SLinus Torvalds#
21da177e4SLinus Torvalds# Cryptographic API Configuration
31da177e4SLinus Torvalds#
41da177e4SLinus Torvalds
5*2e290f43SJan Engelhardtmenuconfig CRYPTO
61da177e4SLinus Torvalds	bool "Cryptographic API"
71da177e4SLinus Torvalds	help
81da177e4SLinus Torvalds	  This option provides the core Cryptographic API.
91da177e4SLinus Torvalds
10cce9e06dSHerbert Xuif CRYPTO
11cce9e06dSHerbert Xu
12cce9e06dSHerbert Xuconfig CRYPTO_ALGAPI
13cce9e06dSHerbert Xu	tristate
14cce9e06dSHerbert Xu	help
15cce9e06dSHerbert Xu	  This option provides the API for cryptographic algorithms.
16cce9e06dSHerbert Xu
17b5b7f088SHerbert Xuconfig CRYPTO_ABLKCIPHER
18b5b7f088SHerbert Xu	tristate
19b5b7f088SHerbert Xu	select CRYPTO_BLKCIPHER
20b5b7f088SHerbert Xu
215cde0af2SHerbert Xuconfig CRYPTO_BLKCIPHER
225cde0af2SHerbert Xu	tristate
235cde0af2SHerbert Xu	select CRYPTO_ALGAPI
245cde0af2SHerbert Xu
25055bcee3SHerbert Xuconfig CRYPTO_HASH
26055bcee3SHerbert Xu	tristate
27055bcee3SHerbert Xu	select CRYPTO_ALGAPI
28055bcee3SHerbert Xu
292b8c19dbSHerbert Xuconfig CRYPTO_MANAGER
302b8c19dbSHerbert Xu	tristate "Cryptographic algorithm manager"
312b8c19dbSHerbert Xu	select CRYPTO_ALGAPI
322b8c19dbSHerbert Xu	help
332b8c19dbSHerbert Xu	  Create default cryptographic template instantiations such as
342b8c19dbSHerbert Xu	  cbc(aes).
352b8c19dbSHerbert Xu
361da177e4SLinus Torvaldsconfig CRYPTO_HMAC
378425165dSHerbert Xu	tristate "HMAC support"
380796ae06SHerbert Xu	select CRYPTO_HASH
3943518407SHerbert Xu	select CRYPTO_MANAGER
401da177e4SLinus Torvalds	help
411da177e4SLinus Torvalds	  HMAC: Keyed-Hashing for Message Authentication (RFC2104).
421da177e4SLinus Torvalds	  This is required for IPSec.
431da177e4SLinus Torvalds
44333b0d7eSKazunori MIYAZAWAconfig CRYPTO_XCBC
45333b0d7eSKazunori MIYAZAWA	tristate "XCBC support"
46333b0d7eSKazunori MIYAZAWA	depends on EXPERIMENTAL
47333b0d7eSKazunori MIYAZAWA	select CRYPTO_HASH
48333b0d7eSKazunori MIYAZAWA	select CRYPTO_MANAGER
49333b0d7eSKazunori MIYAZAWA	help
50333b0d7eSKazunori MIYAZAWA	  XCBC: Keyed-Hashing with encryption algorithm
51333b0d7eSKazunori MIYAZAWA		http://www.ietf.org/rfc/rfc3566.txt
52333b0d7eSKazunori MIYAZAWA		http://csrc.nist.gov/encryption/modes/proposedmodes/
53333b0d7eSKazunori MIYAZAWA		 xcbc-mac/xcbc-mac-spec.pdf
54333b0d7eSKazunori MIYAZAWA
551da177e4SLinus Torvaldsconfig CRYPTO_NULL
561da177e4SLinus Torvalds	tristate "Null algorithms"
57cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
581da177e4SLinus Torvalds	help
591da177e4SLinus Torvalds	  These are 'Null' algorithms, used by IPsec, which do nothing.
601da177e4SLinus Torvalds
611da177e4SLinus Torvaldsconfig CRYPTO_MD4
621da177e4SLinus Torvalds	tristate "MD4 digest algorithm"
63cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
641da177e4SLinus Torvalds	help
651da177e4SLinus Torvalds	  MD4 message digest algorithm (RFC1320).
661da177e4SLinus Torvalds
671da177e4SLinus Torvaldsconfig CRYPTO_MD5
681da177e4SLinus Torvalds	tristate "MD5 digest algorithm"
69cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
701da177e4SLinus Torvalds	help
711da177e4SLinus Torvalds	  MD5 message digest algorithm (RFC1321).
721da177e4SLinus Torvalds
731da177e4SLinus Torvaldsconfig CRYPTO_SHA1
741da177e4SLinus Torvalds	tristate "SHA1 digest algorithm"
75cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
761da177e4SLinus Torvalds	help
771da177e4SLinus Torvalds	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
781da177e4SLinus Torvalds
791da177e4SLinus Torvaldsconfig CRYPTO_SHA256
801da177e4SLinus Torvalds	tristate "SHA256 digest algorithm"
81cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
821da177e4SLinus Torvalds	help
831da177e4SLinus Torvalds	  SHA256 secure hash standard (DFIPS 180-2).
841da177e4SLinus Torvalds
851da177e4SLinus Torvalds	  This version of SHA implements a 256 bit hash with 128 bits of
861da177e4SLinus Torvalds	  security against collision attacks.
871da177e4SLinus Torvalds
881da177e4SLinus Torvaldsconfig CRYPTO_SHA512
891da177e4SLinus Torvalds	tristate "SHA384 and SHA512 digest algorithms"
90cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
911da177e4SLinus Torvalds	help
921da177e4SLinus Torvalds	  SHA512 secure hash standard (DFIPS 180-2).
931da177e4SLinus Torvalds
941da177e4SLinus Torvalds	  This version of SHA implements a 512 bit hash with 256 bits of
951da177e4SLinus Torvalds	  security against collision attacks.
961da177e4SLinus Torvalds
971da177e4SLinus Torvalds	  This code also includes SHA-384, a 384 bit hash with 192 bits
981da177e4SLinus Torvalds	  of security against collision attacks.
991da177e4SLinus Torvalds
1001da177e4SLinus Torvaldsconfig CRYPTO_WP512
1011da177e4SLinus Torvalds	tristate "Whirlpool digest algorithms"
102cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1031da177e4SLinus Torvalds	help
1041da177e4SLinus Torvalds	  Whirlpool hash algorithm 512, 384 and 256-bit hashes
1051da177e4SLinus Torvalds
1061da177e4SLinus Torvalds	  Whirlpool-512 is part of the NESSIE cryptographic primitives.
1071da177e4SLinus Torvalds	  Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
1081da177e4SLinus Torvalds
1091da177e4SLinus Torvalds	  See also:
1101da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
1111da177e4SLinus Torvalds
1121da177e4SLinus Torvaldsconfig CRYPTO_TGR192
1131da177e4SLinus Torvalds	tristate "Tiger digest algorithms"
114cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1151da177e4SLinus Torvalds	help
1161da177e4SLinus Torvalds	  Tiger hash algorithm 192, 160 and 128-bit hashes
1171da177e4SLinus Torvalds
1181da177e4SLinus Torvalds	  Tiger is a hash function optimized for 64-bit processors while
1191da177e4SLinus Torvalds	  still having decent performance on 32-bit processors.
1201da177e4SLinus Torvalds	  Tiger was developed by Ross Anderson and Eli Biham.
1211da177e4SLinus Torvalds
1221da177e4SLinus Torvalds	  See also:
1231da177e4SLinus Torvalds	  <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
1241da177e4SLinus Torvalds
125c494e070SRik Snelconfig CRYPTO_GF128MUL
126c494e070SRik Snel	tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
127c494e070SRik Snel	depends on EXPERIMENTAL
128c494e070SRik Snel	help
129c494e070SRik Snel	  Efficient table driven implementation of multiplications in the
130c494e070SRik Snel	  field GF(2^128).  This is needed by some cypher modes. This
131c494e070SRik Snel	  option will be selected automatically if you select such a
132c494e070SRik Snel	  cipher mode.  Only select this option by hand if you expect to load
133c494e070SRik Snel	  an external module that requires these functions.
134c494e070SRik Snel
135db131ef9SHerbert Xuconfig CRYPTO_ECB
136db131ef9SHerbert Xu	tristate "ECB support"
137db131ef9SHerbert Xu	select CRYPTO_BLKCIPHER
13843518407SHerbert Xu	select CRYPTO_MANAGER
139db131ef9SHerbert Xu	default m
140db131ef9SHerbert Xu	help
141db131ef9SHerbert Xu	  ECB: Electronic CodeBook mode
142db131ef9SHerbert Xu	  This is the simplest block cipher algorithm.  It simply encrypts
143db131ef9SHerbert Xu	  the input block by block.
144db131ef9SHerbert Xu
145db131ef9SHerbert Xuconfig CRYPTO_CBC
146db131ef9SHerbert Xu	tristate "CBC support"
147db131ef9SHerbert Xu	select CRYPTO_BLKCIPHER
14843518407SHerbert Xu	select CRYPTO_MANAGER
149db131ef9SHerbert Xu	default m
150db131ef9SHerbert Xu	help
151db131ef9SHerbert Xu	  CBC: Cipher Block Chaining mode
152db131ef9SHerbert Xu	  This block cipher algorithm is required for IPSec.
153db131ef9SHerbert Xu
15491652be5SDavid Howellsconfig CRYPTO_PCBC
15591652be5SDavid Howells	tristate "PCBC support"
15691652be5SDavid Howells	select CRYPTO_BLKCIPHER
15791652be5SDavid Howells	select CRYPTO_MANAGER
15891652be5SDavid Howells	default m
15991652be5SDavid Howells	help
16091652be5SDavid Howells	  PCBC: Propagating Cipher Block Chaining mode
16191652be5SDavid Howells	  This block cipher algorithm is required for RxRPC.
16291652be5SDavid Howells
16364470f1bSRik Snelconfig CRYPTO_LRW
16464470f1bSRik Snel	tristate "LRW support (EXPERIMENTAL)"
16564470f1bSRik Snel	depends on EXPERIMENTAL
16664470f1bSRik Snel	select CRYPTO_BLKCIPHER
16764470f1bSRik Snel	select CRYPTO_MANAGER
16864470f1bSRik Snel	select CRYPTO_GF128MUL
16964470f1bSRik Snel	help
17064470f1bSRik Snel	  LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
17164470f1bSRik Snel	  narrow block cipher mode for dm-crypt.  Use it with cipher
17264470f1bSRik Snel	  specification string aes-lrw-benbi, the key must be 256, 320 or 384.
17364470f1bSRik Snel	  The first 128, 192 or 256 bits in the key are used for AES and the
17464470f1bSRik Snel	  rest is used to tie each cipher block to its logical position.
17564470f1bSRik Snel
176124b53d0SHerbert Xuconfig CRYPTO_CRYPTD
177124b53d0SHerbert Xu	tristate "Software async crypto daemon"
178124b53d0SHerbert Xu	select CRYPTO_ABLKCIPHER
179124b53d0SHerbert Xu	select CRYPTO_MANAGER
180124b53d0SHerbert Xu	help
181124b53d0SHerbert Xu	  This is a generic software asynchronous crypto daemon that
182124b53d0SHerbert Xu	  converts an arbitrary synchronous software crypto algorithm
183124b53d0SHerbert Xu	  into an asynchronous algorithm that executes in a kernel thread.
184124b53d0SHerbert Xu
1851da177e4SLinus Torvaldsconfig CRYPTO_DES
1861da177e4SLinus Torvalds	tristate "DES and Triple DES EDE cipher algorithms"
187cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
1881da177e4SLinus Torvalds	help
1891da177e4SLinus Torvalds	  DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
1901da177e4SLinus Torvalds
19190831639SDavid Howellsconfig CRYPTO_FCRYPT
19290831639SDavid Howells	tristate "FCrypt cipher algorithm"
19390831639SDavid Howells	select CRYPTO_ALGAPI
19490831639SDavid Howells	select CRYPTO_BLKCIPHER
19590831639SDavid Howells	help
19690831639SDavid Howells	  FCrypt algorithm used by RxRPC.
19790831639SDavid Howells
1981da177e4SLinus Torvaldsconfig CRYPTO_BLOWFISH
1991da177e4SLinus Torvalds	tristate "Blowfish cipher algorithm"
200cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2011da177e4SLinus Torvalds	help
2021da177e4SLinus Torvalds	  Blowfish cipher algorithm, by Bruce Schneier.
2031da177e4SLinus Torvalds
2041da177e4SLinus Torvalds	  This is a variable key length cipher which can use keys from 32
2051da177e4SLinus Torvalds	  bits to 448 bits in length.  It's fast, simple and specifically
2061da177e4SLinus Torvalds	  designed for use on "large microprocessors".
2071da177e4SLinus Torvalds
2081da177e4SLinus Torvalds	  See also:
2091da177e4SLinus Torvalds	  <http://www.schneier.com/blowfish.html>
2101da177e4SLinus Torvalds
2111da177e4SLinus Torvaldsconfig CRYPTO_TWOFISH
2121da177e4SLinus Torvalds	tristate "Twofish cipher algorithm"
213cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2142729bb42SJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
2151da177e4SLinus Torvalds	help
2161da177e4SLinus Torvalds	  Twofish cipher algorithm.
2171da177e4SLinus Torvalds
2181da177e4SLinus Torvalds	  Twofish was submitted as an AES (Advanced Encryption Standard)
2191da177e4SLinus Torvalds	  candidate cipher by researchers at CounterPane Systems.  It is a
2201da177e4SLinus Torvalds	  16 round block cipher supporting key sizes of 128, 192, and 256
2211da177e4SLinus Torvalds	  bits.
2221da177e4SLinus Torvalds
2231da177e4SLinus Torvalds	  See also:
2241da177e4SLinus Torvalds	  <http://www.schneier.com/twofish.html>
2251da177e4SLinus Torvalds
2262729bb42SJoachim Fritschiconfig CRYPTO_TWOFISH_COMMON
2272729bb42SJoachim Fritschi	tristate
2282729bb42SJoachim Fritschi	help
2292729bb42SJoachim Fritschi	  Common parts of the Twofish cipher algorithm shared by the
2302729bb42SJoachim Fritschi	  generic c and the assembler implementations.
2312729bb42SJoachim Fritschi
232b9f535ffSJoachim Fritschiconfig CRYPTO_TWOFISH_586
233b9f535ffSJoachim Fritschi	tristate "Twofish cipher algorithms (i586)"
234cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && !64BIT
235cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
236b9f535ffSJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
237b9f535ffSJoachim Fritschi	help
238b9f535ffSJoachim Fritschi	  Twofish cipher algorithm.
239b9f535ffSJoachim Fritschi
240b9f535ffSJoachim Fritschi	  Twofish was submitted as an AES (Advanced Encryption Standard)
241b9f535ffSJoachim Fritschi	  candidate cipher by researchers at CounterPane Systems.  It is a
242b9f535ffSJoachim Fritschi	  16 round block cipher supporting key sizes of 128, 192, and 256
243b9f535ffSJoachim Fritschi	  bits.
244b9f535ffSJoachim Fritschi
245b9f535ffSJoachim Fritschi	  See also:
246b9f535ffSJoachim Fritschi	  <http://www.schneier.com/twofish.html>
247b9f535ffSJoachim Fritschi
248eaf44088SJoachim Fritschiconfig CRYPTO_TWOFISH_X86_64
249eaf44088SJoachim Fritschi	tristate "Twofish cipher algorithm (x86_64)"
250cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && 64BIT
251cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
252eaf44088SJoachim Fritschi	select CRYPTO_TWOFISH_COMMON
253eaf44088SJoachim Fritschi	help
254eaf44088SJoachim Fritschi	  Twofish cipher algorithm (x86_64).
255eaf44088SJoachim Fritschi
256eaf44088SJoachim Fritschi	  Twofish was submitted as an AES (Advanced Encryption Standard)
257eaf44088SJoachim Fritschi	  candidate cipher by researchers at CounterPane Systems.  It is a
258eaf44088SJoachim Fritschi	  16 round block cipher supporting key sizes of 128, 192, and 256
259eaf44088SJoachim Fritschi	  bits.
260eaf44088SJoachim Fritschi
261eaf44088SJoachim Fritschi	  See also:
262eaf44088SJoachim Fritschi	  <http://www.schneier.com/twofish.html>
263eaf44088SJoachim Fritschi
2641da177e4SLinus Torvaldsconfig CRYPTO_SERPENT
2651da177e4SLinus Torvalds	tristate "Serpent cipher algorithm"
266cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2671da177e4SLinus Torvalds	help
2681da177e4SLinus Torvalds	  Serpent cipher algorithm, by Anderson, Biham & Knudsen.
2691da177e4SLinus Torvalds
2701da177e4SLinus Torvalds	  Keys are allowed to be from 0 to 256 bits in length, in steps
2711da177e4SLinus Torvalds	  of 8 bits.  Also includes the 'Tnepres' algorithm, a reversed
2723dde6ad8SDavid Sterba	  variant of Serpent for compatibility with old kerneli.org code.
2731da177e4SLinus Torvalds
2741da177e4SLinus Torvalds	  See also:
2751da177e4SLinus Torvalds	  <http://www.cl.cam.ac.uk/~rja14/serpent.html>
2761da177e4SLinus Torvalds
2771da177e4SLinus Torvaldsconfig CRYPTO_AES
2781da177e4SLinus Torvalds	tristate "AES cipher algorithms"
279cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2801da177e4SLinus Torvalds	help
2811da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
2821da177e4SLinus Torvalds	  algorithm.
2831da177e4SLinus Torvalds
2841da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
2851da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
2861da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
2871da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
2881da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
2891da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
2901da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
2911da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
2921da177e4SLinus Torvalds
2931da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
2941da177e4SLinus Torvalds
2951da177e4SLinus Torvalds	  See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
2961da177e4SLinus Torvalds
2971da177e4SLinus Torvaldsconfig CRYPTO_AES_586
2981da177e4SLinus Torvalds	tristate "AES cipher algorithms (i586)"
299cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && !64BIT
300cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3011da177e4SLinus Torvalds	help
3021da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
3031da177e4SLinus Torvalds	  algorithm.
3041da177e4SLinus Torvalds
3051da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
3061da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
3071da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
3081da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
3091da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
3101da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
3111da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
3121da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
3131da177e4SLinus Torvalds
3141da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
3151da177e4SLinus Torvalds
3161da177e4SLinus Torvalds	  See <http://csrc.nist.gov/encryption/aes/> for more information.
3171da177e4SLinus Torvalds
318a2a892a2SAndreas Steinmetzconfig CRYPTO_AES_X86_64
319a2a892a2SAndreas Steinmetz	tristate "AES cipher algorithms (x86_64)"
320cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && 64BIT
321cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
322a2a892a2SAndreas Steinmetz	help
323a2a892a2SAndreas Steinmetz	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
324a2a892a2SAndreas Steinmetz	  algorithm.
325a2a892a2SAndreas Steinmetz
326a2a892a2SAndreas Steinmetz	  Rijndael appears to be consistently a very good performer in
327a2a892a2SAndreas Steinmetz	  both hardware and software across a wide range of computing
328a2a892a2SAndreas Steinmetz	  environments regardless of its use in feedback or non-feedback
329a2a892a2SAndreas Steinmetz	  modes. Its key setup time is excellent, and its key agility is
330a2a892a2SAndreas Steinmetz	  good. Rijndael's very low memory requirements make it very well
331a2a892a2SAndreas Steinmetz	  suited for restricted-space environments, in which it also
332a2a892a2SAndreas Steinmetz	  demonstrates excellent performance. Rijndael's operations are
333a2a892a2SAndreas Steinmetz	  among the easiest to defend against power and timing attacks.
334a2a892a2SAndreas Steinmetz
335a2a892a2SAndreas Steinmetz	  The AES specifies three key sizes: 128, 192 and 256 bits
336a2a892a2SAndreas Steinmetz
337a2a892a2SAndreas Steinmetz	  See <http://csrc.nist.gov/encryption/aes/> for more information.
338a2a892a2SAndreas Steinmetz
3391da177e4SLinus Torvaldsconfig CRYPTO_CAST5
3401da177e4SLinus Torvalds	tristate "CAST5 (CAST-128) cipher algorithm"
341cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3421da177e4SLinus Torvalds	help
3431da177e4SLinus Torvalds	  The CAST5 encryption algorithm (synonymous with CAST-128) is
3441da177e4SLinus Torvalds	  described in RFC2144.
3451da177e4SLinus Torvalds
3461da177e4SLinus Torvaldsconfig CRYPTO_CAST6
3471da177e4SLinus Torvalds	tristate "CAST6 (CAST-256) cipher algorithm"
348cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3491da177e4SLinus Torvalds	help
3501da177e4SLinus Torvalds	  The CAST6 encryption algorithm (synonymous with CAST-256) is
3511da177e4SLinus Torvalds	  described in RFC2612.
3521da177e4SLinus Torvalds
3531da177e4SLinus Torvaldsconfig CRYPTO_TEA
354fb4f10edSAaron Grothe	tristate "TEA, XTEA and XETA cipher algorithms"
355cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3561da177e4SLinus Torvalds	help
3571da177e4SLinus Torvalds	  TEA cipher algorithm.
3581da177e4SLinus Torvalds
3591da177e4SLinus Torvalds	  Tiny Encryption Algorithm is a simple cipher that uses
3601da177e4SLinus Torvalds	  many rounds for security.  It is very fast and uses
3611da177e4SLinus Torvalds	  little memory.
3621da177e4SLinus Torvalds
3631da177e4SLinus Torvalds	  Xtendend Tiny Encryption Algorithm is a modification to
3641da177e4SLinus Torvalds	  the TEA algorithm to address a potential key weakness
3651da177e4SLinus Torvalds	  in the TEA algorithm.
3661da177e4SLinus Torvalds
367fb4f10edSAaron Grothe	  Xtendend Encryption Tiny Algorithm is a mis-implementation
368fb4f10edSAaron Grothe	  of the XTEA algorithm for compatibility purposes.
369fb4f10edSAaron Grothe
3701da177e4SLinus Torvaldsconfig CRYPTO_ARC4
3711da177e4SLinus Torvalds	tristate "ARC4 cipher algorithm"
372cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3731da177e4SLinus Torvalds	help
3741da177e4SLinus Torvalds	  ARC4 cipher algorithm.
3751da177e4SLinus Torvalds
3761da177e4SLinus Torvalds	  ARC4 is a stream cipher using keys ranging from 8 bits to 2048
3771da177e4SLinus Torvalds	  bits in length.  This algorithm is required for driver-based
3781da177e4SLinus Torvalds	  WEP, but it should not be for other purposes because of the
3791da177e4SLinus Torvalds	  weakness of the algorithm.
3801da177e4SLinus Torvalds
3811da177e4SLinus Torvaldsconfig CRYPTO_KHAZAD
3821da177e4SLinus Torvalds	tristate "Khazad cipher algorithm"
383cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3841da177e4SLinus Torvalds	help
3851da177e4SLinus Torvalds	  Khazad cipher algorithm.
3861da177e4SLinus Torvalds
3871da177e4SLinus Torvalds	  Khazad was a finalist in the initial NESSIE competition.  It is
3881da177e4SLinus Torvalds	  an algorithm optimized for 64-bit processors with good performance
3891da177e4SLinus Torvalds	  on 32-bit processors.  Khazad uses an 128 bit key size.
3901da177e4SLinus Torvalds
3911da177e4SLinus Torvalds	  See also:
3921da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
3931da177e4SLinus Torvalds
3941da177e4SLinus Torvaldsconfig CRYPTO_ANUBIS
3951da177e4SLinus Torvalds	tristate "Anubis cipher algorithm"
396cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3971da177e4SLinus Torvalds	help
3981da177e4SLinus Torvalds	  Anubis cipher algorithm.
3991da177e4SLinus Torvalds
4001da177e4SLinus Torvalds	  Anubis is a variable key length cipher which can use keys from
4011da177e4SLinus Torvalds	  128 bits to 320 bits in length.  It was evaluated as a entrant
4021da177e4SLinus Torvalds	  in the NESSIE competition.
4031da177e4SLinus Torvalds
4041da177e4SLinus Torvalds	  See also:
4051da177e4SLinus Torvalds	  <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
4061da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
4071da177e4SLinus Torvalds
4081da177e4SLinus Torvalds
4091da177e4SLinus Torvaldsconfig CRYPTO_DEFLATE
4101da177e4SLinus Torvalds	tristate "Deflate compression algorithm"
411cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4121da177e4SLinus Torvalds	select ZLIB_INFLATE
4131da177e4SLinus Torvalds	select ZLIB_DEFLATE
4141da177e4SLinus Torvalds	help
4151da177e4SLinus Torvalds	  This is the Deflate algorithm (RFC1951), specified for use in
4161da177e4SLinus Torvalds	  IPSec with the IPCOMP protocol (RFC3173, RFC2394).
4171da177e4SLinus Torvalds
4181da177e4SLinus Torvalds	  You will most probably want this if using IPSec.
4191da177e4SLinus Torvalds
4201da177e4SLinus Torvaldsconfig CRYPTO_MICHAEL_MIC
4211da177e4SLinus Torvalds	tristate "Michael MIC keyed digest algorithm"
422cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4231da177e4SLinus Torvalds	help
4241da177e4SLinus Torvalds	  Michael MIC is used for message integrity protection in TKIP
4251da177e4SLinus Torvalds	  (IEEE 802.11i). This algorithm is required for TKIP, but it
4261da177e4SLinus Torvalds	  should not be used for other purposes because of the weakness
4271da177e4SLinus Torvalds	  of the algorithm.
4281da177e4SLinus Torvalds
4291da177e4SLinus Torvaldsconfig CRYPTO_CRC32C
4301da177e4SLinus Torvalds	tristate "CRC32c CRC algorithm"
431cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4321da177e4SLinus Torvalds	select LIBCRC32C
4331da177e4SLinus Torvalds	help
4341da177e4SLinus Torvalds	  Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
4351da177e4SLinus Torvalds	  by iSCSI for header and data digests and by others.
4361da177e4SLinus Torvalds	  See Castagnoli93.  This implementation uses lib/libcrc32c.
4371da177e4SLinus Torvalds          Module will be crc32c.
4381da177e4SLinus Torvalds
43904ac7db3SNoriaki TAKAMIYAconfig CRYPTO_CAMELLIA
44004ac7db3SNoriaki TAKAMIYA	tristate "Camellia cipher algorithms"
44104ac7db3SNoriaki TAKAMIYA	depends on CRYPTO
44204ac7db3SNoriaki TAKAMIYA	select CRYPTO_ALGAPI
44304ac7db3SNoriaki TAKAMIYA	help
44404ac7db3SNoriaki TAKAMIYA	  Camellia cipher algorithms module.
44504ac7db3SNoriaki TAKAMIYA
44604ac7db3SNoriaki TAKAMIYA	  Camellia is a symmetric key block cipher developed jointly
44704ac7db3SNoriaki TAKAMIYA	  at NTT and Mitsubishi Electric Corporation.
44804ac7db3SNoriaki TAKAMIYA
44904ac7db3SNoriaki TAKAMIYA	  The Camellia specifies three key sizes: 128, 192 and 256 bits.
45004ac7db3SNoriaki TAKAMIYA
45104ac7db3SNoriaki TAKAMIYA	  See also:
45204ac7db3SNoriaki TAKAMIYA	  <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
45304ac7db3SNoriaki TAKAMIYA
4541da177e4SLinus Torvaldsconfig CRYPTO_TEST
4551da177e4SLinus Torvalds	tristate "Testing module"
456cce9e06dSHerbert Xu	depends on m
457cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4581da177e4SLinus Torvalds	help
4591da177e4SLinus Torvalds	  Quick & dirty crypto test module.
4601da177e4SLinus Torvalds
4611da177e4SLinus Torvaldssource "drivers/crypto/Kconfig"
4621da177e4SLinus Torvalds
463cce9e06dSHerbert Xuendif	# if CRYPTO
464