blob: fa7e2a8cc60824111f3fbded37cac22a7f46ab4a [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#
Dan Williams685784a2007-07-09 11:56:42 -07002# Generic algorithms support
3#
4config XOR_BLOCKS
5 tristate
6
7#
Dan Williams9bc89cd2007-01-02 11:10:44 -07008# async_tx api: hardware offloaded memory transfer/transform support
9#
10source "crypto/async_tx/Kconfig"
11
12#
Linus Torvalds1da177e2005-04-16 15:20:36 -070013# Cryptographic API Configuration
14#
Jan Engelhardt2e290f42007-05-18 15:11:01 +100015menuconfig CRYPTO
Sebastian Siewiorc3715cb92008-03-30 16:36:09 +080016 tristate "Cryptographic API"
Linus Torvalds1da177e2005-04-16 15:20:36 -070017 help
18 This option provides the core Cryptographic API.
19
Herbert Xucce9e062006-08-21 21:08:13 +100020if CRYPTO
21
Sebastian Siewior584fffc2008-04-05 21:04:48 +080022comment "Crypto core or helper"
23
Neil Hormanccb778e2008-08-05 14:13:08 +080024config CRYPTO_FIPS
25 bool "FIPS 200 compliance"
Chuck Ebberte84c5482010-09-03 19:17:49 +080026 depends on CRYPTO_ANSI_CPRNG && !CRYPTO_MANAGER_DISABLE_TESTS
Neil Hormanccb778e2008-08-05 14:13:08 +080027 help
28 This options enables the fips boot option which is
29 required if you want to system to operate in a FIPS 200
30 certification. You should say no unless you know what
Chuck Ebberte84c5482010-09-03 19:17:49 +080031 this is.
Neil Hormanccb778e2008-08-05 14:13:08 +080032
Herbert Xucce9e062006-08-21 21:08:13 +100033config CRYPTO_ALGAPI
34 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110035 select CRYPTO_ALGAPI2
Herbert Xucce9e062006-08-21 21:08:13 +100036 help
37 This option provides the API for cryptographic algorithms.
38
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110039config CRYPTO_ALGAPI2
40 tristate
41
Herbert Xu1ae97822007-08-30 15:36:14 +080042config CRYPTO_AEAD
43 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110044 select CRYPTO_AEAD2
Herbert Xu1ae97822007-08-30 15:36:14 +080045 select CRYPTO_ALGAPI
46
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110047config CRYPTO_AEAD2
48 tristate
49 select CRYPTO_ALGAPI2
50
Herbert Xu5cde0af2006-08-22 00:07:53 +100051config CRYPTO_BLKCIPHER
52 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110053 select CRYPTO_BLKCIPHER2
Herbert Xu5cde0af2006-08-22 00:07:53 +100054 select CRYPTO_ALGAPI
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110055
56config CRYPTO_BLKCIPHER2
57 tristate
58 select CRYPTO_ALGAPI2
59 select CRYPTO_RNG2
Huang Ying0a2e8212009-02-19 14:44:02 +080060 select CRYPTO_WORKQUEUE
Herbert Xu5cde0af2006-08-22 00:07:53 +100061
Herbert Xu055bcee2006-08-19 22:24:23 +100062config CRYPTO_HASH
63 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110064 select CRYPTO_HASH2
Herbert Xu055bcee2006-08-19 22:24:23 +100065 select CRYPTO_ALGAPI
66
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110067config CRYPTO_HASH2
68 tristate
69 select CRYPTO_ALGAPI2
70
Neil Horman17f0f4a2008-08-14 22:15:52 +100071config CRYPTO_RNG
72 tristate
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110073 select CRYPTO_RNG2
Neil Horman17f0f4a2008-08-14 22:15:52 +100074 select CRYPTO_ALGAPI
75
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110076config CRYPTO_RNG2
77 tristate
78 select CRYPTO_ALGAPI2
79
Geert Uytterhoevena1d2f092009-03-04 15:05:33 +080080config CRYPTO_PCOMP
81 tristate
Herbert Xubc94e592010-06-03 20:33:06 +100082 select CRYPTO_PCOMP2
83 select CRYPTO_ALGAPI
84
85config CRYPTO_PCOMP2
86 tristate
Geert Uytterhoevena1d2f092009-03-04 15:05:33 +080087 select CRYPTO_ALGAPI2
88
Herbert Xu2b8c19d2006-09-21 11:31:44 +100089config CRYPTO_MANAGER
90 tristate "Cryptographic algorithm manager"
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110091 select CRYPTO_MANAGER2
Herbert Xu2b8c19d2006-09-21 11:31:44 +100092 help
93 Create default cryptographic template instantiations such as
94 cbc(aes).
95
Herbert Xu6a0fcbb2008-12-10 23:29:44 +110096config CRYPTO_MANAGER2
97 def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
98 select CRYPTO_AEAD2
99 select CRYPTO_HASH2
100 select CRYPTO_BLKCIPHER2
Herbert Xubc94e592010-06-03 20:33:06 +1000101 select CRYPTO_PCOMP2
Herbert Xu6a0fcbb2008-12-10 23:29:44 +1100102
Steffen Klasserta38f7902011-09-27 07:23:50 +0200103config CRYPTO_USER
104 tristate "Userspace cryptographic algorithm configuration"
Herbert Xu5db017a2011-11-01 12:12:43 +1100105 depends on NET
Steffen Klasserta38f7902011-09-27 07:23:50 +0200106 select CRYPTO_MANAGER
107 help
Valdis.Kletnieks@vt.edud19978f2011-11-09 01:29:20 -0500108 Userspace configuration for cryptographic instantiations such as
Steffen Klasserta38f7902011-09-27 07:23:50 +0200109 cbc(aes).
110
Herbert Xu326a6342010-08-06 09:40:28 +0800111config CRYPTO_MANAGER_DISABLE_TESTS
112 bool "Disable run-time self tests"
Herbert Xu00ca28a2010-08-06 10:34:00 +0800113 default y
114 depends on CRYPTO_MANAGER2
Alexander Shishkin0b767f92010-06-03 20:53:43 +1000115 help
Herbert Xu326a6342010-08-06 09:40:28 +0800116 Disable run-time self tests that normally take place at
117 algorithm registration.
Alexander Shishkin0b767f92010-06-03 20:53:43 +1000118
Rik Snelc494e072006-11-29 18:59:44 +1100119config CRYPTO_GF128MUL
Jussi Kivilinna08c70fc2011-12-13 12:53:22 +0200120 tristate "GF(2^128) multiplication functions"
Rik Snelc494e072006-11-29 18:59:44 +1100121 help
122 Efficient table driven implementation of multiplications in the
123 field GF(2^128). This is needed by some cypher modes. This
124 option will be selected automatically if you select such a
125 cipher mode. Only select this option by hand if you expect to load
126 an external module that requires these functions.
127
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800128config CRYPTO_NULL
129 tristate "Null algorithms"
130 select CRYPTO_ALGAPI
131 select CRYPTO_BLKCIPHER
Herbert Xud35d2452008-11-08 08:09:56 +0800132 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800133 help
134 These are 'Null' algorithms, used by IPsec, which do nothing.
135
Steffen Klassert5068c7a2010-01-07 15:57:19 +1100136config CRYPTO_PCRYPT
Kees Cook3b4afaf2012-10-02 11:16:49 -0700137 tristate "Parallel crypto engine"
138 depends on SMP
Steffen Klassert5068c7a2010-01-07 15:57:19 +1100139 select PADATA
140 select CRYPTO_MANAGER
141 select CRYPTO_AEAD
142 help
143 This converts an arbitrary crypto algorithm into a parallel
144 algorithm that executes in kernel threads.
145
Huang Ying25c38d32009-02-19 14:33:40 +0800146config CRYPTO_WORKQUEUE
147 tristate
148
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800149config CRYPTO_CRYPTD
150 tristate "Software async crypto daemon"
Herbert Xudb131ef2006-09-21 11:44:08 +1000151 select CRYPTO_BLKCIPHER
Loc Hob8a28252008-05-14 21:23:00 +0800152 select CRYPTO_HASH
Herbert Xu43518402006-10-16 21:28:58 +1000153 select CRYPTO_MANAGER
Huang Ying254eff72009-02-19 14:42:19 +0800154 select CRYPTO_WORKQUEUE
Herbert Xudb131ef2006-09-21 11:44:08 +1000155 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800156 This is a generic software asynchronous crypto daemon that
157 converts an arbitrary synchronous software crypto algorithm
158 into an asynchronous algorithm that executes in a kernel thread.
159
160config CRYPTO_AUTHENC
161 tristate "Authenc support"
162 select CRYPTO_AEAD
163 select CRYPTO_BLKCIPHER
164 select CRYPTO_MANAGER
165 select CRYPTO_HASH
166 help
167 Authenc: Combined mode wrapper for IPsec.
168 This is required for IPSec.
169
170config CRYPTO_TEST
171 tristate "Testing module"
172 depends on m
Herbert Xuda7f0332008-07-31 17:08:25 +0800173 select CRYPTO_MANAGER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800174 help
175 Quick & dirty crypto test module.
176
Jussi Kivilinnaffaf9152012-06-18 14:06:58 +0300177config CRYPTO_ABLK_HELPER_X86
178 tristate
179 depends on X86
180 select CRYPTO_CRYPTD
181
Ard Biesheuvel2f5acd762013-09-20 09:55:40 +0200182config CRYPTO_ABLK_HELPER
183 tristate
184 select CRYPTO_CRYPTD
185
Jussi Kivilinna596d8752012-06-18 14:07:19 +0300186config CRYPTO_GLUE_HELPER_X86
187 tristate
188 depends on X86
189 select CRYPTO_ALGAPI
190
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800191comment "Authenticated Encryption with Associated Data"
192
193config CRYPTO_CCM
194 tristate "CCM support"
195 select CRYPTO_CTR
196 select CRYPTO_AEAD
197 help
198 Support for Counter with CBC MAC. Required for IPsec.
199
200config CRYPTO_GCM
201 tristate "GCM/GMAC support"
202 select CRYPTO_CTR
203 select CRYPTO_AEAD
Huang Ying9382d972009-08-06 15:34:26 +1000204 select CRYPTO_GHASH
Jussi Kivilinna9489667d2013-04-07 16:43:41 +0300205 select CRYPTO_NULL
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800206 help
207 Support for Galois/Counter Mode (GCM) and Galois Message
208 Authentication Code (GMAC). Required for IPSec.
209
210config CRYPTO_SEQIV
211 tristate "Sequence Number IV Generator"
212 select CRYPTO_AEAD
213 select CRYPTO_BLKCIPHER
Herbert Xua0f000e2008-08-14 22:21:31 +1000214 select CRYPTO_RNG
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800215 help
216 This IV generator generates an IV based on a sequence number by
217 xoring it with a salt. This algorithm is mainly useful for CTR
218
219comment "Block modes"
Herbert Xudb131ef2006-09-21 11:44:08 +1000220
221config CRYPTO_CBC
222 tristate "CBC support"
223 select CRYPTO_BLKCIPHER
Herbert Xu43518402006-10-16 21:28:58 +1000224 select CRYPTO_MANAGER
Herbert Xudb131ef2006-09-21 11:44:08 +1000225 help
226 CBC: Cipher Block Chaining mode
227 This block cipher algorithm is required for IPSec.
228
Joy Latten23e353c2007-10-23 08:50:32 +0800229config CRYPTO_CTR
230 tristate "CTR support"
231 select CRYPTO_BLKCIPHER
Herbert Xu0a270322007-11-30 21:38:37 +1100232 select CRYPTO_SEQIV
Joy Latten23e353c2007-10-23 08:50:32 +0800233 select CRYPTO_MANAGER
Joy Latten23e353c2007-10-23 08:50:32 +0800234 help
235 CTR: Counter mode
236 This block cipher algorithm is required for IPSec.
237
Kevin Coffman76cb9522008-03-24 21:26:16 +0800238config CRYPTO_CTS
239 tristate "CTS support"
240 select CRYPTO_BLKCIPHER
241 help
242 CTS: Cipher Text Stealing
243 This is the Cipher Text Stealing mode as described by
244 Section 8 of rfc2040 and referenced by rfc3962.
245 (rfc3962 includes errata information in its Appendix A)
246 This mode is required for Kerberos gss mechanism support
247 for AES encryption.
248
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800249config CRYPTO_ECB
250 tristate "ECB support"
Herbert Xu653ebd92007-11-27 19:48:27 +0800251 select CRYPTO_BLKCIPHER
Herbert Xu124b53d2007-04-16 20:49:20 +1000252 select CRYPTO_MANAGER
253 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800254 ECB: Electronic CodeBook mode
255 This is the simplest block cipher algorithm. It simply encrypts
256 the input block by block.
Herbert Xu124b53d2007-04-16 20:49:20 +1000257
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800258config CRYPTO_LRW
Jussi Kivilinna2470a2b2011-12-13 12:52:51 +0200259 tristate "LRW support"
David Howells90831632006-12-16 12:13:14 +1100260 select CRYPTO_BLKCIPHER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800261 select CRYPTO_MANAGER
262 select CRYPTO_GF128MUL
David Howells90831632006-12-16 12:13:14 +1100263 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800264 LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
265 narrow block cipher mode for dm-crypt. Use it with cipher
266 specification string aes-lrw-benbi, the key must be 256, 320 or 384.
267 The first 128, 192 or 256 bits in the key are used for AES and the
268 rest is used to tie each cipher block to its logical position.
David Howells90831632006-12-16 12:13:14 +1100269
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800270config CRYPTO_PCBC
271 tristate "PCBC support"
272 select CRYPTO_BLKCIPHER
273 select CRYPTO_MANAGER
274 help
275 PCBC: Propagating Cipher Block Chaining mode
276 This block cipher algorithm is required for RxRPC.
277
278config CRYPTO_XTS
Jussi Kivilinna5bcf8e62011-12-13 12:52:56 +0200279 tristate "XTS support"
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800280 select CRYPTO_BLKCIPHER
281 select CRYPTO_MANAGER
282 select CRYPTO_GF128MUL
283 help
284 XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
285 key size 256, 384 or 512 bits. This implementation currently
286 can't handle a sectorsize which is not a multiple of 16 bytes.
287
288comment "Hash modes"
289
Jussi Kivilinna93b5e862013-04-08 10:48:44 +0300290config CRYPTO_CMAC
291 tristate "CMAC support"
292 select CRYPTO_HASH
293 select CRYPTO_MANAGER
294 help
295 Cipher-based Message Authentication Code (CMAC) specified by
296 The National Institute of Standards and Technology (NIST).
297
298 https://tools.ietf.org/html/rfc4493
299 http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
300
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800301config CRYPTO_HMAC
302 tristate "HMAC support"
303 select CRYPTO_HASH
304 select CRYPTO_MANAGER
305 help
306 HMAC: Keyed-Hashing for Message Authentication (RFC2104).
307 This is required for IPSec.
308
309config CRYPTO_XCBC
310 tristate "XCBC support"
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800311 select CRYPTO_HASH
312 select CRYPTO_MANAGER
313 help
314 XCBC: Keyed-Hashing with encryption algorithm
315 http://www.ietf.org/rfc/rfc3566.txt
316 http://csrc.nist.gov/encryption/modes/proposedmodes/
317 xcbc-mac/xcbc-mac-spec.pdf
318
Shane Wangf1939f72009-09-02 20:05:22 +1000319config CRYPTO_VMAC
320 tristate "VMAC support"
Shane Wangf1939f72009-09-02 20:05:22 +1000321 select CRYPTO_HASH
322 select CRYPTO_MANAGER
323 help
324 VMAC is a message authentication algorithm designed for
325 very high speed on 64-bit architectures.
326
327 See also:
328 <http://fastcrypto.org/vmac>
329
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800330comment "Digest"
331
332config CRYPTO_CRC32C
333 tristate "CRC32c CRC algorithm"
Herbert Xu5773a3e2008-07-08 20:54:28 +0800334 select CRYPTO_HASH
Darrick J. Wong6a0962b2012-03-23 15:02:25 -0700335 select CRC32
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800336 help
337 Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
338 by iSCSI for header and data digests and by others.
Herbert Xu69c35ef2008-11-07 15:11:47 +0800339 See Castagnoli93. Module will be crc32c.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800340
Austin Zhang8cb51ba2008-08-07 09:57:03 +0800341config CRYPTO_CRC32C_INTEL
342 tristate "CRC32c INTEL hardware acceleration"
343 depends on X86
344 select CRYPTO_HASH
345 help
346 In Intel processor with SSE4.2 supported, the processor will
347 support CRC32C implementation using hardware accelerated CRC32
348 instruction. This option will create 'crc32c-intel' module,
349 which will enable any routine to use the CRC32 instruction to
350 gain performance compared with software implementation.
351 Module will be crc32c-intel.
352
David S. Miller442a7c42012-08-22 20:47:36 -0700353config CRYPTO_CRC32C_SPARC64
354 tristate "CRC32c CRC algorithm (SPARC64)"
355 depends on SPARC64
356 select CRYPTO_HASH
357 select CRC32
358 help
359 CRC32c CRC algorithm implemented using sparc64 crypto instructions,
360 when available.
361
Alexander Boyko78c37d12013-01-10 18:54:59 +0400362config CRYPTO_CRC32
363 tristate "CRC32 CRC algorithm"
364 select CRYPTO_HASH
365 select CRC32
366 help
367 CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
368 Shash crypto api wrappers to crc32_le function.
369
370config CRYPTO_CRC32_PCLMUL
371 tristate "CRC32 PCLMULQDQ hardware acceleration"
372 depends on X86
373 select CRYPTO_HASH
374 select CRC32
375 help
376 From Intel Westmere and AMD Bulldozer processor with SSE4.2
377 and PCLMULQDQ supported, the processor will support
378 CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ
379 instruction. This option will create 'crc32-plcmul' module,
380 which will enable any routine to use the CRC-32-IEEE 802.3 checksum
381 and gain better performance as compared with the table implementation.
382
Huang Ying2cdc6892009-08-06 15:32:38 +1000383config CRYPTO_GHASH
384 tristate "GHASH digest algorithm"
Huang Ying2cdc6892009-08-06 15:32:38 +1000385 select CRYPTO_GF128MUL
386 help
387 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
388
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800389config CRYPTO_MD4
390 tristate "MD4 digest algorithm"
Adrian-Ken Rueegsegger808a1762008-12-03 19:55:27 +0800391 select CRYPTO_HASH
Linus Torvalds1da177e2005-04-16 15:20:36 -0700392 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800393 MD4 message digest algorithm (RFC1320).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700394
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800395config CRYPTO_MD5
396 tristate "MD5 digest algorithm"
Adrian-Ken Rueegsegger14b75ba2008-12-03 19:57:12 +0800397 select CRYPTO_HASH
Linus Torvalds1da177e2005-04-16 15:20:36 -0700398 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800399 MD5 message digest algorithm (RFC1321).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700400
David S. Millerfa4dfed2012-08-19 21:51:26 -0700401config CRYPTO_MD5_SPARC64
402 tristate "MD5 digest algorithm (SPARC64)"
403 depends on SPARC64
404 select CRYPTO_MD5
405 select CRYPTO_HASH
406 help
407 MD5 message digest algorithm (RFC1321) implemented
408 using sparc64 crypto instructions, when available.
409
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800410config CRYPTO_MICHAEL_MIC
411 tristate "Michael MIC keyed digest algorithm"
Adrian-Ken Rueegsegger19e2bf12008-12-07 19:35:38 +0800412 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800413 help
414 Michael MIC is used for message integrity protection in TKIP
415 (IEEE 802.11i). This algorithm is required for TKIP, but it
416 should not be used for other purposes because of the weakness
417 of the algorithm.
418
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800419config CRYPTO_RMD128
Adrian Bunkb6d44342008-07-16 19:28:00 +0800420 tristate "RIPEMD-128 digest algorithm"
Herbert Xu7c4468b2008-11-08 09:10:40 +0800421 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800422 help
423 RIPEMD-128 (ISO/IEC 10118-3:2004).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800424
Adrian Bunkb6d44342008-07-16 19:28:00 +0800425 RIPEMD-128 is a 128-bit cryptographic hash function. It should only
Michael Witten35ed4b32011-07-09 04:02:31 +0000426 be used as a secure replacement for RIPEMD. For other use cases,
Adrian Bunkb6d44342008-07-16 19:28:00 +0800427 RIPEMD-160 should be used.
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800428
Adrian Bunkb6d44342008-07-16 19:28:00 +0800429 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800430 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800431
432config CRYPTO_RMD160
Adrian Bunkb6d44342008-07-16 19:28:00 +0800433 tristate "RIPEMD-160 digest algorithm"
Herbert Xue5835fb2008-11-08 09:18:51 +0800434 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800435 help
436 RIPEMD-160 (ISO/IEC 10118-3:2004).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800437
Adrian Bunkb6d44342008-07-16 19:28:00 +0800438 RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
439 to be used as a secure replacement for the 128-bit hash functions
440 MD4, MD5 and it's predecessor RIPEMD
441 (not to be confused with RIPEMD-128).
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800442
Adrian Bunkb6d44342008-07-16 19:28:00 +0800443 It's speed is comparable to SHA1 and there are no known attacks
444 against RIPEMD-160.
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800445
Adrian Bunkb6d44342008-07-16 19:28:00 +0800446 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800447 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800448
449config CRYPTO_RMD256
Adrian Bunkb6d44342008-07-16 19:28:00 +0800450 tristate "RIPEMD-256 digest algorithm"
Herbert Xud8a5e2e2008-11-08 09:58:10 +0800451 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800452 help
453 RIPEMD-256 is an optional extension of RIPEMD-128 with a
454 256 bit hash. It is intended for applications that require
455 longer hash-results, without needing a larger security level
456 (than RIPEMD-128).
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800457
Adrian Bunkb6d44342008-07-16 19:28:00 +0800458 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800459 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800460
461config CRYPTO_RMD320
Adrian Bunkb6d44342008-07-16 19:28:00 +0800462 tristate "RIPEMD-320 digest algorithm"
Herbert Xu3b8efb42008-11-08 10:11:09 +0800463 select CRYPTO_HASH
Adrian Bunkb6d44342008-07-16 19:28:00 +0800464 help
465 RIPEMD-320 is an optional extension of RIPEMD-160 with a
466 320 bit hash. It is intended for applications that require
467 longer hash-results, without needing a larger security level
468 (than RIPEMD-160).
Adrian-Ken Rueegsegger534fe2c2008-05-09 21:30:27 +0800469
Adrian Bunkb6d44342008-07-16 19:28:00 +0800470 Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800471 See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
Adrian-Ken Rueegsegger82798f92008-05-07 22:17:37 +0800472
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800473config CRYPTO_SHA1
474 tristate "SHA1 digest algorithm"
Adrian-Ken Rueegsegger54ccb362008-12-02 21:08:20 +0800475 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800476 help
477 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
478
Mathias Krause66be8952011-08-04 20:19:25 +0200479config CRYPTO_SHA1_SSSE3
480 tristate "SHA1 digest algorithm (SSSE3/AVX)"
481 depends on X86 && 64BIT
482 select CRYPTO_SHA1
483 select CRYPTO_HASH
484 help
485 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
486 using Supplemental SSE3 (SSSE3) instructions or Advanced Vector
487 Extensions (AVX), when available.
488
Tim Chen8275d1a2013-03-26 13:59:17 -0700489config CRYPTO_SHA256_SSSE3
490 tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2)"
491 depends on X86 && 64BIT
492 select CRYPTO_SHA256
493 select CRYPTO_HASH
494 help
495 SHA-256 secure hash standard (DFIPS 180-2) implemented
496 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
497 Extensions version 1 (AVX1), or Advanced Vector Extensions
498 version 2 (AVX2) instructions, when available.
499
Tim Chen87de4572013-03-26 14:00:02 -0700500config CRYPTO_SHA512_SSSE3
501 tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)"
502 depends on X86 && 64BIT
503 select CRYPTO_SHA512
504 select CRYPTO_HASH
505 help
506 SHA-512 secure hash standard (DFIPS 180-2) implemented
507 using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
508 Extensions version 1 (AVX1), or Advanced Vector Extensions
509 version 2 (AVX2) instructions, when available.
510
David S. Miller4ff28d42012-08-19 15:41:53 -0700511config CRYPTO_SHA1_SPARC64
512 tristate "SHA1 digest algorithm (SPARC64)"
513 depends on SPARC64
514 select CRYPTO_SHA1
515 select CRYPTO_HASH
516 help
517 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
518 using sparc64 crypto instructions, when available.
519
David McCulloughf0be44f2012-09-07 04:17:02 +0800520config CRYPTO_SHA1_ARM
521 tristate "SHA1 digest algorithm (ARM-asm)"
522 depends on ARM
523 select CRYPTO_SHA1
524 select CRYPTO_HASH
525 help
526 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
527 using optimized ARM assembler.
528
Michael Ellerman323a6bf2012-09-13 23:00:49 +0000529config CRYPTO_SHA1_PPC
530 tristate "SHA1 digest algorithm (powerpc)"
531 depends on PPC
532 help
533 This is the powerpc hardware accelerated implementation of the
534 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
535
Jussi Kivilinna67aa2862014-07-29 17:14:14 +0100536config CRYPTO_SHA1_ARM_NEON
537 tristate "SHA1 digest algorithm (ARM NEON)"
538 depends on ARM && KERNEL_MODE_NEON && !CPU_BIG_ENDIAN
539 select CRYPTO_SHA1_ARM
540 select CRYPTO_SHA1
541 select CRYPTO_HASH
542 help
543 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
544 using optimized ARM NEON assembly, when NEON instructions are
545 available.
546
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800547config CRYPTO_SHA256
548 tristate "SHA224 and SHA256 digest algorithm"
Adrian-Ken Rueegsegger50e109b52008-12-03 19:57:49 +0800549 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800550 help
551 SHA256 secure hash standard (DFIPS 180-2).
552
553 This version of SHA implements a 256 bit hash with 128 bits of
554 security against collision attacks.
555
Adrian Bunkb6d44342008-07-16 19:28:00 +0800556 This code also includes SHA-224, a 224 bit hash with 112 bits
557 of security against collision attacks.
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800558
Sami Tolvanen11a2b3d2015-03-23 14:42:55 +0000559config CRYPTO_SHA256_ARM
560 tristate "SHA-224/256 digest algorithm (ARM-asm and NEON)"
561 select CRYPTO_HASH
562 help
563 SHA-256 secure hash standard (DFIPS 180-2) implemented
564 using optimized ARM assembler and NEON, when available.
565
David S. Miller86c93b22012-08-19 17:11:37 -0700566config CRYPTO_SHA256_SPARC64
567 tristate "SHA224 and SHA256 digest algorithm (SPARC64)"
568 depends on SPARC64
569 select CRYPTO_SHA256
570 select CRYPTO_HASH
571 help
572 SHA-256 secure hash standard (DFIPS 180-2) implemented
573 using sparc64 crypto instructions, when available.
574
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800575config CRYPTO_SHA512
576 tristate "SHA384 and SHA512 digest algorithms"
Adrian-Ken Rueegseggerbd9d20d2008-12-17 16:49:02 +1100577 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800578 help
579 SHA512 secure hash standard (DFIPS 180-2).
580
581 This version of SHA implements a 512 bit hash with 256 bits of
582 security against collision attacks.
583
584 This code also includes SHA-384, a 384 bit hash with 192 bits
585 of security against collision attacks.
586
Jussi Kivilinna2b996fa2014-07-29 17:15:24 +0100587config CRYPTO_SHA512_ARM_NEON
588 tristate "SHA384 and SHA512 digest algorithm (ARM NEON)"
589 depends on ARM && KERNEL_MODE_NEON && !CPU_BIG_ENDIAN
590 select CRYPTO_SHA512
591 select CRYPTO_HASH
592 help
593 SHA-512 secure hash standard (DFIPS 180-2) implemented
594 using ARM NEON instructions, when available.
595
596 This version of SHA implements a 512 bit hash with 256 bits of
597 security against collision attacks.
598
599 This code also includes SHA-384, a 384 bit hash with 192 bits
600 of security against collision attacks.
601
David S. Miller775e0c62012-08-19 17:37:56 -0700602config CRYPTO_SHA512_SPARC64
603 tristate "SHA384 and SHA512 digest algorithm (SPARC64)"
604 depends on SPARC64
605 select CRYPTO_SHA512
606 select CRYPTO_HASH
607 help
608 SHA-512 secure hash standard (DFIPS 180-2) implemented
609 using sparc64 crypto instructions, when available.
610
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800611config CRYPTO_TGR192
612 tristate "Tiger digest algorithms"
Adrian-Ken Rueegseggerf63fbd32008-12-03 19:58:32 +0800613 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800614 help
615 Tiger hash algorithm 192, 160 and 128-bit hashes
616
617 Tiger is a hash function optimized for 64-bit processors while
618 still having decent performance on 32-bit processors.
619 Tiger was developed by Ross Anderson and Eli Biham.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700620
621 See also:
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800622 <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
623
624config CRYPTO_WP512
625 tristate "Whirlpool digest algorithms"
Adrian-Ken Rueegsegger49465102008-12-07 19:34:37 +0800626 select CRYPTO_HASH
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800627 help
628 Whirlpool hash algorithm 512, 384 and 256-bit hashes
629
630 Whirlpool-512 is part of the NESSIE cryptographic primitives.
631 Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
632
633 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800634 <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800635
Huang Ying0e1227d2009-10-19 11:53:06 +0900636config CRYPTO_GHASH_CLMUL_NI_INTEL
637 tristate "GHASH digest algorithm (CLMUL-NI accelerated)"
Richard Weinberger8af00862011-06-08 20:56:29 +0800638 depends on X86 && 64BIT
Huang Ying0e1227d2009-10-19 11:53:06 +0900639 select CRYPTO_CRYPTD
640 help
641 GHASH is message digest algorithm for GCM (Galois/Counter Mode).
642 The implementation is accelerated by CLMUL-NI of Intel.
643
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800644comment "Ciphers"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700645
646config CRYPTO_AES
647 tristate "AES cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +1000648 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -0700649 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800650 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Linus Torvalds1da177e2005-04-16 15:20:36 -0700651 algorithm.
652
653 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800654 both hardware and software across a wide range of computing
655 environments regardless of its use in feedback or non-feedback
656 modes. Its key setup time is excellent, and its key agility is
657 good. Rijndael's very low memory requirements make it very well
658 suited for restricted-space environments, in which it also
659 demonstrates excellent performance. Rijndael's operations are
660 among the easiest to defend against power and timing attacks.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700661
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800662 The AES specifies three key sizes: 128, 192 and 256 bits
Linus Torvalds1da177e2005-04-16 15:20:36 -0700663
664 See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
665
666config CRYPTO_AES_586
667 tristate "AES cipher algorithms (i586)"
Herbert Xucce9e062006-08-21 21:08:13 +1000668 depends on (X86 || UML_X86) && !64BIT
669 select CRYPTO_ALGAPI
Sebastian Siewior5157dea2007-11-10 19:07:16 +0800670 select CRYPTO_AES
Linus Torvalds1da177e2005-04-16 15:20:36 -0700671 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800672 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Linus Torvalds1da177e2005-04-16 15:20:36 -0700673 algorithm.
674
675 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800676 both hardware and software across a wide range of computing
677 environments regardless of its use in feedback or non-feedback
678 modes. Its key setup time is excellent, and its key agility is
679 good. Rijndael's very low memory requirements make it very well
680 suited for restricted-space environments, in which it also
681 demonstrates excellent performance. Rijndael's operations are
682 among the easiest to defend against power and timing attacks.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700683
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800684 The AES specifies three key sizes: 128, 192 and 256 bits
Linus Torvalds1da177e2005-04-16 15:20:36 -0700685
686 See <http://csrc.nist.gov/encryption/aes/> for more information.
687
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700688config CRYPTO_AES_X86_64
689 tristate "AES cipher algorithms (x86_64)"
Herbert Xucce9e062006-08-21 21:08:13 +1000690 depends on (X86 || UML_X86) && 64BIT
691 select CRYPTO_ALGAPI
Sebastian Siewior81190b32007-11-08 21:25:04 +0800692 select CRYPTO_AES
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700693 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800694 AES cipher algorithms (FIPS-197). AES uses the Rijndael
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700695 algorithm.
696
697 Rijndael appears to be consistently a very good performer in
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800698 both hardware and software across a wide range of computing
699 environments regardless of its use in feedback or non-feedback
700 modes. Its key setup time is excellent, and its key agility is
701 good. Rijndael's very low memory requirements make it very well
702 suited for restricted-space environments, in which it also
703 demonstrates excellent performance. Rijndael's operations are
704 among the easiest to defend against power and timing attacks.
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700705
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800706 The AES specifies three key sizes: 128, 192 and 256 bits
Andreas Steinmetza2a892a2005-07-06 13:55:00 -0700707
708 See <http://csrc.nist.gov/encryption/aes/> for more information.
709
Huang Ying54b6a1b2009-01-18 16:28:34 +1100710config CRYPTO_AES_NI_INTEL
711 tristate "AES cipher algorithms (AES-NI)"
Richard Weinberger8af00862011-06-08 20:56:29 +0800712 depends on X86
Mathias Krause0d258ef2010-11-27 16:34:46 +0800713 select CRYPTO_AES_X86_64 if 64BIT
714 select CRYPTO_AES_586 if !64BIT
Huang Ying54b6a1b2009-01-18 16:28:34 +1100715 select CRYPTO_CRYPTD
Jussi Kivilinnaa9629d72012-06-18 14:07:08 +0300716 select CRYPTO_ABLK_HELPER_X86
Huang Ying54b6a1b2009-01-18 16:28:34 +1100717 select CRYPTO_ALGAPI
Jussi Kivilinna7643a112013-04-10 18:39:20 +0300718 select CRYPTO_GLUE_HELPER_X86 if 64BIT
Jussi Kivilinna023af602012-07-22 18:18:37 +0300719 select CRYPTO_LRW
720 select CRYPTO_XTS
Huang Ying54b6a1b2009-01-18 16:28:34 +1100721 help
722 Use Intel AES-NI instructions for AES algorithm.
723
724 AES cipher algorithms (FIPS-197). AES uses the Rijndael
725 algorithm.
726
727 Rijndael appears to be consistently a very good performer in
728 both hardware and software across a wide range of computing
729 environments regardless of its use in feedback or non-feedback
730 modes. Its key setup time is excellent, and its key agility is
731 good. Rijndael's very low memory requirements make it very well
732 suited for restricted-space environments, in which it also
733 demonstrates excellent performance. Rijndael's operations are
734 among the easiest to defend against power and timing attacks.
735
736 The AES specifies three key sizes: 128, 192 and 256 bits
737
738 See <http://csrc.nist.gov/encryption/aes/> for more information.
739
Mathias Krause0d258ef2010-11-27 16:34:46 +0800740 In addition to AES cipher algorithm support, the acceleration
741 for some popular block cipher mode is supported too, including
742 ECB, CBC, LRW, PCBC, XTS. The 64 bit version has additional
743 acceleration for CTR.
Huang Ying2cf4ac82009-03-29 15:41:20 +0800744
David S. Miller9bf48522012-08-21 03:58:13 -0700745config CRYPTO_AES_SPARC64
746 tristate "AES cipher algorithms (SPARC64)"
747 depends on SPARC64
748 select CRYPTO_CRYPTD
749 select CRYPTO_ALGAPI
750 help
751 Use SPARC64 crypto opcodes for AES algorithm.
752
753 AES cipher algorithms (FIPS-197). AES uses the Rijndael
754 algorithm.
755
756 Rijndael appears to be consistently a very good performer in
757 both hardware and software across a wide range of computing
758 environments regardless of its use in feedback or non-feedback
759 modes. Its key setup time is excellent, and its key agility is
760 good. Rijndael's very low memory requirements make it very well
761 suited for restricted-space environments, in which it also
762 demonstrates excellent performance. Rijndael's operations are
763 among the easiest to defend against power and timing attacks.
764
765 The AES specifies three key sizes: 128, 192 and 256 bits
766
767 See <http://csrc.nist.gov/encryption/aes/> for more information.
768
769 In addition to AES cipher algorithm support, the acceleration
770 for some popular block cipher mode is supported too, including
771 ECB and CBC.
772
David McCulloughf0be44f2012-09-07 04:17:02 +0800773config CRYPTO_AES_ARM
774 tristate "AES cipher algorithms (ARM-asm)"
775 depends on ARM
776 select CRYPTO_ALGAPI
777 select CRYPTO_AES
778 help
779 Use optimized AES assembler routines for ARM platforms.
780
781 AES cipher algorithms (FIPS-197). AES uses the Rijndael
782 algorithm.
783
784 Rijndael appears to be consistently a very good performer in
785 both hardware and software across a wide range of computing
786 environments regardless of its use in feedback or non-feedback
787 modes. Its key setup time is excellent, and its key agility is
788 good. Rijndael's very low memory requirements make it very well
789 suited for restricted-space environments, in which it also
790 demonstrates excellent performance. Rijndael's operations are
791 among the easiest to defend against power and timing attacks.
792
793 The AES specifies three key sizes: 128, 192 and 256 bits
794
795 See <http://csrc.nist.gov/encryption/aes/> for more information.
796
Ard Biesheuvele1b76582013-09-16 18:31:38 +0200797config CRYPTO_AES_ARM_BS
798 tristate "Bit sliced AES using NEON instructions"
799 depends on ARM && KERNEL_MODE_NEON
800 select CRYPTO_ALGAPI
801 select CRYPTO_AES_ARM
802 select CRYPTO_ABLK_HELPER
803 help
804 Use a faster and more secure NEON based implementation of AES in CBC,
805 CTR and XTS modes
806
807 Bit sliced AES gives around 45% speedup on Cortex-A15 for CTR mode
808 and for XTS mode encryption, CBC and XTS mode decryption speedup is
809 around 25%. (CBC encryption speed is not affected by this driver.)
810 This implementation does not rely on any lookup tables so it is
811 believed to be invulnerable to cache timing attacks.
812
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800813config CRYPTO_ANUBIS
814 tristate "Anubis cipher algorithm"
815 select CRYPTO_ALGAPI
816 help
817 Anubis cipher algorithm.
818
819 Anubis is a variable key length cipher which can use keys from
820 128 bits to 320 bits in length. It was evaluated as a entrant
821 in the NESSIE competition.
822
823 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +0800824 <https://www.cosic.esat.kuleuven.be/nessie/reports/>
825 <http://www.larc.usp.br/~pbarreto/AnubisPage.html>
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800826
827config CRYPTO_ARC4
828 tristate "ARC4 cipher algorithm"
Sebastian Andrzej Siewiorb9b0f082012-06-26 18:13:46 +0200829 select CRYPTO_BLKCIPHER
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800830 help
831 ARC4 cipher algorithm.
832
833 ARC4 is a stream cipher using keys ranging from 8 bits to 2048
834 bits in length. This algorithm is required for driver-based
835 WEP, but it should not be for other purposes because of the
836 weakness of the algorithm.
837
838config CRYPTO_BLOWFISH
839 tristate "Blowfish cipher algorithm"
840 select CRYPTO_ALGAPI
Jussi Kivilinna52ba8672011-09-02 01:45:07 +0300841 select CRYPTO_BLOWFISH_COMMON
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800842 help
843 Blowfish cipher algorithm, by Bruce Schneier.
844
845 This is a variable key length cipher which can use keys from 32
846 bits to 448 bits in length. It's fast, simple and specifically
847 designed for use on "large microprocessors".
848
849 See also:
850 <http://www.schneier.com/blowfish.html>
851
Jussi Kivilinna52ba8672011-09-02 01:45:07 +0300852config CRYPTO_BLOWFISH_COMMON
853 tristate
854 help
855 Common parts of the Blowfish cipher algorithm shared by the
856 generic c and the assembler implementations.
857
858 See also:
859 <http://www.schneier.com/blowfish.html>
860
Jussi Kivilinna64b94ce2011-09-02 01:45:22 +0300861config CRYPTO_BLOWFISH_X86_64
862 tristate "Blowfish cipher algorithm (x86_64)"
Al Virof21a7c12012-04-08 20:31:22 -0400863 depends on X86 && 64BIT
Jussi Kivilinna64b94ce2011-09-02 01:45:22 +0300864 select CRYPTO_ALGAPI
865 select CRYPTO_BLOWFISH_COMMON
866 help
867 Blowfish cipher algorithm (x86_64), by Bruce Schneier.
868
869 This is a variable key length cipher which can use keys from 32
870 bits to 448 bits in length. It's fast, simple and specifically
871 designed for use on "large microprocessors".
872
873 See also:
874 <http://www.schneier.com/blowfish.html>
875
Jussi Kivilinna60488012013-04-13 13:46:45 +0300876config CRYPTO_BLOWFISH_AVX2_X86_64
877 tristate "Blowfish cipher algorithm (x86_64/AVX2)"
878 depends on X86 && 64BIT
Jussi Kivilinnaedb7c7c2013-06-02 19:51:52 +0300879 depends on BROKEN
Jussi Kivilinna60488012013-04-13 13:46:45 +0300880 select CRYPTO_ALGAPI
881 select CRYPTO_CRYPTD
882 select CRYPTO_ABLK_HELPER_X86
883 select CRYPTO_BLOWFISH_COMMON
884 select CRYPTO_BLOWFISH_X86_64
885 help
886 Blowfish cipher algorithm (x86_64/AVX2), by Bruce Schneier.
887
888 This is a variable key length cipher which can use keys from 32
889 bits to 448 bits in length. It's fast, simple and specifically
890 designed for use on "large microprocessors".
891
892 See also:
893 <http://www.schneier.com/blowfish.html>
894
Sebastian Siewior584fffc2008-04-05 21:04:48 +0800895config CRYPTO_CAMELLIA
896 tristate "Camellia cipher algorithms"
897 depends on CRYPTO
898 select CRYPTO_ALGAPI
899 help
900 Camellia cipher algorithms module.
901
902 Camellia is a symmetric key block cipher developed jointly
903 at NTT and Mitsubishi Electric Corporation.
904
905 The Camellia specifies three key sizes: 128, 192 and 256 bits.
906
907 See also:
908 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
909
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +0200910config CRYPTO_CAMELLIA_X86_64
911 tristate "Camellia cipher algorithm (x86_64)"
Al Virof21a7c12012-04-08 20:31:22 -0400912 depends on X86 && 64BIT
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +0200913 depends on CRYPTO
914 select CRYPTO_ALGAPI
Jussi Kivilinna964263a2012-06-18 14:07:29 +0300915 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna0b95ec52012-03-05 20:26:47 +0200916 select CRYPTO_LRW
917 select CRYPTO_XTS
918 help
919 Camellia cipher algorithm module (x86_64).
920
921 Camellia is a symmetric key block cipher developed jointly
922 at NTT and Mitsubishi Electric Corporation.
923
924 The Camellia specifies three key sizes: 128, 192 and 256 bits.
925
926 See also:
927 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
928
Jussi Kivilinnad9b1d2e2012-10-26 14:49:01 +0300929config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
930 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)"
931 depends on X86 && 64BIT
932 depends on CRYPTO
933 select CRYPTO_ALGAPI
934 select CRYPTO_CRYPTD
935 select CRYPTO_ABLK_HELPER_X86
936 select CRYPTO_GLUE_HELPER_X86
937 select CRYPTO_CAMELLIA_X86_64
938 select CRYPTO_LRW
939 select CRYPTO_XTS
940 help
941 Camellia cipher algorithm module (x86_64/AES-NI/AVX).
942
943 Camellia is a symmetric key block cipher developed jointly
944 at NTT and Mitsubishi Electric Corporation.
945
946 The Camellia specifies three key sizes: 128, 192 and 256 bits.
947
948 See also:
949 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
950
Jussi Kivilinnaf3f935a2013-04-13 13:47:00 +0300951config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
952 tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)"
953 depends on X86 && 64BIT
954 depends on CRYPTO
955 select CRYPTO_ALGAPI
956 select CRYPTO_CRYPTD
957 select CRYPTO_ABLK_HELPER_X86
958 select CRYPTO_GLUE_HELPER_X86
959 select CRYPTO_CAMELLIA_X86_64
960 select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
961 select CRYPTO_LRW
962 select CRYPTO_XTS
963 help
964 Camellia cipher algorithm module (x86_64/AES-NI/AVX2).
965
966 Camellia is a symmetric key block cipher developed jointly
967 at NTT and Mitsubishi Electric Corporation.
968
969 The Camellia specifies three key sizes: 128, 192 and 256 bits.
970
971 See also:
972 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
973
David S. Miller81658ad2012-08-28 12:05:54 -0700974config CRYPTO_CAMELLIA_SPARC64
975 tristate "Camellia cipher algorithm (SPARC64)"
976 depends on SPARC64
977 depends on CRYPTO
978 select CRYPTO_ALGAPI
979 help
980 Camellia cipher algorithm module (SPARC64).
981
982 Camellia is a symmetric key block cipher developed jointly
983 at NTT and Mitsubishi Electric Corporation.
984
985 The Camellia specifies three key sizes: 128, 192 and 256 bits.
986
987 See also:
988 <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
989
Jussi Kivilinna044ab522012-11-13 11:43:14 +0200990config CRYPTO_CAST_COMMON
991 tristate
992 help
993 Common parts of the CAST cipher algorithms shared by the
994 generic c and the assembler implementations.
995
Linus Torvalds1da177e2005-04-16 15:20:36 -0700996config CRYPTO_CAST5
997 tristate "CAST5 (CAST-128) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +1000998 select CRYPTO_ALGAPI
Jussi Kivilinna044ab522012-11-13 11:43:14 +0200999 select CRYPTO_CAST_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -07001000 help
1001 The CAST5 encryption algorithm (synonymous with CAST-128) is
1002 described in RFC2144.
1003
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001004config CRYPTO_CAST5_AVX_X86_64
1005 tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)"
1006 depends on X86 && 64BIT
1007 select CRYPTO_ALGAPI
1008 select CRYPTO_CRYPTD
1009 select CRYPTO_ABLK_HELPER_X86
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001010 select CRYPTO_CAST_COMMON
Johannes Goetzfried4d6d6a22012-07-11 19:37:37 +02001011 select CRYPTO_CAST5
1012 help
1013 The CAST5 encryption algorithm (synonymous with CAST-128) is
1014 described in RFC2144.
1015
1016 This module provides the Cast5 cipher algorithm that processes
1017 sixteen blocks parallel using the AVX instruction set.
1018
Linus Torvalds1da177e2005-04-16 15:20:36 -07001019config CRYPTO_CAST6
1020 tristate "CAST6 (CAST-256) cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001021 select CRYPTO_ALGAPI
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001022 select CRYPTO_CAST_COMMON
Linus Torvalds1da177e2005-04-16 15:20:36 -07001023 help
1024 The CAST6 encryption algorithm (synonymous with CAST-256) is
1025 described in RFC2612.
1026
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001027config CRYPTO_CAST6_AVX_X86_64
1028 tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)"
1029 depends on X86 && 64BIT
1030 select CRYPTO_ALGAPI
1031 select CRYPTO_CRYPTD
1032 select CRYPTO_ABLK_HELPER_X86
1033 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna044ab522012-11-13 11:43:14 +02001034 select CRYPTO_CAST_COMMON
Johannes Goetzfried4ea12772012-07-11 19:38:57 +02001035 select CRYPTO_CAST6
1036 select CRYPTO_LRW
1037 select CRYPTO_XTS
1038 help
1039 The CAST6 encryption algorithm (synonymous with CAST-256) is
1040 described in RFC2612.
1041
1042 This module provides the Cast6 cipher algorithm that processes
1043 eight blocks parallel using the AVX instruction set.
1044
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001045config CRYPTO_DES
1046 tristate "DES and Triple DES EDE cipher algorithms"
Herbert Xucce9e062006-08-21 21:08:13 +10001047 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -07001048 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001049 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
Linus Torvalds1da177e2005-04-16 15:20:36 -07001050
David S. Millerc5aac2d2012-08-25 22:37:23 -07001051config CRYPTO_DES_SPARC64
1052 tristate "DES and Triple DES EDE cipher algorithms (SPARC64)"
Dave Jones97da37b2012-10-02 17:13:20 -04001053 depends on SPARC64
David S. Millerc5aac2d2012-08-25 22:37:23 -07001054 select CRYPTO_ALGAPI
1055 select CRYPTO_DES
1056 help
1057 DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3),
1058 optimized using SPARC64 crypto opcodes.
1059
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001060config CRYPTO_FCRYPT
1061 tristate "FCrypt cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001062 select CRYPTO_ALGAPI
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001063 select CRYPTO_BLKCIPHER
Linus Torvalds1da177e2005-04-16 15:20:36 -07001064 help
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001065 FCrypt algorithm used by RxRPC.
Linus Torvalds1da177e2005-04-16 15:20:36 -07001066
1067config CRYPTO_KHAZAD
1068 tristate "Khazad cipher algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001069 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -07001070 help
1071 Khazad cipher algorithm.
1072
1073 Khazad was a finalist in the initial NESSIE competition. It is
1074 an algorithm optimized for 64-bit processors with good performance
1075 on 32-bit processors. Khazad uses an 128 bit key size.
1076
1077 See also:
Justin P. Mattock6d8de742010-09-12 10:42:47 +08001078 <http://www.larc.usp.br/~pbarreto/KhazadPage.html>
Linus Torvalds1da177e2005-04-16 15:20:36 -07001079
Tan Swee Heng2407d602007-11-23 19:45:00 +08001080config CRYPTO_SALSA20
Kees Cook3b4afaf2012-10-02 11:16:49 -07001081 tristate "Salsa20 stream cipher algorithm"
Tan Swee Heng2407d602007-11-23 19:45:00 +08001082 select CRYPTO_BLKCIPHER
1083 help
1084 Salsa20 stream cipher algorithm.
1085
1086 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1087 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1088
1089 The Salsa20 stream cipher algorithm is designed by Daniel J.
1090 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
Linus Torvalds1da177e2005-04-16 15:20:36 -07001091
Tan Swee Heng974e4b72007-12-10 15:52:56 +08001092config CRYPTO_SALSA20_586
Kees Cook3b4afaf2012-10-02 11:16:49 -07001093 tristate "Salsa20 stream cipher algorithm (i586)"
Tan Swee Heng974e4b72007-12-10 15:52:56 +08001094 depends on (X86 || UML_X86) && !64BIT
Tan Swee Heng974e4b72007-12-10 15:52:56 +08001095 select CRYPTO_BLKCIPHER
Tan Swee Heng974e4b72007-12-10 15:52:56 +08001096 help
1097 Salsa20 stream cipher algorithm.
1098
1099 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1100 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1101
1102 The Salsa20 stream cipher algorithm is designed by Daniel J.
1103 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1104
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +08001105config CRYPTO_SALSA20_X86_64
Kees Cook3b4afaf2012-10-02 11:16:49 -07001106 tristate "Salsa20 stream cipher algorithm (x86_64)"
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +08001107 depends on (X86 || UML_X86) && 64BIT
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +08001108 select CRYPTO_BLKCIPHER
Tan Swee Heng9a7dafb2007-12-18 00:04:40 +08001109 help
1110 Salsa20 stream cipher algorithm.
1111
1112 Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
1113 Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
1114
1115 The Salsa20 stream cipher algorithm is designed by Daniel J.
1116 Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
1117
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001118config CRYPTO_SEED
1119 tristate "SEED cipher algorithm"
1120 select CRYPTO_ALGAPI
1121 help
1122 SEED cipher algorithm (RFC4269).
1123
1124 SEED is a 128-bit symmetric key block cipher that has been
1125 developed by KISA (Korea Information Security Agency) as a
1126 national standard encryption algorithm of the Republic of Korea.
1127 It is a 16 round block cipher with the key size of 128 bit.
1128
1129 See also:
1130 <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
1131
1132config CRYPTO_SERPENT
1133 tristate "Serpent cipher algorithm"
1134 select CRYPTO_ALGAPI
1135 help
1136 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1137
1138 Keys are allowed to be from 0 to 256 bits in length, in steps
1139 of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
1140 variant of Serpent for compatibility with old kerneli.org code.
1141
1142 See also:
1143 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1144
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001145config CRYPTO_SERPENT_SSE2_X86_64
1146 tristate "Serpent cipher algorithm (x86_64/SSE2)"
1147 depends on X86 && 64BIT
1148 select CRYPTO_ALGAPI
Jussi Kivilinna341975b2011-11-24 08:37:41 +02001149 select CRYPTO_CRYPTD
Jussi Kivilinnaffaf9152012-06-18 14:06:58 +03001150 select CRYPTO_ABLK_HELPER_X86
Jussi Kivilinna596d8752012-06-18 14:07:19 +03001151 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001152 select CRYPTO_SERPENT
Jussi Kivilinnafeaf0cf2011-12-13 12:53:12 +02001153 select CRYPTO_LRW
1154 select CRYPTO_XTS
Jussi Kivilinna937c30d2011-11-09 16:26:25 +02001155 help
1156 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1157
1158 Keys are allowed to be from 0 to 256 bits in length, in steps
1159 of 8 bits.
1160
1161 This module provides Serpent cipher algorithm that processes eigth
1162 blocks parallel using SSE2 instruction set.
1163
1164 See also:
1165 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1166
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001167config CRYPTO_SERPENT_SSE2_586
1168 tristate "Serpent cipher algorithm (i586/SSE2)"
1169 depends on X86 && !64BIT
1170 select CRYPTO_ALGAPI
Jussi Kivilinna341975b2011-11-24 08:37:41 +02001171 select CRYPTO_CRYPTD
Jussi Kivilinnaffaf9152012-06-18 14:06:58 +03001172 select CRYPTO_ABLK_HELPER_X86
Jussi Kivilinna596d8752012-06-18 14:07:19 +03001173 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001174 select CRYPTO_SERPENT
Jussi Kivilinnafeaf0cf2011-12-13 12:53:12 +02001175 select CRYPTO_LRW
1176 select CRYPTO_XTS
Jussi Kivilinna251496d2011-11-09 16:26:31 +02001177 help
1178 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1179
1180 Keys are allowed to be from 0 to 256 bits in length, in steps
1181 of 8 bits.
1182
1183 This module provides Serpent cipher algorithm that processes four
1184 blocks parallel using SSE2 instruction set.
1185
1186 See also:
1187 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1188
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001189config CRYPTO_SERPENT_AVX_X86_64
1190 tristate "Serpent cipher algorithm (x86_64/AVX)"
1191 depends on X86 && 64BIT
1192 select CRYPTO_ALGAPI
1193 select CRYPTO_CRYPTD
Jussi Kivilinnaffaf9152012-06-18 14:06:58 +03001194 select CRYPTO_ABLK_HELPER_X86
Jussi Kivilinna1d0debb2012-06-18 14:07:24 +03001195 select CRYPTO_GLUE_HELPER_X86
Johannes Goetzfried7efe4072012-06-12 16:47:43 +08001196 select CRYPTO_SERPENT
1197 select CRYPTO_LRW
1198 select CRYPTO_XTS
1199 help
1200 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1201
1202 Keys are allowed to be from 0 to 256 bits in length, in steps
1203 of 8 bits.
1204
1205 This module provides the Serpent cipher algorithm that processes
1206 eight blocks parallel using the AVX instruction set.
1207
1208 See also:
1209 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1210
Jussi Kivilinna56d76c92013-04-13 13:46:55 +03001211config CRYPTO_SERPENT_AVX2_X86_64
1212 tristate "Serpent cipher algorithm (x86_64/AVX2)"
1213 depends on X86 && 64BIT
1214 select CRYPTO_ALGAPI
1215 select CRYPTO_CRYPTD
1216 select CRYPTO_ABLK_HELPER_X86
1217 select CRYPTO_GLUE_HELPER_X86
1218 select CRYPTO_SERPENT
1219 select CRYPTO_SERPENT_AVX_X86_64
1220 select CRYPTO_LRW
1221 select CRYPTO_XTS
1222 help
1223 Serpent cipher algorithm, by Anderson, Biham & Knudsen.
1224
1225 Keys are allowed to be from 0 to 256 bits in length, in steps
1226 of 8 bits.
1227
1228 This module provides Serpent cipher algorithm that processes 16
1229 blocks parallel using AVX2 instruction set.
1230
1231 See also:
1232 <http://www.cl.cam.ac.uk/~rja14/serpent.html>
1233
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001234config CRYPTO_TEA
1235 tristate "TEA, XTEA and XETA cipher algorithms"
1236 select CRYPTO_ALGAPI
1237 help
1238 TEA cipher algorithm.
1239
1240 Tiny Encryption Algorithm is a simple cipher that uses
1241 many rounds for security. It is very fast and uses
1242 little memory.
1243
1244 Xtendend Tiny Encryption Algorithm is a modification to
1245 the TEA algorithm to address a potential key weakness
1246 in the TEA algorithm.
1247
1248 Xtendend Encryption Tiny Algorithm is a mis-implementation
1249 of the XTEA algorithm for compatibility purposes.
1250
1251config CRYPTO_TWOFISH
1252 tristate "Twofish cipher algorithm"
1253 select CRYPTO_ALGAPI
1254 select CRYPTO_TWOFISH_COMMON
1255 help
1256 Twofish cipher algorithm.
1257
1258 Twofish was submitted as an AES (Advanced Encryption Standard)
1259 candidate cipher by researchers at CounterPane Systems. It is a
1260 16 round block cipher supporting key sizes of 128, 192, and 256
1261 bits.
1262
1263 See also:
1264 <http://www.schneier.com/twofish.html>
1265
1266config CRYPTO_TWOFISH_COMMON
1267 tristate
1268 help
1269 Common parts of the Twofish cipher algorithm shared by the
1270 generic c and the assembler implementations.
1271
1272config CRYPTO_TWOFISH_586
1273 tristate "Twofish cipher algorithms (i586)"
1274 depends on (X86 || UML_X86) && !64BIT
1275 select CRYPTO_ALGAPI
1276 select CRYPTO_TWOFISH_COMMON
1277 help
1278 Twofish cipher algorithm.
1279
1280 Twofish was submitted as an AES (Advanced Encryption Standard)
1281 candidate cipher by researchers at CounterPane Systems. It is a
1282 16 round block cipher supporting key sizes of 128, 192, and 256
1283 bits.
1284
1285 See also:
1286 <http://www.schneier.com/twofish.html>
1287
1288config CRYPTO_TWOFISH_X86_64
1289 tristate "Twofish cipher algorithm (x86_64)"
1290 depends on (X86 || UML_X86) && 64BIT
1291 select CRYPTO_ALGAPI
1292 select CRYPTO_TWOFISH_COMMON
1293 help
1294 Twofish cipher algorithm (x86_64).
1295
1296 Twofish was submitted as an AES (Advanced Encryption Standard)
1297 candidate cipher by researchers at CounterPane Systems. It is a
1298 16 round block cipher supporting key sizes of 128, 192, and 256
1299 bits.
1300
1301 See also:
1302 <http://www.schneier.com/twofish.html>
1303
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001304config CRYPTO_TWOFISH_X86_64_3WAY
1305 tristate "Twofish cipher algorithm (x86_64, 3-way parallel)"
Al Virof21a7c12012-04-08 20:31:22 -04001306 depends on X86 && 64BIT
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001307 select CRYPTO_ALGAPI
1308 select CRYPTO_TWOFISH_COMMON
1309 select CRYPTO_TWOFISH_X86_64
Jussi Kivilinna414cb5e2012-06-18 14:07:34 +03001310 select CRYPTO_GLUE_HELPER_X86
Jussi Kivilinnae7cda5d2011-12-13 12:53:01 +02001311 select CRYPTO_LRW
1312 select CRYPTO_XTS
Jussi Kivilinna8280daa2011-09-26 16:47:25 +03001313 help
1314 Twofish cipher algorithm (x86_64, 3-way parallel).
1315
1316 Twofish was submitted as an AES (Advanced Encryption Standard)
1317 candidate cipher by researchers at CounterPane Systems. It is a
1318 16 round block cipher supporting key sizes of 128, 192, and 256
1319 bits.
1320
1321 This module provides Twofish cipher algorithm that processes three
1322 blocks parallel, utilizing resources of out-of-order CPUs better.
1323
1324 See also:
1325 <http://www.schneier.com/twofish.html>
1326
Johannes Goetzfried107778b2012-05-28 15:54:24 +02001327config CRYPTO_TWOFISH_AVX_X86_64
1328 tristate "Twofish cipher algorithm (x86_64/AVX)"
1329 depends on X86 && 64BIT
1330 select CRYPTO_ALGAPI
1331 select CRYPTO_CRYPTD
Jussi Kivilinna30a04002012-06-18 14:07:03 +03001332 select CRYPTO_ABLK_HELPER_X86
Jussi Kivilinnaa7378d42012-06-18 14:07:39 +03001333 select CRYPTO_GLUE_HELPER_X86
Johannes Goetzfried107778b2012-05-28 15:54:24 +02001334 select CRYPTO_TWOFISH_COMMON
1335 select CRYPTO_TWOFISH_X86_64
1336 select CRYPTO_TWOFISH_X86_64_3WAY
1337 select CRYPTO_LRW
1338 select CRYPTO_XTS
1339 help
1340 Twofish cipher algorithm (x86_64/AVX).
1341
1342 Twofish was submitted as an AES (Advanced Encryption Standard)
1343 candidate cipher by researchers at CounterPane Systems. It is a
1344 16 round block cipher supporting key sizes of 128, 192, and 256
1345 bits.
1346
1347 This module provides the Twofish cipher algorithm that processes
1348 eight blocks parallel using the AVX Instruction Set.
1349
1350 See also:
1351 <http://www.schneier.com/twofish.html>
1352
Jussi Kivilinnacf1521a2013-04-13 13:46:50 +03001353config CRYPTO_TWOFISH_AVX2_X86_64
1354 tristate "Twofish cipher algorithm (x86_64/AVX2)"
1355 depends on X86 && 64BIT
Jussi Kivilinna3ef91f22013-06-02 19:51:47 +03001356 depends on BROKEN
Jussi Kivilinnacf1521a2013-04-13 13:46:50 +03001357 select CRYPTO_ALGAPI
1358 select CRYPTO_CRYPTD
1359 select CRYPTO_ABLK_HELPER_X86
1360 select CRYPTO_GLUE_HELPER_X86
1361 select CRYPTO_TWOFISH_COMMON
1362 select CRYPTO_TWOFISH_X86_64
1363 select CRYPTO_TWOFISH_X86_64_3WAY
1364 select CRYPTO_TWOFISH_AVX_X86_64
1365 select CRYPTO_LRW
1366 select CRYPTO_XTS
1367 help
1368 Twofish cipher algorithm (x86_64/AVX2).
1369
1370 Twofish was submitted as an AES (Advanced Encryption Standard)
1371 candidate cipher by researchers at CounterPane Systems. It is a
1372 16 round block cipher supporting key sizes of 128, 192, and 256
1373 bits.
1374
1375 See also:
1376 <http://www.schneier.com/twofish.html>
1377
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001378comment "Compression"
1379
Linus Torvalds1da177e2005-04-16 15:20:36 -07001380config CRYPTO_DEFLATE
1381 tristate "Deflate compression algorithm"
Herbert Xucce9e062006-08-21 21:08:13 +10001382 select CRYPTO_ALGAPI
Linus Torvalds1da177e2005-04-16 15:20:36 -07001383 select ZLIB_INFLATE
1384 select ZLIB_DEFLATE
1385 help
1386 This is the Deflate algorithm (RFC1951), specified for use in
1387 IPSec with the IPCOMP protocol (RFC3173, RFC2394).
Sebastian Siewior584fffc2008-04-05 21:04:48 +08001388
Linus Torvalds1da177e2005-04-16 15:20:36 -07001389 You will most probably want this if using IPSec.
1390
Geert Uytterhoevenbf68e652009-03-04 15:15:49 +08001391config CRYPTO_ZLIB
1392 tristate "Zlib compression algorithm"
1393 select CRYPTO_PCOMP
1394 select ZLIB_INFLATE
1395 select ZLIB_DEFLATE
1396 select NLATTR
1397 help
1398 This is the zlib algorithm.
1399
Zoltan Sogor0b77abb2007-12-07 16:53:23 +08001400config CRYPTO_LZO
1401 tristate "LZO compression algorithm"
1402 select CRYPTO_ALGAPI
1403 select LZO_COMPRESS
1404 select LZO_DECOMPRESS
1405 help
1406 This is the LZO algorithm.
1407
Seth Jennings35a1fc12012-07-19 09:42:41 -05001408config CRYPTO_842
1409 tristate "842 compression algorithm"
1410 depends on CRYPTO_DEV_NX_COMPRESS
1411 # 842 uses lzo if the hardware becomes unavailable
1412 select LZO_COMPRESS
1413 select LZO_DECOMPRESS
1414 help
1415 This is the 842 algorithm.
1416
Neil Horman17f0f4a2008-08-14 22:15:52 +10001417comment "Random Number Generation"
1418
1419config CRYPTO_ANSI_CPRNG
1420 tristate "Pseudo Random Number Generation for Cryptographic modules"
Neil Horman4e4ed832009-08-20 17:54:16 +10001421 default m
Neil Horman17f0f4a2008-08-14 22:15:52 +10001422 select CRYPTO_AES
1423 select CRYPTO_RNG
Neil Horman17f0f4a2008-08-14 22:15:52 +10001424 help
1425 This option enables the generic pseudo random number generator
1426 for cryptographic modules. Uses the Algorithm specified in
Jiri Kosina7dd607e2010-01-27 01:00:10 +01001427 ANSI X9.31 A.2.4. Note that this option must be enabled if
1428 CRYPTO_FIPS is selected
Neil Horman17f0f4a2008-08-14 22:15:52 +10001429
Herbert Xu03c8efc2010-10-19 21:12:39 +08001430config CRYPTO_USER_API
1431 tristate
1432
Herbert Xufe869cd2010-10-19 21:23:00 +08001433config CRYPTO_USER_API_HASH
1434 tristate "User-space interface for hash algorithms"
Herbert Xu74517082010-11-29 22:56:03 +08001435 depends on NET
Herbert Xufe869cd2010-10-19 21:23:00 +08001436 select CRYPTO_HASH
1437 select CRYPTO_USER_API
1438 help
1439 This option enables the user-spaces interface for hash
1440 algorithms.
1441
Herbert Xu8ff59092010-10-19 21:31:55 +08001442config CRYPTO_USER_API_SKCIPHER
1443 tristate "User-space interface for symmetric key cipher algorithms"
Herbert Xu74517082010-11-29 22:56:03 +08001444 depends on NET
Herbert Xu8ff59092010-10-19 21:31:55 +08001445 select CRYPTO_BLKCIPHER
1446 select CRYPTO_USER_API
1447 help
1448 This option enables the user-spaces interface for symmetric
1449 key cipher algorithms.
1450
Linus Torvalds1da177e2005-04-16 15:20:36 -07001451source "drivers/crypto/Kconfig"
David Howells964f3b32012-09-13 15:17:21 +01001452source crypto/asymmetric_keys/Kconfig
Linus Torvalds1da177e2005-04-16 15:20:36 -07001453
Herbert Xucce9e062006-08-21 21:08:13 +10001454endif # if CRYPTO