xref: /linux/crypto/Kconfig (revision b6d44341864b50a308f932c39f03fb8ad5efb021)
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
68b8a28251SLoc Ho	select CRYPTO_HASH
69584fffc8SSebastian Siewior	select CRYPTO_MANAGER
70584fffc8SSebastian Siewior	help
71584fffc8SSebastian Siewior	  This is a generic software asynchronous crypto daemon that
72584fffc8SSebastian Siewior	  converts an arbitrary synchronous software crypto algorithm
73584fffc8SSebastian Siewior	  into an asynchronous algorithm that executes in a kernel thread.
74584fffc8SSebastian Siewior
75584fffc8SSebastian Siewiorconfig CRYPTO_AUTHENC
76584fffc8SSebastian Siewior	tristate "Authenc support"
77584fffc8SSebastian Siewior	select CRYPTO_AEAD
78584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
79584fffc8SSebastian Siewior	select CRYPTO_MANAGER
80584fffc8SSebastian Siewior	select CRYPTO_HASH
81584fffc8SSebastian Siewior	help
82584fffc8SSebastian Siewior	  Authenc: Combined mode wrapper for IPsec.
83584fffc8SSebastian Siewior	  This is required for IPSec.
84584fffc8SSebastian Siewior
85584fffc8SSebastian Siewiorconfig CRYPTO_TEST
86584fffc8SSebastian Siewior	tristate "Testing module"
87584fffc8SSebastian Siewior	depends on m
88584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
89584fffc8SSebastian Siewior	select CRYPTO_AEAD
90584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
91584fffc8SSebastian Siewior	help
92584fffc8SSebastian Siewior	  Quick & dirty crypto test module.
93584fffc8SSebastian Siewior
94584fffc8SSebastian Siewiorcomment "Authenticated Encryption with Associated Data"
95584fffc8SSebastian Siewior
96584fffc8SSebastian Siewiorconfig CRYPTO_CCM
97584fffc8SSebastian Siewior	tristate "CCM support"
98584fffc8SSebastian Siewior	select CRYPTO_CTR
99584fffc8SSebastian Siewior	select CRYPTO_AEAD
100584fffc8SSebastian Siewior	help
101584fffc8SSebastian Siewior	  Support for Counter with CBC MAC. Required for IPsec.
102584fffc8SSebastian Siewior
103584fffc8SSebastian Siewiorconfig CRYPTO_GCM
104584fffc8SSebastian Siewior	tristate "GCM/GMAC support"
105584fffc8SSebastian Siewior	select CRYPTO_CTR
106584fffc8SSebastian Siewior	select CRYPTO_AEAD
107584fffc8SSebastian Siewior	select CRYPTO_GF128MUL
108584fffc8SSebastian Siewior	help
109584fffc8SSebastian Siewior	  Support for Galois/Counter Mode (GCM) and Galois Message
110584fffc8SSebastian Siewior	  Authentication Code (GMAC). Required for IPSec.
111584fffc8SSebastian Siewior
112584fffc8SSebastian Siewiorconfig CRYPTO_SEQIV
113584fffc8SSebastian Siewior	tristate "Sequence Number IV Generator"
114584fffc8SSebastian Siewior	select CRYPTO_AEAD
115584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
116584fffc8SSebastian Siewior	help
117584fffc8SSebastian Siewior	  This IV generator generates an IV based on a sequence number by
118584fffc8SSebastian Siewior	  xoring it with a salt.  This algorithm is mainly useful for CTR
119584fffc8SSebastian Siewior
120584fffc8SSebastian Siewiorcomment "Block modes"
121584fffc8SSebastian Siewior
122584fffc8SSebastian Siewiorconfig CRYPTO_CBC
123584fffc8SSebastian Siewior	tristate "CBC support"
124584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
125584fffc8SSebastian Siewior	select CRYPTO_MANAGER
126584fffc8SSebastian Siewior	help
127584fffc8SSebastian Siewior	  CBC: Cipher Block Chaining mode
128584fffc8SSebastian Siewior	  This block cipher algorithm is required for IPSec.
129584fffc8SSebastian Siewior
130584fffc8SSebastian Siewiorconfig CRYPTO_CTR
131584fffc8SSebastian Siewior	tristate "CTR support"
132584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
133584fffc8SSebastian Siewior	select CRYPTO_SEQIV
134584fffc8SSebastian Siewior	select CRYPTO_MANAGER
135584fffc8SSebastian Siewior	help
136584fffc8SSebastian Siewior	  CTR: Counter mode
137584fffc8SSebastian Siewior	  This block cipher algorithm is required for IPSec.
138584fffc8SSebastian Siewior
139584fffc8SSebastian Siewiorconfig CRYPTO_CTS
140584fffc8SSebastian Siewior	tristate "CTS support"
141584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
142584fffc8SSebastian Siewior	help
143584fffc8SSebastian Siewior	  CTS: Cipher Text Stealing
144584fffc8SSebastian Siewior	  This is the Cipher Text Stealing mode as described by
145584fffc8SSebastian Siewior	  Section 8 of rfc2040 and referenced by rfc3962.
146584fffc8SSebastian Siewior	  (rfc3962 includes errata information in its Appendix A)
147584fffc8SSebastian Siewior	  This mode is required for Kerberos gss mechanism support
148584fffc8SSebastian Siewior	  for AES encryption.
149584fffc8SSebastian Siewior
150584fffc8SSebastian Siewiorconfig CRYPTO_ECB
151584fffc8SSebastian Siewior	tristate "ECB support"
152584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
153584fffc8SSebastian Siewior	select CRYPTO_MANAGER
154584fffc8SSebastian Siewior	help
155584fffc8SSebastian Siewior	  ECB: Electronic CodeBook mode
156584fffc8SSebastian Siewior	  This is the simplest block cipher algorithm.  It simply encrypts
157584fffc8SSebastian Siewior	  the input block by block.
158584fffc8SSebastian Siewior
159584fffc8SSebastian Siewiorconfig CRYPTO_LRW
160584fffc8SSebastian Siewior	tristate "LRW support (EXPERIMENTAL)"
161584fffc8SSebastian Siewior	depends on EXPERIMENTAL
162584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
163584fffc8SSebastian Siewior	select CRYPTO_MANAGER
164584fffc8SSebastian Siewior	select CRYPTO_GF128MUL
165584fffc8SSebastian Siewior	help
166584fffc8SSebastian Siewior	  LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
167584fffc8SSebastian Siewior	  narrow block cipher mode for dm-crypt.  Use it with cipher
168584fffc8SSebastian Siewior	  specification string aes-lrw-benbi, the key must be 256, 320 or 384.
169584fffc8SSebastian Siewior	  The first 128, 192 or 256 bits in the key are used for AES and the
170584fffc8SSebastian Siewior	  rest is used to tie each cipher block to its logical position.
171584fffc8SSebastian Siewior
172584fffc8SSebastian Siewiorconfig CRYPTO_PCBC
173584fffc8SSebastian Siewior	tristate "PCBC support"
174584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
175584fffc8SSebastian Siewior	select CRYPTO_MANAGER
176584fffc8SSebastian Siewior	help
177584fffc8SSebastian Siewior	  PCBC: Propagating Cipher Block Chaining mode
178584fffc8SSebastian Siewior	  This block cipher algorithm is required for RxRPC.
179584fffc8SSebastian Siewior
180584fffc8SSebastian Siewiorconfig CRYPTO_XTS
181584fffc8SSebastian Siewior	tristate "XTS support (EXPERIMENTAL)"
182584fffc8SSebastian Siewior	depends on EXPERIMENTAL
183584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
184584fffc8SSebastian Siewior	select CRYPTO_MANAGER
185584fffc8SSebastian Siewior	select CRYPTO_GF128MUL
186584fffc8SSebastian Siewior	help
187584fffc8SSebastian Siewior	  XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
188584fffc8SSebastian Siewior	  key size 256, 384 or 512 bits. This implementation currently
189584fffc8SSebastian Siewior	  can't handle a sectorsize which is not a multiple of 16 bytes.
190584fffc8SSebastian Siewior
191584fffc8SSebastian Siewiorcomment "Hash modes"
192584fffc8SSebastian Siewior
1931da177e4SLinus Torvaldsconfig CRYPTO_HMAC
1948425165dSHerbert Xu	tristate "HMAC support"
1950796ae06SHerbert Xu	select CRYPTO_HASH
19643518407SHerbert Xu	select CRYPTO_MANAGER
1971da177e4SLinus Torvalds	help
1981da177e4SLinus Torvalds	  HMAC: Keyed-Hashing for Message Authentication (RFC2104).
1991da177e4SLinus Torvalds	  This is required for IPSec.
2001da177e4SLinus Torvalds
201333b0d7eSKazunori MIYAZAWAconfig CRYPTO_XCBC
202333b0d7eSKazunori MIYAZAWA	tristate "XCBC support"
203333b0d7eSKazunori MIYAZAWA	depends on EXPERIMENTAL
204333b0d7eSKazunori MIYAZAWA	select CRYPTO_HASH
205333b0d7eSKazunori MIYAZAWA	select CRYPTO_MANAGER
206333b0d7eSKazunori MIYAZAWA	help
207333b0d7eSKazunori MIYAZAWA	  XCBC: Keyed-Hashing with encryption algorithm
208333b0d7eSKazunori MIYAZAWA		http://www.ietf.org/rfc/rfc3566.txt
209333b0d7eSKazunori MIYAZAWA		http://csrc.nist.gov/encryption/modes/proposedmodes/
210333b0d7eSKazunori MIYAZAWA		 xcbc-mac/xcbc-mac-spec.pdf
211333b0d7eSKazunori MIYAZAWA
212584fffc8SSebastian Siewiorcomment "Digest"
213584fffc8SSebastian Siewior
214584fffc8SSebastian Siewiorconfig CRYPTO_CRC32C
215584fffc8SSebastian Siewior	tristate "CRC32c CRC algorithm"
2165773a3e6SHerbert Xu	select CRYPTO_HASH
217584fffc8SSebastian Siewior	select LIBCRC32C
2181da177e4SLinus Torvalds	help
219584fffc8SSebastian Siewior	  Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
220584fffc8SSebastian Siewior	  by iSCSI for header and data digests and by others.
221584fffc8SSebastian Siewior	  See Castagnoli93.  This implementation uses lib/libcrc32c.
222584fffc8SSebastian Siewior	  Module will be crc32c.
2231da177e4SLinus Torvalds
2241da177e4SLinus Torvaldsconfig CRYPTO_MD4
2251da177e4SLinus Torvalds	tristate "MD4 digest algorithm"
226cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2271da177e4SLinus Torvalds	help
2281da177e4SLinus Torvalds	  MD4 message digest algorithm (RFC1320).
2291da177e4SLinus Torvalds
2301da177e4SLinus Torvaldsconfig CRYPTO_MD5
2311da177e4SLinus Torvalds	tristate "MD5 digest algorithm"
232cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
2331da177e4SLinus Torvalds	help
2341da177e4SLinus Torvalds	  MD5 message digest algorithm (RFC1321).
2351da177e4SLinus Torvalds
236584fffc8SSebastian Siewiorconfig CRYPTO_MICHAEL_MIC
237584fffc8SSebastian Siewior	tristate "Michael MIC keyed digest algorithm"
238584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
239584fffc8SSebastian Siewior	help
240584fffc8SSebastian Siewior	  Michael MIC is used for message integrity protection in TKIP
241584fffc8SSebastian Siewior	  (IEEE 802.11i). This algorithm is required for TKIP, but it
242584fffc8SSebastian Siewior	  should not be used for other purposes because of the weakness
243584fffc8SSebastian Siewior	  of the algorithm.
244584fffc8SSebastian Siewior
24582798f90SAdrian-Ken Rueegseggerconfig CRYPTO_RMD128
24682798f90SAdrian-Ken Rueegsegger	tristate "RIPEMD-128 digest algorithm"
24782798f90SAdrian-Ken Rueegsegger	select CRYPTO_ALGAPI
24882798f90SAdrian-Ken Rueegsegger	help
24982798f90SAdrian-Ken Rueegsegger	  RIPEMD-128 (ISO/IEC 10118-3:2004).
25082798f90SAdrian-Ken Rueegsegger
25182798f90SAdrian-Ken Rueegsegger	  RIPEMD-128 is a 128-bit cryptographic hash function. It should only
25282798f90SAdrian-Ken Rueegsegger	  to be used as a secure replacement for RIPEMD. For other use cases
25382798f90SAdrian-Ken Rueegsegger	  RIPEMD-160 should be used.
25482798f90SAdrian-Ken Rueegsegger
25582798f90SAdrian-Ken Rueegsegger	  Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
25682798f90SAdrian-Ken Rueegsegger	  See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
25782798f90SAdrian-Ken Rueegsegger
25882798f90SAdrian-Ken Rueegseggerconfig CRYPTO_RMD160
25982798f90SAdrian-Ken Rueegsegger	tristate "RIPEMD-160 digest algorithm"
26082798f90SAdrian-Ken Rueegsegger	select CRYPTO_ALGAPI
26182798f90SAdrian-Ken Rueegsegger	help
26282798f90SAdrian-Ken Rueegsegger	  RIPEMD-160 (ISO/IEC 10118-3:2004).
26382798f90SAdrian-Ken Rueegsegger
26482798f90SAdrian-Ken Rueegsegger	  RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
26582798f90SAdrian-Ken Rueegsegger	  to be used as a secure replacement for the 128-bit hash functions
266*b6d44341SAdrian Bunk	  MD4, MD5 and it's predecessor RIPEMD
267*b6d44341SAdrian Bunk	  (not to be confused with RIPEMD-128).
26882798f90SAdrian-Ken Rueegsegger
269*b6d44341SAdrian Bunk	  It's speed is comparable to SHA1 and there are no known attacks
270*b6d44341SAdrian Bunk	  against RIPEMD-160.
271534fe2c1SAdrian-Ken Rueegsegger
272534fe2c1SAdrian-Ken Rueegsegger	  Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
273534fe2c1SAdrian-Ken Rueegsegger	  See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
274534fe2c1SAdrian-Ken Rueegsegger
275534fe2c1SAdrian-Ken Rueegseggerconfig CRYPTO_RMD256
276534fe2c1SAdrian-Ken Rueegsegger	tristate "RIPEMD-256 digest algorithm"
277534fe2c1SAdrian-Ken Rueegsegger	select CRYPTO_ALGAPI
278534fe2c1SAdrian-Ken Rueegsegger	help
279*b6d44341SAdrian Bunk	  RIPEMD-256 is an optional extension of RIPEMD-128 with a
280*b6d44341SAdrian Bunk	  256 bit hash. It is intended for applications that require
281*b6d44341SAdrian Bunk	  longer hash-results, without needing a larger security level
282*b6d44341SAdrian Bunk	  (than RIPEMD-128).
283534fe2c1SAdrian-Ken Rueegsegger
284534fe2c1SAdrian-Ken Rueegsegger	  Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
285534fe2c1SAdrian-Ken Rueegsegger	  See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
286534fe2c1SAdrian-Ken Rueegsegger
287534fe2c1SAdrian-Ken Rueegseggerconfig CRYPTO_RMD320
288534fe2c1SAdrian-Ken Rueegsegger	tristate "RIPEMD-320 digest algorithm"
289534fe2c1SAdrian-Ken Rueegsegger	select CRYPTO_ALGAPI
290534fe2c1SAdrian-Ken Rueegsegger	help
291*b6d44341SAdrian Bunk	  RIPEMD-320 is an optional extension of RIPEMD-160 with a
292*b6d44341SAdrian Bunk	  320 bit hash. It is intended for applications that require
293*b6d44341SAdrian Bunk	  longer hash-results, without needing a larger security level
294*b6d44341SAdrian Bunk	  (than RIPEMD-160).
295534fe2c1SAdrian-Ken Rueegsegger
29682798f90SAdrian-Ken Rueegsegger	  Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
29782798f90SAdrian-Ken Rueegsegger	  See <http://home.esat.kuleuven.be/~bosselae/ripemd160.html>
29882798f90SAdrian-Ken Rueegsegger
2991da177e4SLinus Torvaldsconfig CRYPTO_SHA1
3001da177e4SLinus Torvalds	tristate "SHA1 digest algorithm"
301cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3021da177e4SLinus Torvalds	help
3031da177e4SLinus Torvalds	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
3041da177e4SLinus Torvalds
3051da177e4SLinus Torvaldsconfig CRYPTO_SHA256
306cd12fb90SJonathan Lynch	tristate "SHA224 and SHA256 digest algorithm"
307cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3081da177e4SLinus Torvalds	help
3091da177e4SLinus Torvalds	  SHA256 secure hash standard (DFIPS 180-2).
3101da177e4SLinus Torvalds
3111da177e4SLinus Torvalds	  This version of SHA implements a 256 bit hash with 128 bits of
3121da177e4SLinus Torvalds	  security against collision attacks.
3131da177e4SLinus Torvalds
314cd12fb90SJonathan Lynch	  This code also includes SHA-224, a 224 bit hash with 112 bits
315cd12fb90SJonathan Lynch	  of security against collision attacks.
316cd12fb90SJonathan Lynch
3171da177e4SLinus Torvaldsconfig CRYPTO_SHA512
3181da177e4SLinus Torvalds	tristate "SHA384 and SHA512 digest algorithms"
319cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3201da177e4SLinus Torvalds	help
3211da177e4SLinus Torvalds	  SHA512 secure hash standard (DFIPS 180-2).
3221da177e4SLinus Torvalds
3231da177e4SLinus Torvalds	  This version of SHA implements a 512 bit hash with 256 bits of
3241da177e4SLinus Torvalds	  security against collision attacks.
3251da177e4SLinus Torvalds
3261da177e4SLinus Torvalds	  This code also includes SHA-384, a 384 bit hash with 192 bits
3271da177e4SLinus Torvalds	  of security against collision attacks.
3281da177e4SLinus Torvalds
3291da177e4SLinus Torvaldsconfig CRYPTO_TGR192
3301da177e4SLinus Torvalds	tristate "Tiger digest algorithms"
331cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3321da177e4SLinus Torvalds	help
3331da177e4SLinus Torvalds	  Tiger hash algorithm 192, 160 and 128-bit hashes
3341da177e4SLinus Torvalds
3351da177e4SLinus Torvalds	  Tiger is a hash function optimized for 64-bit processors while
3361da177e4SLinus Torvalds	  still having decent performance on 32-bit processors.
3371da177e4SLinus Torvalds	  Tiger was developed by Ross Anderson and Eli Biham.
3381da177e4SLinus Torvalds
3391da177e4SLinus Torvalds	  See also:
3401da177e4SLinus Torvalds	  <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
3411da177e4SLinus Torvalds
342584fffc8SSebastian Siewiorconfig CRYPTO_WP512
343584fffc8SSebastian Siewior	tristate "Whirlpool digest algorithms"
344cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3451da177e4SLinus Torvalds	help
346584fffc8SSebastian Siewior	  Whirlpool hash algorithm 512, 384 and 256-bit hashes
3471da177e4SLinus Torvalds
348584fffc8SSebastian Siewior	  Whirlpool-512 is part of the NESSIE cryptographic primitives.
349584fffc8SSebastian Siewior	  Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
3501da177e4SLinus Torvalds
3511da177e4SLinus Torvalds	  See also:
352584fffc8SSebastian Siewior	  <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
3531da177e4SLinus Torvalds
354584fffc8SSebastian Siewiorcomment "Ciphers"
3551da177e4SLinus Torvalds
3561da177e4SLinus Torvaldsconfig CRYPTO_AES
3571da177e4SLinus Torvalds	tristate "AES cipher algorithms"
358cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3591da177e4SLinus Torvalds	help
3601da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
3611da177e4SLinus Torvalds	  algorithm.
3621da177e4SLinus Torvalds
3631da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
3641da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
3651da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
3661da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
3671da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
3681da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
3691da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
3701da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
3711da177e4SLinus Torvalds
3721da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
3731da177e4SLinus Torvalds
3741da177e4SLinus Torvalds	  See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
3751da177e4SLinus Torvalds
3761da177e4SLinus Torvaldsconfig CRYPTO_AES_586
3771da177e4SLinus Torvalds	tristate "AES cipher algorithms (i586)"
378cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && !64BIT
379cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
3805157dea8SSebastian Siewior	select CRYPTO_AES
3811da177e4SLinus Torvalds	help
3821da177e4SLinus Torvalds	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
3831da177e4SLinus Torvalds	  algorithm.
3841da177e4SLinus Torvalds
3851da177e4SLinus Torvalds	  Rijndael appears to be consistently a very good performer in
3861da177e4SLinus Torvalds	  both hardware and software across a wide range of computing
3871da177e4SLinus Torvalds	  environments regardless of its use in feedback or non-feedback
3881da177e4SLinus Torvalds	  modes. Its key setup time is excellent, and its key agility is
3891da177e4SLinus Torvalds	  good. Rijndael's very low memory requirements make it very well
3901da177e4SLinus Torvalds	  suited for restricted-space environments, in which it also
3911da177e4SLinus Torvalds	  demonstrates excellent performance. Rijndael's operations are
3921da177e4SLinus Torvalds	  among the easiest to defend against power and timing attacks.
3931da177e4SLinus Torvalds
3941da177e4SLinus Torvalds	  The AES specifies three key sizes: 128, 192 and 256 bits
3951da177e4SLinus Torvalds
3961da177e4SLinus Torvalds	  See <http://csrc.nist.gov/encryption/aes/> for more information.
3971da177e4SLinus Torvalds
398a2a892a2SAndreas Steinmetzconfig CRYPTO_AES_X86_64
399a2a892a2SAndreas Steinmetz	tristate "AES cipher algorithms (x86_64)"
400cce9e06dSHerbert Xu	depends on (X86 || UML_X86) && 64BIT
401cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
40281190b32SSebastian Siewior	select CRYPTO_AES
403a2a892a2SAndreas Steinmetz	help
404a2a892a2SAndreas Steinmetz	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
405a2a892a2SAndreas Steinmetz	  algorithm.
406a2a892a2SAndreas Steinmetz
407a2a892a2SAndreas Steinmetz	  Rijndael appears to be consistently a very good performer in
408a2a892a2SAndreas Steinmetz	  both hardware and software across a wide range of computing
409a2a892a2SAndreas Steinmetz	  environments regardless of its use in feedback or non-feedback
410a2a892a2SAndreas Steinmetz	  modes. Its key setup time is excellent, and its key agility is
411a2a892a2SAndreas Steinmetz	  good. Rijndael's very low memory requirements make it very well
412a2a892a2SAndreas Steinmetz	  suited for restricted-space environments, in which it also
413a2a892a2SAndreas Steinmetz	  demonstrates excellent performance. Rijndael's operations are
414a2a892a2SAndreas Steinmetz	  among the easiest to defend against power and timing attacks.
415a2a892a2SAndreas Steinmetz
416a2a892a2SAndreas Steinmetz	  The AES specifies three key sizes: 128, 192 and 256 bits
417a2a892a2SAndreas Steinmetz
418a2a892a2SAndreas Steinmetz	  See <http://csrc.nist.gov/encryption/aes/> for more information.
419a2a892a2SAndreas Steinmetz
4201da177e4SLinus Torvaldsconfig CRYPTO_ANUBIS
4211da177e4SLinus Torvalds	tristate "Anubis cipher algorithm"
422cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
4231da177e4SLinus Torvalds	help
4241da177e4SLinus Torvalds	  Anubis cipher algorithm.
4251da177e4SLinus Torvalds
4261da177e4SLinus Torvalds	  Anubis is a variable key length cipher which can use keys from
4271da177e4SLinus Torvalds	  128 bits to 320 bits in length.  It was evaluated as a entrant
4281da177e4SLinus Torvalds	  in the NESSIE competition.
4291da177e4SLinus Torvalds
4301da177e4SLinus Torvalds	  See also:
4311da177e4SLinus Torvalds	  <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
4321da177e4SLinus Torvalds	  <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
4331da177e4SLinus Torvalds
434584fffc8SSebastian Siewiorconfig CRYPTO_ARC4
435584fffc8SSebastian Siewior	tristate "ARC4 cipher algorithm"
436e2ee95b8SHye-Shik Chang	select CRYPTO_ALGAPI
437e2ee95b8SHye-Shik Chang	help
438584fffc8SSebastian Siewior	  ARC4 cipher algorithm.
439e2ee95b8SHye-Shik Chang
440584fffc8SSebastian Siewior	  ARC4 is a stream cipher using keys ranging from 8 bits to 2048
441584fffc8SSebastian Siewior	  bits in length.  This algorithm is required for driver-based
442584fffc8SSebastian Siewior	  WEP, but it should not be for other purposes because of the
443584fffc8SSebastian Siewior	  weakness of the algorithm.
444584fffc8SSebastian Siewior
445584fffc8SSebastian Siewiorconfig CRYPTO_BLOWFISH
446584fffc8SSebastian Siewior	tristate "Blowfish cipher algorithm"
447584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
448584fffc8SSebastian Siewior	help
449584fffc8SSebastian Siewior	  Blowfish cipher algorithm, by Bruce Schneier.
450584fffc8SSebastian Siewior
451584fffc8SSebastian Siewior	  This is a variable key length cipher which can use keys from 32
452584fffc8SSebastian Siewior	  bits to 448 bits in length.  It's fast, simple and specifically
453584fffc8SSebastian Siewior	  designed for use on "large microprocessors".
454e2ee95b8SHye-Shik Chang
455e2ee95b8SHye-Shik Chang	  See also:
456584fffc8SSebastian Siewior	  <http://www.schneier.com/blowfish.html>
457584fffc8SSebastian Siewior
458584fffc8SSebastian Siewiorconfig CRYPTO_CAMELLIA
459584fffc8SSebastian Siewior	tristate "Camellia cipher algorithms"
460584fffc8SSebastian Siewior	depends on CRYPTO
461584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
462584fffc8SSebastian Siewior	help
463584fffc8SSebastian Siewior	  Camellia cipher algorithms module.
464584fffc8SSebastian Siewior
465584fffc8SSebastian Siewior	  Camellia is a symmetric key block cipher developed jointly
466584fffc8SSebastian Siewior	  at NTT and Mitsubishi Electric Corporation.
467584fffc8SSebastian Siewior
468584fffc8SSebastian Siewior	  The Camellia specifies three key sizes: 128, 192 and 256 bits.
469584fffc8SSebastian Siewior
470584fffc8SSebastian Siewior	  See also:
471584fffc8SSebastian Siewior	  <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
472584fffc8SSebastian Siewior
473584fffc8SSebastian Siewiorconfig CRYPTO_CAST5
474584fffc8SSebastian Siewior	tristate "CAST5 (CAST-128) cipher algorithm"
475584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
476584fffc8SSebastian Siewior	help
477584fffc8SSebastian Siewior	  The CAST5 encryption algorithm (synonymous with CAST-128) is
478584fffc8SSebastian Siewior	  described in RFC2144.
479584fffc8SSebastian Siewior
480584fffc8SSebastian Siewiorconfig CRYPTO_CAST6
481584fffc8SSebastian Siewior	tristate "CAST6 (CAST-256) cipher algorithm"
482584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
483584fffc8SSebastian Siewior	help
484584fffc8SSebastian Siewior	  The CAST6 encryption algorithm (synonymous with CAST-256) is
485584fffc8SSebastian Siewior	  described in RFC2612.
486584fffc8SSebastian Siewior
487584fffc8SSebastian Siewiorconfig CRYPTO_DES
488584fffc8SSebastian Siewior	tristate "DES and Triple DES EDE cipher algorithms"
489584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
490584fffc8SSebastian Siewior	help
491584fffc8SSebastian Siewior	  DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
492584fffc8SSebastian Siewior
493584fffc8SSebastian Siewiorconfig CRYPTO_FCRYPT
494584fffc8SSebastian Siewior	tristate "FCrypt cipher algorithm"
495584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
496584fffc8SSebastian Siewior	select CRYPTO_BLKCIPHER
497584fffc8SSebastian Siewior	help
498584fffc8SSebastian Siewior	  FCrypt algorithm used by RxRPC.
499584fffc8SSebastian Siewior
500584fffc8SSebastian Siewiorconfig CRYPTO_KHAZAD
501584fffc8SSebastian Siewior	tristate "Khazad cipher algorithm"
502584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
503584fffc8SSebastian Siewior	help
504584fffc8SSebastian Siewior	  Khazad cipher algorithm.
505584fffc8SSebastian Siewior
506584fffc8SSebastian Siewior	  Khazad was a finalist in the initial NESSIE competition.  It is
507584fffc8SSebastian Siewior	  an algorithm optimized for 64-bit processors with good performance
508584fffc8SSebastian Siewior	  on 32-bit processors.  Khazad uses an 128 bit key size.
509584fffc8SSebastian Siewior
510584fffc8SSebastian Siewior	  See also:
511584fffc8SSebastian Siewior	  <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
512e2ee95b8SHye-Shik Chang
5132407d608STan Swee Hengconfig CRYPTO_SALSA20
5142407d608STan Swee Heng	tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)"
5152407d608STan Swee Heng	depends on EXPERIMENTAL
5162407d608STan Swee Heng	select CRYPTO_BLKCIPHER
5172407d608STan Swee Heng	help
5182407d608STan Swee Heng	  Salsa20 stream cipher algorithm.
5192407d608STan Swee Heng
5202407d608STan Swee Heng	  Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
5212407d608STan Swee Heng	  Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
5222407d608STan Swee Heng
5232407d608STan Swee Heng	  The Salsa20 stream cipher algorithm is designed by Daniel J.
5242407d608STan Swee Heng	  Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
5251da177e4SLinus Torvalds
526974e4b75STan Swee Hengconfig CRYPTO_SALSA20_586
527974e4b75STan Swee Heng	tristate "Salsa20 stream cipher algorithm (i586) (EXPERIMENTAL)"
528974e4b75STan Swee Heng	depends on (X86 || UML_X86) && !64BIT
529974e4b75STan Swee Heng	depends on EXPERIMENTAL
530974e4b75STan Swee Heng	select CRYPTO_BLKCIPHER
531974e4b75STan Swee Heng	help
532974e4b75STan Swee Heng	  Salsa20 stream cipher algorithm.
533974e4b75STan Swee Heng
534974e4b75STan Swee Heng	  Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
535974e4b75STan Swee Heng	  Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
536974e4b75STan Swee Heng
537974e4b75STan Swee Heng	  The Salsa20 stream cipher algorithm is designed by Daniel J.
538974e4b75STan Swee Heng	  Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
539974e4b75STan Swee Heng
5409a7dafbbSTan Swee Hengconfig CRYPTO_SALSA20_X86_64
5419a7dafbbSTan Swee Heng	tristate "Salsa20 stream cipher algorithm (x86_64) (EXPERIMENTAL)"
5429a7dafbbSTan Swee Heng	depends on (X86 || UML_X86) && 64BIT
5439a7dafbbSTan Swee Heng	depends on EXPERIMENTAL
5449a7dafbbSTan Swee Heng	select CRYPTO_BLKCIPHER
5459a7dafbbSTan Swee Heng	help
5469a7dafbbSTan Swee Heng	  Salsa20 stream cipher algorithm.
5479a7dafbbSTan Swee Heng
5489a7dafbbSTan Swee Heng	  Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
5499a7dafbbSTan Swee Heng	  Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
5509a7dafbbSTan Swee Heng
5519a7dafbbSTan Swee Heng	  The Salsa20 stream cipher algorithm is designed by Daniel J.
5529a7dafbbSTan Swee Heng	  Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
5539a7dafbbSTan Swee Heng
554584fffc8SSebastian Siewiorconfig CRYPTO_SEED
555584fffc8SSebastian Siewior	tristate "SEED cipher algorithm"
556584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
557584fffc8SSebastian Siewior	help
558584fffc8SSebastian Siewior	  SEED cipher algorithm (RFC4269).
559584fffc8SSebastian Siewior
560584fffc8SSebastian Siewior	  SEED is a 128-bit symmetric key block cipher that has been
561584fffc8SSebastian Siewior	  developed by KISA (Korea Information Security Agency) as a
562584fffc8SSebastian Siewior	  national standard encryption algorithm of the Republic of Korea.
563584fffc8SSebastian Siewior	  It is a 16 round block cipher with the key size of 128 bit.
564584fffc8SSebastian Siewior
565584fffc8SSebastian Siewior	  See also:
566584fffc8SSebastian Siewior	  <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
567584fffc8SSebastian Siewior
568584fffc8SSebastian Siewiorconfig CRYPTO_SERPENT
569584fffc8SSebastian Siewior	tristate "Serpent cipher algorithm"
570584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
571584fffc8SSebastian Siewior	help
572584fffc8SSebastian Siewior	  Serpent cipher algorithm, by Anderson, Biham & Knudsen.
573584fffc8SSebastian Siewior
574584fffc8SSebastian Siewior	  Keys are allowed to be from 0 to 256 bits in length, in steps
575584fffc8SSebastian Siewior	  of 8 bits.  Also includes the 'Tnepres' algorithm, a reversed
576584fffc8SSebastian Siewior	  variant of Serpent for compatibility with old kerneli.org code.
577584fffc8SSebastian Siewior
578584fffc8SSebastian Siewior	  See also:
579584fffc8SSebastian Siewior	  <http://www.cl.cam.ac.uk/~rja14/serpent.html>
580584fffc8SSebastian Siewior
581584fffc8SSebastian Siewiorconfig CRYPTO_TEA
582584fffc8SSebastian Siewior	tristate "TEA, XTEA and XETA cipher algorithms"
583584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
584584fffc8SSebastian Siewior	help
585584fffc8SSebastian Siewior	  TEA cipher algorithm.
586584fffc8SSebastian Siewior
587584fffc8SSebastian Siewior	  Tiny Encryption Algorithm is a simple cipher that uses
588584fffc8SSebastian Siewior	  many rounds for security.  It is very fast and uses
589584fffc8SSebastian Siewior	  little memory.
590584fffc8SSebastian Siewior
591584fffc8SSebastian Siewior	  Xtendend Tiny Encryption Algorithm is a modification to
592584fffc8SSebastian Siewior	  the TEA algorithm to address a potential key weakness
593584fffc8SSebastian Siewior	  in the TEA algorithm.
594584fffc8SSebastian Siewior
595584fffc8SSebastian Siewior	  Xtendend Encryption Tiny Algorithm is a mis-implementation
596584fffc8SSebastian Siewior	  of the XTEA algorithm for compatibility purposes.
597584fffc8SSebastian Siewior
598584fffc8SSebastian Siewiorconfig CRYPTO_TWOFISH
599584fffc8SSebastian Siewior	tristate "Twofish cipher algorithm"
600584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
601584fffc8SSebastian Siewior	select CRYPTO_TWOFISH_COMMON
602584fffc8SSebastian Siewior	help
603584fffc8SSebastian Siewior	  Twofish cipher algorithm.
604584fffc8SSebastian Siewior
605584fffc8SSebastian Siewior	  Twofish was submitted as an AES (Advanced Encryption Standard)
606584fffc8SSebastian Siewior	  candidate cipher by researchers at CounterPane Systems.  It is a
607584fffc8SSebastian Siewior	  16 round block cipher supporting key sizes of 128, 192, and 256
608584fffc8SSebastian Siewior	  bits.
609584fffc8SSebastian Siewior
610584fffc8SSebastian Siewior	  See also:
611584fffc8SSebastian Siewior	  <http://www.schneier.com/twofish.html>
612584fffc8SSebastian Siewior
613584fffc8SSebastian Siewiorconfig CRYPTO_TWOFISH_COMMON
614584fffc8SSebastian Siewior	tristate
615584fffc8SSebastian Siewior	help
616584fffc8SSebastian Siewior	  Common parts of the Twofish cipher algorithm shared by the
617584fffc8SSebastian Siewior	  generic c and the assembler implementations.
618584fffc8SSebastian Siewior
619584fffc8SSebastian Siewiorconfig CRYPTO_TWOFISH_586
620584fffc8SSebastian Siewior	tristate "Twofish cipher algorithms (i586)"
621584fffc8SSebastian Siewior	depends on (X86 || UML_X86) && !64BIT
622584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
623584fffc8SSebastian Siewior	select CRYPTO_TWOFISH_COMMON
624584fffc8SSebastian Siewior	help
625584fffc8SSebastian Siewior	  Twofish cipher algorithm.
626584fffc8SSebastian Siewior
627584fffc8SSebastian Siewior	  Twofish was submitted as an AES (Advanced Encryption Standard)
628584fffc8SSebastian Siewior	  candidate cipher by researchers at CounterPane Systems.  It is a
629584fffc8SSebastian Siewior	  16 round block cipher supporting key sizes of 128, 192, and 256
630584fffc8SSebastian Siewior	  bits.
631584fffc8SSebastian Siewior
632584fffc8SSebastian Siewior	  See also:
633584fffc8SSebastian Siewior	  <http://www.schneier.com/twofish.html>
634584fffc8SSebastian Siewior
635584fffc8SSebastian Siewiorconfig CRYPTO_TWOFISH_X86_64
636584fffc8SSebastian Siewior	tristate "Twofish cipher algorithm (x86_64)"
637584fffc8SSebastian Siewior	depends on (X86 || UML_X86) && 64BIT
638584fffc8SSebastian Siewior	select CRYPTO_ALGAPI
639584fffc8SSebastian Siewior	select CRYPTO_TWOFISH_COMMON
640584fffc8SSebastian Siewior	help
641584fffc8SSebastian Siewior	  Twofish cipher algorithm (x86_64).
642584fffc8SSebastian Siewior
643584fffc8SSebastian Siewior	  Twofish was submitted as an AES (Advanced Encryption Standard)
644584fffc8SSebastian Siewior	  candidate cipher by researchers at CounterPane Systems.  It is a
645584fffc8SSebastian Siewior	  16 round block cipher supporting key sizes of 128, 192, and 256
646584fffc8SSebastian Siewior	  bits.
647584fffc8SSebastian Siewior
648584fffc8SSebastian Siewior	  See also:
649584fffc8SSebastian Siewior	  <http://www.schneier.com/twofish.html>
650584fffc8SSebastian Siewior
651584fffc8SSebastian Siewiorcomment "Compression"
652584fffc8SSebastian Siewior
6531da177e4SLinus Torvaldsconfig CRYPTO_DEFLATE
6541da177e4SLinus Torvalds	tristate "Deflate compression algorithm"
655cce9e06dSHerbert Xu	select CRYPTO_ALGAPI
6561da177e4SLinus Torvalds	select ZLIB_INFLATE
6571da177e4SLinus Torvalds	select ZLIB_DEFLATE
6581da177e4SLinus Torvalds	help
6591da177e4SLinus Torvalds	  This is the Deflate algorithm (RFC1951), specified for use in
6601da177e4SLinus Torvalds	  IPSec with the IPCOMP protocol (RFC3173, RFC2394).
6611da177e4SLinus Torvalds
6621da177e4SLinus Torvalds	  You will most probably want this if using IPSec.
6631da177e4SLinus Torvalds
6640b77abb3SZoltan Sogorconfig CRYPTO_LZO
6650b77abb3SZoltan Sogor	tristate "LZO compression algorithm"
6660b77abb3SZoltan Sogor	select CRYPTO_ALGAPI
6670b77abb3SZoltan Sogor	select LZO_COMPRESS
6680b77abb3SZoltan Sogor	select LZO_DECOMPRESS
6690b77abb3SZoltan Sogor	help
6700b77abb3SZoltan Sogor	  This is the LZO algorithm.
6710b77abb3SZoltan Sogor
6721da177e4SLinus Torvaldssource "drivers/crypto/Kconfig"
6731da177e4SLinus Torvalds
674cce9e06dSHerbert Xuendif	# if CRYPTO
675