xref: /linux/crypto/Kconfig (revision 534fe2c1c3ffbbc3db66dba0783c82d3b345fd33)
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
16c3715cb9SSebastian Siewior	tristate "Cryptographic API"
171da177e4SLinus Torvalds	help
181da177e4SLinus Torvalds	  This option provides the core Cryptographic API.
191da177e4SLinus Torvalds
20cce9e06dSHerbert Xuif CRYPTO
21cce9e06dSHerbert Xu
22584fffc8SSebastian Siewiorcomment "Crypto core or helper"
23584fffc8SSebastian Siewior
24cce9e06dSHerbert Xuconfig CRYPTO_ALGAPI
25cce9e06dSHerbert Xu	tristate
26cce9e06dSHerbert Xu	help
27cce9e06dSHerbert Xu	  This option provides the API for cryptographic algorithms.
28cce9e06dSHerbert Xu
291ae97820SHerbert Xuconfig CRYPTO_AEAD
301ae97820SHerbert Xu	tristate
311ae97820SHerbert Xu	select CRYPTO_ALGAPI
321ae97820SHerbert Xu
335cde0af2SHerbert Xuconfig CRYPTO_BLKCIPHER
345cde0af2SHerbert Xu	tristate
355cde0af2SHerbert Xu	select CRYPTO_ALGAPI
365cde0af2SHerbert Xu
37055bcee3SHerbert Xuconfig CRYPTO_HASH
38055bcee3SHerbert Xu	tristate
39055bcee3SHerbert Xu	select CRYPTO_ALGAPI
40055bcee3SHerbert Xu
412b8c19dbSHerbert Xuconfig CRYPTO_MANAGER
422b8c19dbSHerbert Xu	tristate "Cryptographic algorithm manager"
432b8c19dbSHerbert Xu	select CRYPTO_ALGAPI
442b8c19dbSHerbert Xu	help
452b8c19dbSHerbert Xu	  Create default cryptographic template instantiations such as
462b8c19dbSHerbert Xu	  cbc(aes).
472b8c19dbSHerbert Xu
48584fffc8SSebastian Siewiorconfig CRYPTO_GF128MUL
49584fffc8SSebastian Siewior	tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
50584fffc8SSebastian Siewior	depends on EXPERIMENTAL
51584fffc8SSebastian Siewior	help
52584fffc8SSebastian Siewior	  Efficient table driven implementation of multiplications in the
53584fffc8SSebastian Siewior	  field GF(2^128).  This is needed by some cypher modes. This
54584fffc8SSebastian Siewior	  option will be selected automatically if you select such a
55584fffc8SSebastian Siewior	  cipher mode.  Only select this option by hand if you expect to load
56584fffc8SSebastian Siewior	  an external module that requires these functions.
57584fffc8SSebastian Siewior
58584fffc8SSebastian Siewiorconfig CRYPTO_NULL
59584fffc8SSebastian Siewior	tristate "Null algorithms"
60584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
61584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
62584fffc8SSebastian Siewior	help
63584fffc8SSebastian Siewior	  These are 'Null' algorithms, used by IPsec, which do nothing.
64584fffc8SSebastian Siewior
65584fffc8SSebastian Siewiorconfig CRYPTO_CRYPTD
66584fffc8SSebastian Siewior	tristate "Software async crypto daemon"
67584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
68584fffc8SSebastian Siewior	select CRYPTO_MANAGER
69584fffc8SSebastian Siewior	help
70584fffc8SSebastian Siewior	  This is a generic software asynchronous crypto daemon that
71584fffc8SSebastian Siewior	  converts an arbitrary synchronous software crypto algorithm
72584fffc8SSebastian Siewior	  into an asynchronous algorithm that executes in a kernel thread.
73584fffc8SSebastian Siewior
74584fffc8SSebastian Siewiorconfig CRYPTO_AUTHENC
75584fffc8SSebastian Siewior	tristate "Authenc support"
76584fffc8SSebastian Siewior	select CRYPTO_AEAD
77584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
78584fffc8SSebastian Siewior	select CRYPTO_MANAGER
79584fffc8SSebastian Siewior	select CRYPTO_HASH
80584fffc8SSebastian Siewior	help
81584fffc8SSebastian Siewior	  Authenc: Combined mode wrapper for IPsec.
82584fffc8SSebastian Siewior	  This is required for IPSec.
83584fffc8SSebastian Siewior
84584fffc8SSebastian Siewiorconfig CRYPTO_TEST
85584fffc8SSebastian Siewior	tristate "Testing module"
86584fffc8SSebastian Siewior	depends on m
87584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
88584fffc8SSebastian Siewior	select CRYPTO_AEAD
89584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
90584fffc8SSebastian Siewior	help
91584fffc8SSebastian Siewior	  Quick & dirty crypto test module.
92584fffc8SSebastian Siewior
93584fffc8SSebastian Siewiorcomment "Authenticated Encryption with Associated Data"
94584fffc8SSebastian Siewior
95584fffc8SSebastian Siewiorconfig CRYPTO_CCM
96584fffc8SSebastian Siewior	tristate "CCM support"
97584fffc8SSebastian Siewior	select CRYPTO_CTR
98584fffc8SSebastian Siewior	select CRYPTO_AEAD
99584fffc8SSebastian Siewior	help
100584fffc8SSebastian Siewior	  Support for Counter with CBC MAC. Required for IPsec.
101584fffc8SSebastian Siewior
102584fffc8SSebastian Siewiorconfig CRYPTO_GCM
103584fffc8SSebastian Siewior	tristate "GCM/GMAC support"
104584fffc8SSebastian Siewior	select CRYPTO_CTR
105584fffc8SSebastian Siewior	select CRYPTO_AEAD
106584fffc8SSebastian Siewior	select CRYPTO_GF128MUL
107584fffc8SSebastian Siewior	help
108584fffc8SSebastian Siewior	  Support for Galois/Counter Mode (GCM) and Galois Message
109584fffc8SSebastian Siewior	  Authentication Code (GMAC). Required for IPSec.
110584fffc8SSebastian Siewior
111584fffc8SSebastian Siewiorconfig CRYPTO_SEQIV
112584fffc8SSebastian Siewior	tristate "Sequence Number IV Generator"
113584fffc8SSebastian Siewior	select CRYPTO_AEAD
114584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
115584fffc8SSebastian Siewior	help
116584fffc8SSebastian Siewior	  This IV generator generates an IV based on a sequence number by
117584fffc8SSebastian Siewior	  xoring it with a salt.  This algorithm is mainly useful for CTR
118584fffc8SSebastian Siewior
119584fffc8SSebastian Siewiorcomment "Block modes"
120584fffc8SSebastian Siewior
121584fffc8SSebastian Siewiorconfig CRYPTO_CBC
122584fffc8SSebastian Siewior	tristate "CBC support"
123584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
124584fffc8SSebastian Siewior	select CRYPTO_MANAGER
125584fffc8SSebastian Siewior	help
126584fffc8SSebastian Siewior	  CBC: Cipher Block Chaining mode
127584fffc8SSebastian Siewior	  This block cipher algorithm is required for IPSec.
128584fffc8SSebastian Siewior
129584fffc8SSebastian Siewiorconfig CRYPTO_CTR
130584fffc8SSebastian Siewior	tristate "CTR support"
131584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
132584fffc8SSebastian Siewior	select CRYPTO_SEQIV
133584fffc8SSebastian Siewior	select CRYPTO_MANAGER
134584fffc8SSebastian Siewior	help
135584fffc8SSebastian Siewior	  CTR: Counter mode
136584fffc8SSebastian Siewior	  This block cipher algorithm is required for IPSec.
137584fffc8SSebastian Siewior
138584fffc8SSebastian Siewiorconfig CRYPTO_CTS
139584fffc8SSebastian Siewior	tristate "CTS support"
140584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
141584fffc8SSebastian Siewior	help
142584fffc8SSebastian Siewior	  CTS: Cipher Text Stealing
143584fffc8SSebastian Siewior	  This is the Cipher Text Stealing mode as described by
144584fffc8SSebastian Siewior	  Section 8 of rfc2040 and referenced by rfc3962.
145584fffc8SSebastian Siewior	  (rfc3962 includes errata information in its Appendix A)
146584fffc8SSebastian Siewior	  This mode is required for Kerberos gss mechanism support
147584fffc8SSebastian Siewior	  for AES encryption.
148584fffc8SSebastian Siewior
149584fffc8SSebastian Siewiorconfig CRYPTO_ECB
150584fffc8SSebastian Siewior	tristate "ECB support"
151584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
152584fffc8SSebastian Siewior	select CRYPTO_MANAGER
153584fffc8SSebastian Siewior	help
154584fffc8SSebastian Siewior	  ECB: Electronic CodeBook mode
155584fffc8SSebastian Siewior	  This is the simplest block cipher algorithm.  It simply encrypts
156584fffc8SSebastian Siewior	  the input block by block.
157584fffc8SSebastian Siewior
158584fffc8SSebastian Siewiorconfig CRYPTO_LRW
159584fffc8SSebastian Siewior	tristate "LRW support (EXPERIMENTAL)"
160584fffc8SSebastian Siewior	depends on EXPERIMENTAL
161584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
162584fffc8SSebastian Siewior	select CRYPTO_MANAGER
163584fffc8SSebastian Siewior	select CRYPTO_GF128MUL
164584fffc8SSebastian Siewior	help
165584fffc8SSebastian Siewior	  LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
166584fffc8SSebastian Siewior	  narrow block cipher mode for dm-crypt.  Use it with cipher
167584fffc8SSebastian Siewior	  specification string aes-lrw-benbi, the key must be 256, 320 or 384.
168584fffc8SSebastian Siewior	  The first 128, 192 or 256 bits in the key are used for AES and the
169584fffc8SSebastian Siewior	  rest is used to tie each cipher block to its logical position.
170584fffc8SSebastian Siewior
171584fffc8SSebastian Siewiorconfig CRYPTO_PCBC
172584fffc8SSebastian Siewior	tristate "PCBC support"
173584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
174584fffc8SSebastian Siewior	select CRYPTO_MANAGER
175584fffc8SSebastian Siewior	help
176584fffc8SSebastian Siewior	  PCBC: Propagating Cipher Block Chaining mode
177584fffc8SSebastian Siewior	  This block cipher algorithm is required for RxRPC.
178584fffc8SSebastian Siewior
179584fffc8SSebastian Siewiorconfig CRYPTO_XTS
180584fffc8SSebastian Siewior	tristate "XTS support (EXPERIMENTAL)"
181584fffc8SSebastian Siewior	depends on EXPERIMENTAL
182584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
183584fffc8SSebastian Siewior	select CRYPTO_MANAGER
184584fffc8SSebastian Siewior	select CRYPTO_GF128MUL
185584fffc8SSebastian Siewior	help
186584fffc8SSebastian Siewior	  XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
187584fffc8SSebastian Siewior	  key size 256, 384 or 512 bits. This implementation currently
188584fffc8SSebastian Siewior	  can't handle a sectorsize which is not a multiple of 16 bytes.
189584fffc8SSebastian Siewior
190584fffc8SSebastian Siewiorcomment "Hash modes"
191584fffc8SSebastian Siewior
1921da177e4SLinus Torvaldsconfig CRYPTO_HMAC
1938425165dSHerbert Xu	tristate "HMAC support"
1940796ae06SHerbert Xu	select CRYPTO_HASH
19543518407SHerbert Xu	select CRYPTO_MANAGER
1961da177e4SLinus Torvalds	help
1971da177e4SLinus Torvalds	  HMAC: Keyed-Hashing for Message Authentication (RFC2104).
1981da177e4SLinus Torvalds	  This is required for IPSec.
1991da177e4SLinus Torvalds
200333b0d7eSKazunori MIYAZAWAconfig CRYPTO_XCBC
201333b0d7eSKazunori MIYAZAWA	tristate "XCBC support"
202333b0d7eSKazunori MIYAZAWA	depends on EXPERIMENTAL
203333b0d7eSKazunori MIYAZAWA	select CRYPTO_HASH
204333b0d7eSKazunori MIYAZAWA	select CRYPTO_MANAGER
205333b0d7eSKazunori MIYAZAWA	help
206333b0d7eSKazunori MIYAZAWA	  XCBC: Keyed-Hashing with encryption algorithm
207333b0d7eSKazunori MIYAZAWA		http://www.ietf.org/rfc/rfc3566.txt
208333b0d7eSKazunori MIYAZAWA		http://csrc.nist.gov/encryption/modes/proposedmodes/
209333b0d7eSKazunori MIYAZAWA		 xcbc-mac/xcbc-mac-spec.pdf
210333b0d7eSKazunori MIYAZAWA
211584fffc8SSebastian Siewiorcomment "Digest"
212584fffc8SSebastian Siewior
213584fffc8SSebastian Siewiorconfig CRYPTO_CRC32C
214584fffc8SSebastian Siewior	tristate "CRC32c CRC algorithm"
215cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
216584fffc8SSebastian Siewior	select LIBCRC32C
2171da177e4SLinus Torvalds	help
218584fffc8SSebastian Siewior	  Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
219584fffc8SSebastian Siewior	  by iSCSI for header and data digests and by others.
220584fffc8SSebastian Siewior	  See Castagnoli93.  This implementation uses lib/libcrc32c.
221584fffc8SSebastian Siewior          Module will be crc32c.
2221da177e4SLinus Torvalds
2231da177e4SLinus Torvaldsconfig CRYPTO_MD4
2241da177e4SLinus Torvalds	tristate "MD4 digest algorithm"
225cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2261da177e4SLinus Torvalds	help
2271da177e4SLinus Torvalds	  MD4 message digest algorithm (RFC1320).
2281da177e4SLinus Torvalds
2291da177e4SLinus Torvaldsconfig CRYPTO_MD5
2301da177e4SLinus Torvalds	tristate "MD5 digest algorithm"
231cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2321da177e4SLinus Torvalds	help
2331da177e4SLinus Torvalds	  MD5 message digest algorithm (RFC1321).
2341da177e4SLinus Torvalds
235584fffc8SSebastian Siewiorconfig CRYPTO_MICHAEL_MIC
236584fffc8SSebastian Siewior	tristate "Michael MIC keyed digest algorithm"
237584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
238584fffc8SSebastian Siewior	help
239584fffc8SSebastian Siewior	  Michael MIC is used for message integrity protection in TKIP
240584fffc8SSebastian Siewior	  (IEEE 802.11i). This algorithm is required for TKIP, but it
241584fffc8SSebastian Siewior	  should not be used for other purposes because of the weakness
242584fffc8SSebastian Siewior	  of the algorithm.
243584fffc8SSebastian Siewior
24482798f90SAdrian-Ken Rueegseggerconfig CRYPTO_RMD128
24582798f90SAdrian-Ken Rueegsegger  tristate "RIPEMD-128 digest algorithm"
24682798f90SAdrian-Ken Rueegsegger  select CRYPTO_ALGAPI
24782798f90SAdrian-Ken Rueegsegger  help
24882798f90SAdrian-Ken Rueegsegger    RIPEMD-128 (ISO/IEC 10118-3:2004).
24982798f90SAdrian-Ken Rueegsegger
25082798f90SAdrian-Ken Rueegsegger    RIPEMD-128 is a 128-bit cryptographic hash function. It should only
25182798f90SAdrian-Ken Rueegsegger    to be used as a secure replacement for RIPEMD. For other use cases
25282798f90SAdrian-Ken Rueegsegger    RIPEMD-160 should be used.
25382798f90SAdrian-Ken Rueegsegger
25482798f90SAdrian-Ken Rueegsegger    Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
25582798f90SAdrian-Ken Rueegsegger    See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
25682798f90SAdrian-Ken Rueegsegger
25782798f90SAdrian-Ken Rueegseggerconfig CRYPTO_RMD160
25882798f90SAdrian-Ken Rueegsegger  tristate "RIPEMD-160 digest algorithm"
25982798f90SAdrian-Ken Rueegsegger  select CRYPTO_ALGAPI
26082798f90SAdrian-Ken Rueegsegger  help
26182798f90SAdrian-Ken Rueegsegger    RIPEMD-160 (ISO/IEC 10118-3:2004).
26282798f90SAdrian-Ken Rueegsegger
26382798f90SAdrian-Ken Rueegsegger    RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
26482798f90SAdrian-Ken Rueegsegger    to be used as a secure replacement for the 128-bit hash functions
26582798f90SAdrian-Ken Rueegsegger    MD4, MD5 and it's predecessor RIPEMD (not to be confused with RIPEMD-128).
26682798f90SAdrian-Ken Rueegsegger
267*534fe2c1SAdrian-Ken Rueegsegger    It's speed is comparable to SHA1 and there are no known attacks against
268*534fe2c1SAdrian-Ken Rueegsegger    RIPEMD-160.
269*534fe2c1SAdrian-Ken Rueegsegger
270*534fe2c1SAdrian-Ken Rueegsegger    Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
271*534fe2c1SAdrian-Ken Rueegsegger    See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
272*534fe2c1SAdrian-Ken Rueegsegger
273*534fe2c1SAdrian-Ken Rueegseggerconfig CRYPTO_RMD256
274*534fe2c1SAdrian-Ken Rueegsegger  tristate "RIPEMD-256 digest algorithm"
275*534fe2c1SAdrian-Ken Rueegsegger  select CRYPTO_ALGAPI
276*534fe2c1SAdrian-Ken Rueegsegger  help
277*534fe2c1SAdrian-Ken Rueegsegger    RIPEMD-256 is an optional extension of RIPEMD-128 with a 256 bit hash.
278*534fe2c1SAdrian-Ken Rueegsegger    It is intended for applications that require longer hash-results, without
279*534fe2c1SAdrian-Ken Rueegsegger    needing a larger security level (than RIPEMD-128).
280*534fe2c1SAdrian-Ken Rueegsegger
281*534fe2c1SAdrian-Ken Rueegsegger    Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
282*534fe2c1SAdrian-Ken Rueegsegger    See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
283*534fe2c1SAdrian-Ken Rueegsegger
284*534fe2c1SAdrian-Ken Rueegseggerconfig CRYPTO_RMD320
285*534fe2c1SAdrian-Ken Rueegsegger  tristate "RIPEMD-320 digest algorithm"
286*534fe2c1SAdrian-Ken Rueegsegger  select CRYPTO_ALGAPI
287*534fe2c1SAdrian-Ken Rueegsegger  help
288*534fe2c1SAdrian-Ken Rueegsegger    RIPEMD-320 is an optional extension of RIPEMD-160 with a 320 bit hash.
289*534fe2c1SAdrian-Ken Rueegsegger    It is intended for applications that require longer hash-results, without
290*534fe2c1SAdrian-Ken Rueegsegger    needing a larger security level (than RIPEMD-160).
291*534fe2c1SAdrian-Ken Rueegsegger
29282798f90SAdrian-Ken Rueegsegger    Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
29382798f90SAdrian-Ken Rueegsegger    See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
29482798f90SAdrian-Ken Rueegsegger
2951da177e4SLinus Torvaldsconfig CRYPTO_SHA1
2961da177e4SLinus Torvalds	tristate "SHA1 digest algorithm"
297cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2981da177e4SLinus Torvalds	help
2991da177e4SLinus Torvalds	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
3001da177e4SLinus Torvalds
3011da177e4SLinus Torvaldsconfig CRYPTO_SHA256
302cd12fb90SJonathan Lynch	tristate "SHA224 and SHA256 digest algorithm"
303cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3041da177e4SLinus Torvalds	help
3051da177e4SLinus Torvalds	  SHA256 secure hash standard (DFIPS 180-2).
3061da177e4SLinus Torvalds
3071da177e4SLinus Torvalds	  This version of SHA implements a 256 bit hash with 128 bits of
3081da177e4SLinus Torvalds	  security against collision attacks.
3091da177e4SLinus Torvalds
310cd12fb90SJonathan Lynch          This code also includes SHA-224, a 224 bit hash with 112 bits
311cd12fb90SJonathan Lynch          of security against collision attacks.
312cd12fb90SJonathan Lynch
3131da177e4SLinus Torvaldsconfig CRYPTO_SHA512
3141da177e4SLinus Torvalds	tristate "SHA384 and SHA512 digest algorithms"
315cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3161da177e4SLinus Torvalds	help
3171da177e4SLinus Torvalds	  SHA512 secure hash standard (DFIPS 180-2).
3181da177e4SLinus Torvalds
3191da177e4SLinus Torvalds	  This version of SHA implements a 512 bit hash with 256 bits of
3201da177e4SLinus Torvalds	  security against collision attacks.
3211da177e4SLinus Torvalds
3221da177e4SLinus Torvalds	  This code also includes SHA-384, a 384 bit hash with 192 bits
3231da177e4SLinus Torvalds	  of security against collision attacks.
3241da177e4SLinus Torvalds
3251da177e4SLinus Torvaldsconfig CRYPTO_TGR192
3261da177e4SLinus Torvalds	tristate "Tiger digest algorithms"
327cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3281da177e4SLinus Torvalds	help
3291da177e4SLinus Torvalds	  Tiger hash algorithm 192, 160 and 128-bit hashes
3301da177e4SLinus Torvalds
3311da177e4SLinus Torvalds	  Tiger is a hash function optimized for 64-bit processors while
3321da177e4SLinus Torvalds	  still having decent performance on 32-bit processors.
3331da177e4SLinus Torvalds	  Tiger was developed by Ross Anderson and Eli Biham.
3341da177e4SLinus Torvalds
3351da177e4SLinus Torvalds	  See also:
3361da177e4SLinus Torvalds	  <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
3371da177e4SLinus Torvalds
338584fffc8SSebastian Siewiorconfig CRYPTO_WP512
339584fffc8SSebastian Siewior	tristate "Whirlpool digest algorithms"
340cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3411da177e4SLinus Torvalds	help
342584fffc8SSebastian Siewior	  Whirlpool hash algorithm 512, 384 and 256-bit hashes
3431da177e4SLinus Torvalds
344584fffc8SSebastian Siewior	  Whirlpool-512 is part of the NESSIE cryptographic primitives.
345584fffc8SSebastian Siewior	  Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
3461da177e4SLinus Torvalds
3471da177e4SLinus Torvalds	  See also:
348584fffc8SSebastian Siewior	  <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
3491da177e4SLinus Torvalds
350584fffc8SSebastian Siewiorcomment "Ciphers"
3511da177e4SLinus Torvalds
3521da177e4SLinus Torvaldsconfig CRYPTO_AES
3531da177e4SLinus Torvalds	tristate "AES cipher algorithms"
354cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3551da177e4SLinus Torvalds	help
3561da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
3571da177e4SLinus Torvalds	  algorithm.
3581da177e4SLinus Torvalds
3591da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
3601da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
3611da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
3621da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
3631da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
3641da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
3651da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
3661da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
3671da177e4SLinus Torvalds
3681da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
3691da177e4SLinus Torvalds
3701da177e4SLinus Torvalds	  See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
3711da177e4SLinus Torvalds
3721da177e4SLinus Torvaldsconfig CRYPTO_AES_586
3731da177e4SLinus Torvalds	tristate "AES cipher algorithms (i586)"
374cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && !64BIT
375cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3765157dea8SSebastian Siewior	select CRYPTO_AES
3771da177e4SLinus Torvalds	help
3781da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
3791da177e4SLinus Torvalds	  algorithm.
3801da177e4SLinus Torvalds
3811da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
3821da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
3831da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
3841da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
3851da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
3861da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
3871da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
3881da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
3891da177e4SLinus Torvalds
3901da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
3911da177e4SLinus Torvalds
3921da177e4SLinus Torvalds	  See <http://csrc.nist.gov/encryption/aes/> for more information.
3931da177e4SLinus Torvalds
394a2a892a2SAndreas Steinmetzconfig CRYPTO_AES_X86_64
395a2a892a2SAndreas Steinmetz	tristate "AES cipher algorithms (x86_64)"
396cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && 64BIT
397cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
39881190b32SSebastian Siewior	select CRYPTO_AES
399a2a892a2SAndreas Steinmetz	help
400a2a892a2SAndreas Steinmetz	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
401a2a892a2SAndreas Steinmetz	  algorithm.
402a2a892a2SAndreas Steinmetz
403a2a892a2SAndreas Steinmetz	  Rijndael appears to be consistently a very good performer in
404a2a892a2SAndreas Steinmetz	  both hardware and software across a wide range of computing
405a2a892a2SAndreas Steinmetz	  environments regardless of its use in feedback or non-feedback
406a2a892a2SAndreas Steinmetz	  modes. Its key setup time is excellent, and its key agility is
407a2a892a2SAndreas Steinmetz	  good. Rijndael's very low memory requirements make it very well
408a2a892a2SAndreas Steinmetz	  suited for restricted-space environments, in which it also
409a2a892a2SAndreas Steinmetz	  demonstrates excellent performance. Rijndael's operations are
410a2a892a2SAndreas Steinmetz	  among the easiest to defend against power and timing attacks.
411a2a892a2SAndreas Steinmetz
412a2a892a2SAndreas Steinmetz	  The AES specifies three key sizes: 128, 192 and 256 bits
413a2a892a2SAndreas Steinmetz
414a2a892a2SAndreas Steinmetz	  See <http://csrc.nist.gov/encryption/aes/> for more information.
415a2a892a2SAndreas Steinmetz
4161da177e4SLinus Torvaldsconfig CRYPTO_ANUBIS
4171da177e4SLinus Torvalds	tristate "Anubis cipher algorithm"
418cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4191da177e4SLinus Torvalds	help
4201da177e4SLinus Torvalds	  Anubis cipher algorithm.
4211da177e4SLinus Torvalds
4221da177e4SLinus Torvalds	  Anubis is a variable key length cipher which can use keys from
4231da177e4SLinus Torvalds	  128 bits to 320 bits in length.  It was evaluated as a entrant
4241da177e4SLinus Torvalds	  in the NESSIE competition.
4251da177e4SLinus Torvalds
4261da177e4SLinus Torvalds	  See also:
4271da177e4SLinus Torvalds	  <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
4281da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
4291da177e4SLinus Torvalds
430584fffc8SSebastian Siewiorconfig CRYPTO_ARC4
431584fffc8SSebastian Siewior	tristate "ARC4 cipher algorithm"
432e2ee95b8SHye-Shik Chang	select CRYPTO_ALGAPI
433e2ee95b8SHye-Shik Chang	help
434584fffc8SSebastian Siewior	  ARC4 cipher algorithm.
435e2ee95b8SHye-Shik Chang
436584fffc8SSebastian Siewior	  ARC4 is a stream cipher using keys ranging from 8 bits to 2048
437584fffc8SSebastian Siewior	  bits in length.  This algorithm is required for driver-based
438584fffc8SSebastian Siewior	  WEP, but it should not be for other purposes because of the
439584fffc8SSebastian Siewior	  weakness of the algorithm.
440584fffc8SSebastian Siewior
441584fffc8SSebastian Siewiorconfig CRYPTO_BLOWFISH
442584fffc8SSebastian Siewior	tristate "Blowfish cipher algorithm"
443584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
444584fffc8SSebastian Siewior	help
445584fffc8SSebastian Siewior	  Blowfish cipher algorithm, by Bruce Schneier.
446584fffc8SSebastian Siewior
447584fffc8SSebastian Siewior	  This is a variable key length cipher which can use keys from 32
448584fffc8SSebastian Siewior	  bits to 448 bits in length.  It's fast, simple and specifically
449584fffc8SSebastian Siewior	  designed for use on "large microprocessors".
450e2ee95b8SHye-Shik Chang
451e2ee95b8SHye-Shik Chang	  See also:
452584fffc8SSebastian Siewior	  <http://www.schneier.com/blowfish.html>
453584fffc8SSebastian Siewior
454584fffc8SSebastian Siewiorconfig CRYPTO_CAMELLIA
455584fffc8SSebastian Siewior	tristate "Camellia cipher algorithms"
456584fffc8SSebastian Siewior	depends on CRYPTO
457584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
458584fffc8SSebastian Siewior	help
459584fffc8SSebastian Siewior	  Camellia cipher algorithms module.
460584fffc8SSebastian Siewior
461584fffc8SSebastian Siewior	  Camellia is a symmetric key block cipher developed jointly
462584fffc8SSebastian Siewior	  at NTT and Mitsubishi Electric Corporation.
463584fffc8SSebastian Siewior
464584fffc8SSebastian Siewior	  The Camellia specifies three key sizes: 128, 192 and 256 bits.
465584fffc8SSebastian Siewior
466584fffc8SSebastian Siewior	  See also:
467584fffc8SSebastian Siewior	  <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
468584fffc8SSebastian Siewior
469584fffc8SSebastian Siewiorconfig CRYPTO_CAST5
470584fffc8SSebastian Siewior	tristate "CAST5 (CAST-128) cipher algorithm"
471584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
472584fffc8SSebastian Siewior	help
473584fffc8SSebastian Siewior	  The CAST5 encryption algorithm (synonymous with CAST-128) is
474584fffc8SSebastian Siewior	  described in RFC2144.
475584fffc8SSebastian Siewior
476584fffc8SSebastian Siewiorconfig CRYPTO_CAST6
477584fffc8SSebastian Siewior	tristate "CAST6 (CAST-256) cipher algorithm"
478584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
479584fffc8SSebastian Siewior	help
480584fffc8SSebastian Siewior	  The CAST6 encryption algorithm (synonymous with CAST-256) is
481584fffc8SSebastian Siewior	  described in RFC2612.
482584fffc8SSebastian Siewior
483584fffc8SSebastian Siewiorconfig CRYPTO_DES
484584fffc8SSebastian Siewior	tristate "DES and Triple DES EDE cipher algorithms"
485584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
486584fffc8SSebastian Siewior	help
487584fffc8SSebastian Siewior	  DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
488584fffc8SSebastian Siewior
489584fffc8SSebastian Siewiorconfig CRYPTO_FCRYPT
490584fffc8SSebastian Siewior	tristate "FCrypt cipher algorithm"
491584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
492584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
493584fffc8SSebastian Siewior	help
494584fffc8SSebastian Siewior	  FCrypt algorithm used by RxRPC.
495584fffc8SSebastian Siewior
496584fffc8SSebastian Siewiorconfig CRYPTO_KHAZAD
497584fffc8SSebastian Siewior	tristate "Khazad cipher algorithm"
498584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
499584fffc8SSebastian Siewior	help
500584fffc8SSebastian Siewior	  Khazad cipher algorithm.
501584fffc8SSebastian Siewior
502584fffc8SSebastian Siewior	  Khazad was a finalist in the initial NESSIE competition.  It is
503584fffc8SSebastian Siewior	  an algorithm optimized for 64-bit processors with good performance
504584fffc8SSebastian Siewior	  on 32-bit processors.  Khazad uses an 128 bit key size.
505584fffc8SSebastian Siewior
506584fffc8SSebastian Siewior	  See also:
507584fffc8SSebastian Siewior	  <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
508e2ee95b8SHye-Shik Chang
5092407d608STan Swee Hengconfig CRYPTO_SALSA20
5102407d608STan Swee Heng	tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)"
5112407d608STan Swee Heng	depends on EXPERIMENTAL
5122407d608STan Swee Heng	select CRYPTO_BLKCIPHER
5132407d608STan Swee Heng	help
5142407d608STan Swee Heng	  Salsa20 stream cipher algorithm.
5152407d608STan Swee Heng
5162407d608STan Swee Heng	  Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
5172407d608STan Swee Heng	  Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
5182407d608STan Swee Heng
5192407d608STan Swee Heng	  The Salsa20 stream cipher algorithm is designed by Daniel J.
5202407d608STan Swee Heng	  Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
5211da177e4SLinus Torvalds
522974e4b75STan Swee Hengconfig CRYPTO_SALSA20_586
523974e4b75STan Swee Heng	tristate "Salsa20 stream cipher algorithm (i586) (EXPERIMENTAL)"
524974e4b75STan Swee Heng	depends on (X86 || UML_X86) && !64BIT
525974e4b75STan Swee Heng	depends on EXPERIMENTAL
526974e4b75STan Swee Heng	select CRYPTO_BLKCIPHER
527974e4b75STan Swee Heng	help
528974e4b75STan Swee Heng	  Salsa20 stream cipher algorithm.
529974e4b75STan Swee Heng
530974e4b75STan Swee Heng	  Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
531974e4b75STan Swee Heng	  Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
532974e4b75STan Swee Heng
533974e4b75STan Swee Heng	  The Salsa20 stream cipher algorithm is designed by Daniel J.
534974e4b75STan Swee Heng	  Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
535974e4b75STan Swee Heng
5369a7dafbbSTan Swee Hengconfig CRYPTO_SALSA20_X86_64
5379a7dafbbSTan Swee Heng	tristate "Salsa20 stream cipher algorithm (x86_64) (EXPERIMENTAL)"
5389a7dafbbSTan Swee Heng	depends on (X86 || UML_X86) && 64BIT
5399a7dafbbSTan Swee Heng	depends on EXPERIMENTAL
5409a7dafbbSTan Swee Heng	select CRYPTO_BLKCIPHER
5419a7dafbbSTan Swee Heng	help
5429a7dafbbSTan Swee Heng	  Salsa20 stream cipher algorithm.
5439a7dafbbSTan Swee Heng
5449a7dafbbSTan Swee Heng	  Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
5459a7dafbbSTan Swee Heng	  Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
5469a7dafbbSTan Swee Heng
5479a7dafbbSTan Swee Heng	  The Salsa20 stream cipher algorithm is designed by Daniel J.
5489a7dafbbSTan Swee Heng	  Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
5499a7dafbbSTan Swee Heng
550584fffc8SSebastian Siewiorconfig CRYPTO_SEED
551584fffc8SSebastian Siewior	tristate "SEED cipher algorithm"
552584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
553584fffc8SSebastian Siewior	help
554584fffc8SSebastian Siewior	  SEED cipher algorithm (RFC4269).
555584fffc8SSebastian Siewior
556584fffc8SSebastian Siewior	  SEED is a 128-bit symmetric key block cipher that has been
557584fffc8SSebastian Siewior	  developed by KISA (Korea Information Security Agency) as a
558584fffc8SSebastian Siewior	  national standard encryption algorithm of the Republic of Korea.
559584fffc8SSebastian Siewior	  It is a 16 round block cipher with the key size of 128 bit.
560584fffc8SSebastian Siewior
561584fffc8SSebastian Siewior	  See also:
562584fffc8SSebastian Siewior	  <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
563584fffc8SSebastian Siewior
564584fffc8SSebastian Siewiorconfig CRYPTO_SERPENT
565584fffc8SSebastian Siewior	tristate "Serpent cipher algorithm"
566584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
567584fffc8SSebastian Siewior	help
568584fffc8SSebastian Siewior	  Serpent cipher algorithm, by Anderson, Biham & Knudsen.
569584fffc8SSebastian Siewior
570584fffc8SSebastian Siewior	  Keys are allowed to be from 0 to 256 bits in length, in steps
571584fffc8SSebastian Siewior	  of 8 bits.  Also includes the 'Tnepres' algorithm, a reversed
572584fffc8SSebastian Siewior	  variant of Serpent for compatibility with old kerneli.org code.
573584fffc8SSebastian Siewior
574584fffc8SSebastian Siewior	  See also:
575584fffc8SSebastian Siewior	  <http://www.cl.cam.ac.uk/~rja14/serpent.html>
576584fffc8SSebastian Siewior
577584fffc8SSebastian Siewiorconfig CRYPTO_TEA
578584fffc8SSebastian Siewior	tristate "TEA, XTEA and XETA cipher algorithms"
579584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
580584fffc8SSebastian Siewior	help
581584fffc8SSebastian Siewior	  TEA cipher algorithm.
582584fffc8SSebastian Siewior
583584fffc8SSebastian Siewior	  Tiny Encryption Algorithm is a simple cipher that uses
584584fffc8SSebastian Siewior	  many rounds for security.  It is very fast and uses
585584fffc8SSebastian Siewior	  little memory.
586584fffc8SSebastian Siewior
587584fffc8SSebastian Siewior	  Xtendend Tiny Encryption Algorithm is a modification to
588584fffc8SSebastian Siewior	  the TEA algorithm to address a potential key weakness
589584fffc8SSebastian Siewior	  in the TEA algorithm.
590584fffc8SSebastian Siewior
591584fffc8SSebastian Siewior	  Xtendend Encryption Tiny Algorithm is a mis-implementation
592584fffc8SSebastian Siewior	  of the XTEA algorithm for compatibility purposes.
593584fffc8SSebastian Siewior
594584fffc8SSebastian Siewiorconfig CRYPTO_TWOFISH
595584fffc8SSebastian Siewior	tristate "Twofish cipher algorithm"
596584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
597584fffc8SSebastian Siewior	select CRYPTO_TWOFISH_COMMON
598584fffc8SSebastian Siewior	help
599584fffc8SSebastian Siewior	  Twofish cipher algorithm.
600584fffc8SSebastian Siewior
601584fffc8SSebastian Siewior	  Twofish was submitted as an AES (Advanced Encryption Standard)
602584fffc8SSebastian Siewior	  candidate cipher by researchers at CounterPane Systems.  It is a
603584fffc8SSebastian Siewior	  16 round block cipher supporting key sizes of 128, 192, and 256
604584fffc8SSebastian Siewior	  bits.
605584fffc8SSebastian Siewior
606584fffc8SSebastian Siewior	  See also:
607584fffc8SSebastian Siewior	  <http://www.schneier.com/twofish.html>
608584fffc8SSebastian Siewior
609584fffc8SSebastian Siewiorconfig CRYPTO_TWOFISH_COMMON
610584fffc8SSebastian Siewior	tristate
611584fffc8SSebastian Siewior	help
612584fffc8SSebastian Siewior	  Common parts of the Twofish cipher algorithm shared by the
613584fffc8SSebastian Siewior	  generic c and the assembler implementations.
614584fffc8SSebastian Siewior
615584fffc8SSebastian Siewiorconfig CRYPTO_TWOFISH_586
616584fffc8SSebastian Siewior	tristate "Twofish cipher algorithms (i586)"
617584fffc8SSebastian Siewior	depends on (X86 || UML_X86) && !64BIT
618584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
619584fffc8SSebastian Siewior	select CRYPTO_TWOFISH_COMMON
620584fffc8SSebastian Siewior	help
621584fffc8SSebastian Siewior	  Twofish cipher algorithm.
622584fffc8SSebastian Siewior
623584fffc8SSebastian Siewior	  Twofish was submitted as an AES (Advanced Encryption Standard)
624584fffc8SSebastian Siewior	  candidate cipher by researchers at CounterPane Systems.  It is a
625584fffc8SSebastian Siewior	  16 round block cipher supporting key sizes of 128, 192, and 256
626584fffc8SSebastian Siewior	  bits.
627584fffc8SSebastian Siewior
628584fffc8SSebastian Siewior	  See also:
629584fffc8SSebastian Siewior	  <http://www.schneier.com/twofish.html>
630584fffc8SSebastian Siewior
631584fffc8SSebastian Siewiorconfig CRYPTO_TWOFISH_X86_64
632584fffc8SSebastian Siewior	tristate "Twofish cipher algorithm (x86_64)"
633584fffc8SSebastian Siewior	depends on (X86 || UML_X86) && 64BIT
634584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
635584fffc8SSebastian Siewior	select CRYPTO_TWOFISH_COMMON
636584fffc8SSebastian Siewior	help
637584fffc8SSebastian Siewior	  Twofish cipher algorithm (x86_64).
638584fffc8SSebastian Siewior
639584fffc8SSebastian Siewior	  Twofish was submitted as an AES (Advanced Encryption Standard)
640584fffc8SSebastian Siewior	  candidate cipher by researchers at CounterPane Systems.  It is a
641584fffc8SSebastian Siewior	  16 round block cipher supporting key sizes of 128, 192, and 256
642584fffc8SSebastian Siewior	  bits.
643584fffc8SSebastian Siewior
644584fffc8SSebastian Siewior	  See also:
645584fffc8SSebastian Siewior	  <http://www.schneier.com/twofish.html>
646584fffc8SSebastian Siewior
647584fffc8SSebastian Siewiorcomment "Compression"
648584fffc8SSebastian Siewior
6491da177e4SLinus Torvaldsconfig CRYPTO_DEFLATE
6501da177e4SLinus Torvalds	tristate "Deflate compression algorithm"
651cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
6521da177e4SLinus Torvalds	select ZLIB_INFLATE
6531da177e4SLinus Torvalds	select ZLIB_DEFLATE
6541da177e4SLinus Torvalds	help
6551da177e4SLinus Torvalds	  This is the Deflate algorithm (RFC1951), specified for use in
6561da177e4SLinus Torvalds	  IPSec with the IPCOMP protocol (RFC3173, RFC2394).
6571da177e4SLinus Torvalds
6581da177e4SLinus Torvalds	  You will most probably want this if using IPSec.
6591da177e4SLinus Torvalds
6600b77abb3SZoltan Sogorconfig CRYPTO_LZO
6610b77abb3SZoltan Sogor	tristate "LZO compression algorithm"
6620b77abb3SZoltan Sogor	select CRYPTO_ALGAPI
6630b77abb3SZoltan Sogor	select LZO_COMPRESS
6640b77abb3SZoltan Sogor	select LZO_DECOMPRESS
6650b77abb3SZoltan Sogor	help
6660b77abb3SZoltan Sogor	  This is the LZO algorithm.
6670b77abb3SZoltan Sogor
6681da177e4SLinus Torvaldssource "drivers/crypto/Kconfig"
6691da177e4SLinus Torvalds
670cce9e06dSHerbert Xuendif	# if CRYPTO
671