Kconfig 54 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885
  1. # SPDX-License-Identifier: GPL-2.0
  2. #
  3. # Generic algorithms support
  4. #
  5. config XOR_BLOCKS
  6. tristate
  7. #
  8. # async_tx api: hardware offloaded memory transfer/transform support
  9. #
  10. source "crypto/async_tx/Kconfig"
  11. #
  12. # Cryptographic API Configuration
  13. #
  14. menuconfig CRYPTO
  15. tristate "Cryptographic API"
  16. help
  17. This option provides the core Cryptographic API.
  18. if CRYPTO
  19. comment "Crypto core or helper"
  20. config CRYPTO_FIPS
  21. bool "FIPS 200 compliance"
  22. depends on (CRYPTO_ANSI_CPRNG || CRYPTO_DRBG) && !CRYPTO_MANAGER_DISABLE_TESTS
  23. depends on (MODULE_SIG || !MODULES)
  24. help
  25. This options enables the fips boot option which is
  26. required if you want to system to operate in a FIPS 200
  27. certification. You should say no unless you know what
  28. this is.
  29. config CRYPTO_ALGAPI
  30. tristate
  31. select CRYPTO_ALGAPI2
  32. help
  33. This option provides the API for cryptographic algorithms.
  34. config CRYPTO_ALGAPI2
  35. tristate
  36. config CRYPTO_AEAD
  37. tristate
  38. select CRYPTO_AEAD2
  39. select CRYPTO_ALGAPI
  40. config CRYPTO_AEAD2
  41. tristate
  42. select CRYPTO_ALGAPI2
  43. select CRYPTO_NULL2
  44. select CRYPTO_RNG2
  45. config CRYPTO_BLKCIPHER
  46. tristate
  47. select CRYPTO_BLKCIPHER2
  48. select CRYPTO_ALGAPI
  49. config CRYPTO_BLKCIPHER2
  50. tristate
  51. select CRYPTO_ALGAPI2
  52. select CRYPTO_RNG2
  53. select CRYPTO_WORKQUEUE
  54. config CRYPTO_HASH
  55. tristate
  56. select CRYPTO_HASH2
  57. select CRYPTO_ALGAPI
  58. config CRYPTO_HASH2
  59. tristate
  60. select CRYPTO_ALGAPI2
  61. config CRYPTO_RNG
  62. tristate
  63. select CRYPTO_RNG2
  64. select CRYPTO_ALGAPI
  65. config CRYPTO_RNG2
  66. tristate
  67. select CRYPTO_ALGAPI2
  68. config CRYPTO_RNG_DEFAULT
  69. tristate
  70. select CRYPTO_DRBG_MENU
  71. config CRYPTO_AKCIPHER2
  72. tristate
  73. select CRYPTO_ALGAPI2
  74. config CRYPTO_AKCIPHER
  75. tristate
  76. select CRYPTO_AKCIPHER2
  77. select CRYPTO_ALGAPI
  78. config CRYPTO_KPP2
  79. tristate
  80. select CRYPTO_ALGAPI2
  81. config CRYPTO_KPP
  82. tristate
  83. select CRYPTO_ALGAPI
  84. select CRYPTO_KPP2
  85. config CRYPTO_ACOMP2
  86. tristate
  87. select CRYPTO_ALGAPI2
  88. select SGL_ALLOC
  89. config CRYPTO_ACOMP
  90. tristate
  91. select CRYPTO_ALGAPI
  92. select CRYPTO_ACOMP2
  93. config CRYPTO_RSA
  94. tristate "RSA algorithm"
  95. select CRYPTO_AKCIPHER
  96. select CRYPTO_MANAGER
  97. select MPILIB
  98. select ASN1
  99. help
  100. Generic implementation of the RSA public key algorithm.
  101. config CRYPTO_DH
  102. tristate "Diffie-Hellman algorithm"
  103. select CRYPTO_KPP
  104. select MPILIB
  105. help
  106. Generic implementation of the Diffie-Hellman algorithm.
  107. config CRYPTO_ECDH
  108. tristate "ECDH algorithm"
  109. select CRYPTO_KPP
  110. select CRYPTO_RNG_DEFAULT
  111. help
  112. Generic implementation of the ECDH algorithm
  113. config CRYPTO_MANAGER
  114. tristate "Cryptographic algorithm manager"
  115. select CRYPTO_MANAGER2
  116. help
  117. Create default cryptographic template instantiations such as
  118. cbc(aes).
  119. config CRYPTO_MANAGER2
  120. def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
  121. select CRYPTO_AEAD2
  122. select CRYPTO_HASH2
  123. select CRYPTO_BLKCIPHER2
  124. select CRYPTO_AKCIPHER2
  125. select CRYPTO_KPP2
  126. select CRYPTO_ACOMP2
  127. config CRYPTO_USER
  128. tristate "Userspace cryptographic algorithm configuration"
  129. depends on NET
  130. select CRYPTO_MANAGER
  131. help
  132. Userspace configuration for cryptographic instantiations such as
  133. cbc(aes).
  134. config CRYPTO_MANAGER_DISABLE_TESTS
  135. bool "Disable run-time self tests"
  136. default y
  137. depends on CRYPTO_MANAGER2
  138. help
  139. Disable run-time self tests that normally take place at
  140. algorithm registration.
  141. config CRYPTO_GF128MUL
  142. tristate "GF(2^128) multiplication functions"
  143. help
  144. Efficient table driven implementation of multiplications in the
  145. field GF(2^128). This is needed by some cypher modes. This
  146. option will be selected automatically if you select such a
  147. cipher mode. Only select this option by hand if you expect to load
  148. an external module that requires these functions.
  149. config CRYPTO_NULL
  150. tristate "Null algorithms"
  151. select CRYPTO_NULL2
  152. help
  153. These are 'Null' algorithms, used by IPsec, which do nothing.
  154. config CRYPTO_NULL2
  155. tristate
  156. select CRYPTO_ALGAPI2
  157. select CRYPTO_BLKCIPHER2
  158. select CRYPTO_HASH2
  159. config CRYPTO_PCRYPT
  160. tristate "Parallel crypto engine"
  161. depends on SMP
  162. select PADATA
  163. select CRYPTO_MANAGER
  164. select CRYPTO_AEAD
  165. help
  166. This converts an arbitrary crypto algorithm into a parallel
  167. algorithm that executes in kernel threads.
  168. config CRYPTO_WORKQUEUE
  169. tristate
  170. config CRYPTO_CRYPTD
  171. tristate "Software async crypto daemon"
  172. select CRYPTO_BLKCIPHER
  173. select CRYPTO_HASH
  174. select CRYPTO_MANAGER
  175. select CRYPTO_WORKQUEUE
  176. help
  177. This is a generic software asynchronous crypto daemon that
  178. converts an arbitrary synchronous software crypto algorithm
  179. into an asynchronous algorithm that executes in a kernel thread.
  180. config CRYPTO_MCRYPTD
  181. tristate "Software async multi-buffer crypto daemon"
  182. select CRYPTO_BLKCIPHER
  183. select CRYPTO_HASH
  184. select CRYPTO_MANAGER
  185. select CRYPTO_WORKQUEUE
  186. help
  187. This is a generic software asynchronous crypto daemon that
  188. provides the kernel thread to assist multi-buffer crypto
  189. algorithms for submitting jobs and flushing jobs in multi-buffer
  190. crypto algorithms. Multi-buffer crypto algorithms are executed
  191. in the context of this kernel thread and drivers can post
  192. their crypto request asynchronously to be processed by this daemon.
  193. config CRYPTO_AUTHENC
  194. tristate "Authenc support"
  195. select CRYPTO_AEAD
  196. select CRYPTO_BLKCIPHER
  197. select CRYPTO_MANAGER
  198. select CRYPTO_HASH
  199. select CRYPTO_NULL
  200. help
  201. Authenc: Combined mode wrapper for IPsec.
  202. This is required for IPSec.
  203. config CRYPTO_TEST
  204. tristate "Testing module"
  205. depends on m
  206. select CRYPTO_MANAGER
  207. help
  208. Quick & dirty crypto test module.
  209. config CRYPTO_SIMD
  210. tristate
  211. select CRYPTO_CRYPTD
  212. config CRYPTO_GLUE_HELPER_X86
  213. tristate
  214. depends on X86
  215. select CRYPTO_BLKCIPHER
  216. config CRYPTO_ENGINE
  217. tristate
  218. comment "Authenticated Encryption with Associated Data"
  219. config CRYPTO_CCM
  220. tristate "CCM support"
  221. select CRYPTO_CTR
  222. select CRYPTO_HASH
  223. select CRYPTO_AEAD
  224. help
  225. Support for Counter with CBC MAC. Required for IPsec.
  226. config CRYPTO_GCM
  227. tristate "GCM/GMAC support"
  228. select CRYPTO_CTR
  229. select CRYPTO_AEAD
  230. select CRYPTO_GHASH
  231. select CRYPTO_NULL
  232. help
  233. Support for Galois/Counter Mode (GCM) and Galois Message
  234. Authentication Code (GMAC). Required for IPSec.
  235. config CRYPTO_CHACHA20POLY1305
  236. tristate "ChaCha20-Poly1305 AEAD support"
  237. select CRYPTO_CHACHA20
  238. select CRYPTO_POLY1305
  239. select CRYPTO_AEAD
  240. help
  241. ChaCha20-Poly1305 AEAD support, RFC7539.
  242. Support for the AEAD wrapper using the ChaCha20 stream cipher combined
  243. with the Poly1305 authenticator. It is defined in RFC7539 for use in
  244. IETF protocols.
  245. config CRYPTO_AEGIS128
  246. tristate "AEGIS-128 AEAD algorithm"
  247. select CRYPTO_AEAD
  248. select CRYPTO_AES # for AES S-box tables
  249. help
  250. Support for the AEGIS-128 dedicated AEAD algorithm.
  251. config CRYPTO_AEGIS128L
  252. tristate "AEGIS-128L AEAD algorithm"
  253. select CRYPTO_AEAD
  254. select CRYPTO_AES # for AES S-box tables
  255. help
  256. Support for the AEGIS-128L dedicated AEAD algorithm.
  257. config CRYPTO_AEGIS256
  258. tristate "AEGIS-256 AEAD algorithm"
  259. select CRYPTO_AEAD
  260. select CRYPTO_AES # for AES S-box tables
  261. help
  262. Support for the AEGIS-256 dedicated AEAD algorithm.
  263. config CRYPTO_AEGIS128_AESNI_SSE2
  264. tristate "AEGIS-128 AEAD algorithm (x86_64 AESNI+SSE2 implementation)"
  265. depends on X86 && 64BIT
  266. select CRYPTO_AEAD
  267. select CRYPTO_CRYPTD
  268. help
  269. AESNI+SSE2 implementation of the AEGSI-128 dedicated AEAD algorithm.
  270. config CRYPTO_AEGIS128L_AESNI_SSE2
  271. tristate "AEGIS-128L AEAD algorithm (x86_64 AESNI+SSE2 implementation)"
  272. depends on X86 && 64BIT
  273. select CRYPTO_AEAD
  274. select CRYPTO_CRYPTD
  275. help
  276. AESNI+SSE2 implementation of the AEGSI-128L dedicated AEAD algorithm.
  277. config CRYPTO_AEGIS256_AESNI_SSE2
  278. tristate "AEGIS-256 AEAD algorithm (x86_64 AESNI+SSE2 implementation)"
  279. depends on X86 && 64BIT
  280. select CRYPTO_AEAD
  281. select CRYPTO_CRYPTD
  282. help
  283. AESNI+SSE2 implementation of the AEGSI-256 dedicated AEAD algorithm.
  284. config CRYPTO_MORUS640
  285. tristate "MORUS-640 AEAD algorithm"
  286. select CRYPTO_AEAD
  287. help
  288. Support for the MORUS-640 dedicated AEAD algorithm.
  289. config CRYPTO_MORUS640_GLUE
  290. tristate "MORUS-640 AEAD algorithm (glue for SIMD optimizations)"
  291. select CRYPTO_AEAD
  292. select CRYPTO_CRYPTD
  293. help
  294. Common glue for SIMD optimizations of the MORUS-640 dedicated AEAD
  295. algorithm.
  296. config CRYPTO_MORUS1280
  297. tristate "MORUS-1280 AEAD algorithm"
  298. select CRYPTO_AEAD
  299. help
  300. Support for the MORUS-1280 dedicated AEAD algorithm.
  301. config CRYPTO_MORUS1280_GLUE
  302. tristate "MORUS-1280 AEAD algorithm (glue for SIMD optimizations)"
  303. select CRYPTO_AEAD
  304. select CRYPTO_CRYPTD
  305. help
  306. Common glue for SIMD optimizations of the MORUS-1280 dedicated AEAD
  307. algorithm.
  308. config CRYPTO_SEQIV
  309. tristate "Sequence Number IV Generator"
  310. select CRYPTO_AEAD
  311. select CRYPTO_BLKCIPHER
  312. select CRYPTO_NULL
  313. select CRYPTO_RNG_DEFAULT
  314. help
  315. This IV generator generates an IV based on a sequence number by
  316. xoring it with a salt. This algorithm is mainly useful for CTR
  317. config CRYPTO_ECHAINIV
  318. tristate "Encrypted Chain IV Generator"
  319. select CRYPTO_AEAD
  320. select CRYPTO_NULL
  321. select CRYPTO_RNG_DEFAULT
  322. default m
  323. help
  324. This IV generator generates an IV based on the encryption of
  325. a sequence number xored with a salt. This is the default
  326. algorithm for CBC.
  327. comment "Block modes"
  328. config CRYPTO_CBC
  329. tristate "CBC support"
  330. select CRYPTO_BLKCIPHER
  331. select CRYPTO_MANAGER
  332. help
  333. CBC: Cipher Block Chaining mode
  334. This block cipher algorithm is required for IPSec.
  335. config CRYPTO_CFB
  336. tristate "CFB support"
  337. select CRYPTO_BLKCIPHER
  338. select CRYPTO_MANAGER
  339. help
  340. CFB: Cipher FeedBack mode
  341. This block cipher algorithm is required for TPM2 Cryptography.
  342. config CRYPTO_CTR
  343. tristate "CTR support"
  344. select CRYPTO_BLKCIPHER
  345. select CRYPTO_SEQIV
  346. select CRYPTO_MANAGER
  347. help
  348. CTR: Counter mode
  349. This block cipher algorithm is required for IPSec.
  350. config CRYPTO_CTS
  351. tristate "CTS support"
  352. select CRYPTO_BLKCIPHER
  353. help
  354. CTS: Cipher Text Stealing
  355. This is the Cipher Text Stealing mode as described by
  356. Section 8 of rfc2040 and referenced by rfc3962.
  357. (rfc3962 includes errata information in its Appendix A)
  358. This mode is required for Kerberos gss mechanism support
  359. for AES encryption.
  360. config CRYPTO_ECB
  361. tristate "ECB support"
  362. select CRYPTO_BLKCIPHER
  363. select CRYPTO_MANAGER
  364. help
  365. ECB: Electronic CodeBook mode
  366. This is the simplest block cipher algorithm. It simply encrypts
  367. the input block by block.
  368. config CRYPTO_LRW
  369. tristate "LRW support"
  370. select CRYPTO_BLKCIPHER
  371. select CRYPTO_MANAGER
  372. select CRYPTO_GF128MUL
  373. help
  374. LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
  375. narrow block cipher mode for dm-crypt. Use it with cipher
  376. specification string aes-lrw-benbi, the key must be 256, 320 or 384.
  377. The first 128, 192 or 256 bits in the key are used for AES and the
  378. rest is used to tie each cipher block to its logical position.
  379. config CRYPTO_PCBC
  380. tristate "PCBC support"
  381. select CRYPTO_BLKCIPHER
  382. select CRYPTO_MANAGER
  383. help
  384. PCBC: Propagating Cipher Block Chaining mode
  385. This block cipher algorithm is required for RxRPC.
  386. config CRYPTO_XTS
  387. tristate "XTS support"
  388. select CRYPTO_BLKCIPHER
  389. select CRYPTO_MANAGER
  390. select CRYPTO_ECB
  391. help
  392. XTS: IEEE1619/D16 narrow block cipher use with aes-xts-plain,
  393. key size 256, 384 or 512 bits. This implementation currently
  394. can't handle a sectorsize which is not a multiple of 16 bytes.
  395. config CRYPTO_KEYWRAP
  396. tristate "Key wrapping support"
  397. select CRYPTO_BLKCIPHER
  398. help
  399. Support for key wrapping (NIST SP800-38F / RFC3394) without
  400. padding.
  401. comment "Hash modes"
  402. config CRYPTO_CMAC
  403. tristate "CMAC support"
  404. select CRYPTO_HASH
  405. select CRYPTO_MANAGER
  406. help
  407. Cipher-based Message Authentication Code (CMAC) specified by
  408. The National Institute of Standards and Technology (NIST).
  409. https://tools.ietf.org/html/rfc4493
  410. http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
  411. config CRYPTO_HMAC
  412. tristate "HMAC support"
  413. select CRYPTO_HASH
  414. select CRYPTO_MANAGER
  415. help
  416. HMAC: Keyed-Hashing for Message Authentication (RFC2104).
  417. This is required for IPSec.
  418. config CRYPTO_XCBC
  419. tristate "XCBC support"
  420. select CRYPTO_HASH
  421. select CRYPTO_MANAGER
  422. help
  423. XCBC: Keyed-Hashing with encryption algorithm
  424. http://www.ietf.org/rfc/rfc3566.txt
  425. http://csrc.nist.gov/encryption/modes/proposedmodes/
  426. xcbc-mac/xcbc-mac-spec.pdf
  427. config CRYPTO_VMAC
  428. tristate "VMAC support"
  429. select CRYPTO_HASH
  430. select CRYPTO_MANAGER
  431. help
  432. VMAC is a message authentication algorithm designed for
  433. very high speed on 64-bit architectures.
  434. See also:
  435. <http://fastcrypto.org/vmac>
  436. comment "Digest"
  437. config CRYPTO_CRC32C
  438. tristate "CRC32c CRC algorithm"
  439. select CRYPTO_HASH
  440. select CRC32
  441. help
  442. Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
  443. by iSCSI for header and data digests and by others.
  444. See Castagnoli93. Module will be crc32c.
  445. config CRYPTO_CRC32C_INTEL
  446. tristate "CRC32c INTEL hardware acceleration"
  447. depends on X86
  448. select CRYPTO_HASH
  449. help
  450. In Intel processor with SSE4.2 supported, the processor will
  451. support CRC32C implementation using hardware accelerated CRC32
  452. instruction. This option will create 'crc32c-intel' module,
  453. which will enable any routine to use the CRC32 instruction to
  454. gain performance compared with software implementation.
  455. Module will be crc32c-intel.
  456. config CRYPTO_CRC32C_VPMSUM
  457. tristate "CRC32c CRC algorithm (powerpc64)"
  458. depends on PPC64 && ALTIVEC
  459. select CRYPTO_HASH
  460. select CRC32
  461. help
  462. CRC32c algorithm implemented using vector polynomial multiply-sum
  463. (vpmsum) instructions, introduced in POWER8. Enable on POWER8
  464. and newer processors for improved performance.
  465. config CRYPTO_CRC32C_SPARC64
  466. tristate "CRC32c CRC algorithm (SPARC64)"
  467. depends on SPARC64
  468. select CRYPTO_HASH
  469. select CRC32
  470. help
  471. CRC32c CRC algorithm implemented using sparc64 crypto instructions,
  472. when available.
  473. config CRYPTO_CRC32
  474. tristate "CRC32 CRC algorithm"
  475. select CRYPTO_HASH
  476. select CRC32
  477. help
  478. CRC-32-IEEE 802.3 cyclic redundancy-check algorithm.
  479. Shash crypto api wrappers to crc32_le function.
  480. config CRYPTO_CRC32_PCLMUL
  481. tristate "CRC32 PCLMULQDQ hardware acceleration"
  482. depends on X86
  483. select CRYPTO_HASH
  484. select CRC32
  485. help
  486. From Intel Westmere and AMD Bulldozer processor with SSE4.2
  487. and PCLMULQDQ supported, the processor will support
  488. CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ
  489. instruction. This option will create 'crc32-plcmul' module,
  490. which will enable any routine to use the CRC-32-IEEE 802.3 checksum
  491. and gain better performance as compared with the table implementation.
  492. config CRYPTO_CRC32_MIPS
  493. tristate "CRC32c and CRC32 CRC algorithm (MIPS)"
  494. depends on MIPS_CRC_SUPPORT
  495. select CRYPTO_HASH
  496. help
  497. CRC32c and CRC32 CRC algorithms implemented using mips crypto
  498. instructions, when available.
  499. config CRYPTO_CRCT10DIF
  500. tristate "CRCT10DIF algorithm"
  501. select CRYPTO_HASH
  502. help
  503. CRC T10 Data Integrity Field computation is being cast as
  504. a crypto transform. This allows for faster crc t10 diff
  505. transforms to be used if they are available.
  506. config CRYPTO_CRCT10DIF_PCLMUL
  507. tristate "CRCT10DIF PCLMULQDQ hardware acceleration"
  508. depends on X86 && 64BIT && CRC_T10DIF
  509. select CRYPTO_HASH
  510. help
  511. For x86_64 processors with SSE4.2 and PCLMULQDQ supported,
  512. CRC T10 DIF PCLMULQDQ computation can be hardware
  513. accelerated PCLMULQDQ instruction. This option will create
  514. 'crct10dif-plcmul' module, which is faster when computing the
  515. crct10dif checksum as compared with the generic table implementation.
  516. config CRYPTO_CRCT10DIF_VPMSUM
  517. tristate "CRC32T10DIF powerpc64 hardware acceleration"
  518. depends on PPC64 && ALTIVEC && CRC_T10DIF
  519. select CRYPTO_HASH
  520. help
  521. CRC10T10DIF algorithm implemented using vector polynomial
  522. multiply-sum (vpmsum) instructions, introduced in POWER8. Enable on
  523. POWER8 and newer processors for improved performance.
  524. config CRYPTO_VPMSUM_TESTER
  525. tristate "Powerpc64 vpmsum hardware acceleration tester"
  526. depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM
  527. help
  528. Stress test for CRC32c and CRC-T10DIF algorithms implemented with
  529. POWER8 vpmsum instructions.
  530. Unless you are testing these algorithms, you don't need this.
  531. config CRYPTO_GHASH
  532. tristate "GHASH digest algorithm"
  533. select CRYPTO_GF128MUL
  534. select CRYPTO_HASH
  535. help
  536. GHASH is message digest algorithm for GCM (Galois/Counter Mode).
  537. config CRYPTO_POLY1305
  538. tristate "Poly1305 authenticator algorithm"
  539. select CRYPTO_HASH
  540. help
  541. Poly1305 authenticator algorithm, RFC7539.
  542. Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
  543. It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
  544. in IETF protocols. This is the portable C implementation of Poly1305.
  545. config CRYPTO_POLY1305_X86_64
  546. tristate "Poly1305 authenticator algorithm (x86_64/SSE2/AVX2)"
  547. depends on X86 && 64BIT
  548. select CRYPTO_POLY1305
  549. help
  550. Poly1305 authenticator algorithm, RFC7539.
  551. Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
  552. It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
  553. in IETF protocols. This is the x86_64 assembler implementation using SIMD
  554. instructions.
  555. config CRYPTO_MD4
  556. tristate "MD4 digest algorithm"
  557. select CRYPTO_HASH
  558. help
  559. MD4 message digest algorithm (RFC1320).
  560. config CRYPTO_MD5
  561. tristate "MD5 digest algorithm"
  562. select CRYPTO_HASH
  563. help
  564. MD5 message digest algorithm (RFC1321).
  565. config CRYPTO_MD5_OCTEON
  566. tristate "MD5 digest algorithm (OCTEON)"
  567. depends on CPU_CAVIUM_OCTEON
  568. select CRYPTO_MD5
  569. select CRYPTO_HASH
  570. help
  571. MD5 message digest algorithm (RFC1321) implemented
  572. using OCTEON crypto instructions, when available.
  573. config CRYPTO_MD5_PPC
  574. tristate "MD5 digest algorithm (PPC)"
  575. depends on PPC
  576. select CRYPTO_HASH
  577. help
  578. MD5 message digest algorithm (RFC1321) implemented
  579. in PPC assembler.
  580. config CRYPTO_MD5_SPARC64
  581. tristate "MD5 digest algorithm (SPARC64)"
  582. depends on SPARC64
  583. select CRYPTO_MD5
  584. select CRYPTO_HASH
  585. help
  586. MD5 message digest algorithm (RFC1321) implemented
  587. using sparc64 crypto instructions, when available.
  588. config CRYPTO_MICHAEL_MIC
  589. tristate "Michael MIC keyed digest algorithm"
  590. select CRYPTO_HASH
  591. help
  592. Michael MIC is used for message integrity protection in TKIP
  593. (IEEE 802.11i). This algorithm is required for TKIP, but it
  594. should not be used for other purposes because of the weakness
  595. of the algorithm.
  596. config CRYPTO_RMD128
  597. tristate "RIPEMD-128 digest algorithm"
  598. select CRYPTO_HASH
  599. help
  600. RIPEMD-128 (ISO/IEC 10118-3:2004).
  601. RIPEMD-128 is a 128-bit cryptographic hash function. It should only
  602. be used as a secure replacement for RIPEMD. For other use cases,
  603. RIPEMD-160 should be used.
  604. Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
  605. See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
  606. config CRYPTO_RMD160
  607. tristate "RIPEMD-160 digest algorithm"
  608. select CRYPTO_HASH
  609. help
  610. RIPEMD-160 (ISO/IEC 10118-3:2004).
  611. RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
  612. to be used as a secure replacement for the 128-bit hash functions
  613. MD4, MD5 and it's predecessor RIPEMD
  614. (not to be confused with RIPEMD-128).
  615. It's speed is comparable to SHA1 and there are no known attacks
  616. against RIPEMD-160.
  617. Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
  618. See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
  619. config CRYPTO_RMD256
  620. tristate "RIPEMD-256 digest algorithm"
  621. select CRYPTO_HASH
  622. help
  623. RIPEMD-256 is an optional extension of RIPEMD-128 with a
  624. 256 bit hash. It is intended for applications that require
  625. longer hash-results, without needing a larger security level
  626. (than RIPEMD-128).
  627. Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
  628. See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
  629. config CRYPTO_RMD320
  630. tristate "RIPEMD-320 digest algorithm"
  631. select CRYPTO_HASH
  632. help
  633. RIPEMD-320 is an optional extension of RIPEMD-160 with a
  634. 320 bit hash. It is intended for applications that require
  635. longer hash-results, without needing a larger security level
  636. (than RIPEMD-160).
  637. Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
  638. See <http://homes.esat.kuleuven.be/~bosselae/ripemd160.html>
  639. config CRYPTO_SHA1
  640. tristate "SHA1 digest algorithm"
  641. select CRYPTO_HASH
  642. help
  643. SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
  644. config CRYPTO_SHA1_SSSE3
  645. tristate "SHA1 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
  646. depends on X86 && 64BIT
  647. select CRYPTO_SHA1
  648. select CRYPTO_HASH
  649. help
  650. SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
  651. using Supplemental SSE3 (SSSE3) instructions or Advanced Vector
  652. Extensions (AVX/AVX2) or SHA-NI(SHA Extensions New Instructions),
  653. when available.
  654. config CRYPTO_SHA256_SSSE3
  655. tristate "SHA256 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)"
  656. depends on X86 && 64BIT
  657. select CRYPTO_SHA256
  658. select CRYPTO_HASH
  659. help
  660. SHA-256 secure hash standard (DFIPS 180-2) implemented
  661. using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
  662. Extensions version 1 (AVX1), or Advanced Vector Extensions
  663. version 2 (AVX2) instructions, or SHA-NI (SHA Extensions New
  664. Instructions) when available.
  665. config CRYPTO_SHA512_SSSE3
  666. tristate "SHA512 digest algorithm (SSSE3/AVX/AVX2)"
  667. depends on X86 && 64BIT
  668. select CRYPTO_SHA512
  669. select CRYPTO_HASH
  670. help
  671. SHA-512 secure hash standard (DFIPS 180-2) implemented
  672. using Supplemental SSE3 (SSSE3) instructions, or Advanced Vector
  673. Extensions version 1 (AVX1), or Advanced Vector Extensions
  674. version 2 (AVX2) instructions, when available.
  675. config CRYPTO_SHA1_OCTEON
  676. tristate "SHA1 digest algorithm (OCTEON)"
  677. depends on CPU_CAVIUM_OCTEON
  678. select CRYPTO_SHA1
  679. select CRYPTO_HASH
  680. help
  681. SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
  682. using OCTEON crypto instructions, when available.
  683. config CRYPTO_SHA1_SPARC64
  684. tristate "SHA1 digest algorithm (SPARC64)"
  685. depends on SPARC64
  686. select CRYPTO_SHA1
  687. select CRYPTO_HASH
  688. help
  689. SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
  690. using sparc64 crypto instructions, when available.
  691. config CRYPTO_SHA1_PPC
  692. tristate "SHA1 digest algorithm (powerpc)"
  693. depends on PPC
  694. help
  695. This is the powerpc hardware accelerated implementation of the
  696. SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
  697. config CRYPTO_SHA1_PPC_SPE
  698. tristate "SHA1 digest algorithm (PPC SPE)"
  699. depends on PPC && SPE
  700. help
  701. SHA-1 secure hash standard (DFIPS 180-4) implemented
  702. using powerpc SPE SIMD instruction set.
  703. config CRYPTO_SHA1_MB
  704. tristate "SHA1 digest algorithm (x86_64 Multi-Buffer, Experimental)"
  705. depends on X86 && 64BIT
  706. select CRYPTO_SHA1
  707. select CRYPTO_HASH
  708. select CRYPTO_MCRYPTD
  709. help
  710. SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
  711. using multi-buffer technique. This algorithm computes on
  712. multiple data lanes concurrently with SIMD instructions for
  713. better throughput. It should not be enabled by default but
  714. used when there is significant amount of work to keep the keep
  715. the data lanes filled to get performance benefit. If the data
  716. lanes remain unfilled, a flush operation will be initiated to
  717. process the crypto jobs, adding a slight latency.
  718. config CRYPTO_SHA256_MB
  719. tristate "SHA256 digest algorithm (x86_64 Multi-Buffer, Experimental)"
  720. depends on X86 && 64BIT
  721. select CRYPTO_SHA256
  722. select CRYPTO_HASH
  723. select CRYPTO_MCRYPTD
  724. help
  725. SHA-256 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
  726. using multi-buffer technique. This algorithm computes on
  727. multiple data lanes concurrently with SIMD instructions for
  728. better throughput. It should not be enabled by default but
  729. used when there is significant amount of work to keep the keep
  730. the data lanes filled to get performance benefit. If the data
  731. lanes remain unfilled, a flush operation will be initiated to
  732. process the crypto jobs, adding a slight latency.
  733. config CRYPTO_SHA512_MB
  734. tristate "SHA512 digest algorithm (x86_64 Multi-Buffer, Experimental)"
  735. depends on X86 && 64BIT
  736. select CRYPTO_SHA512
  737. select CRYPTO_HASH
  738. select CRYPTO_MCRYPTD
  739. help
  740. SHA-512 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
  741. using multi-buffer technique. This algorithm computes on
  742. multiple data lanes concurrently with SIMD instructions for
  743. better throughput. It should not be enabled by default but
  744. used when there is significant amount of work to keep the keep
  745. the data lanes filled to get performance benefit. If the data
  746. lanes remain unfilled, a flush operation will be initiated to
  747. process the crypto jobs, adding a slight latency.
  748. config CRYPTO_SHA256
  749. tristate "SHA224 and SHA256 digest algorithm"
  750. select CRYPTO_HASH
  751. help
  752. SHA256 secure hash standard (DFIPS 180-2).
  753. This version of SHA implements a 256 bit hash with 128 bits of
  754. security against collision attacks.
  755. This code also includes SHA-224, a 224 bit hash with 112 bits
  756. of security against collision attacks.
  757. config CRYPTO_SHA256_PPC_SPE
  758. tristate "SHA224 and SHA256 digest algorithm (PPC SPE)"
  759. depends on PPC && SPE
  760. select CRYPTO_SHA256
  761. select CRYPTO_HASH
  762. help
  763. SHA224 and SHA256 secure hash standard (DFIPS 180-2)
  764. implemented using powerpc SPE SIMD instruction set.
  765. config CRYPTO_SHA256_OCTEON
  766. tristate "SHA224 and SHA256 digest algorithm (OCTEON)"
  767. depends on CPU_CAVIUM_OCTEON
  768. select CRYPTO_SHA256
  769. select CRYPTO_HASH
  770. help
  771. SHA-256 secure hash standard (DFIPS 180-2) implemented
  772. using OCTEON crypto instructions, when available.
  773. config CRYPTO_SHA256_SPARC64
  774. tristate "SHA224 and SHA256 digest algorithm (SPARC64)"
  775. depends on SPARC64
  776. select CRYPTO_SHA256
  777. select CRYPTO_HASH
  778. help
  779. SHA-256 secure hash standard (DFIPS 180-2) implemented
  780. using sparc64 crypto instructions, when available.
  781. config CRYPTO_SHA512
  782. tristate "SHA384 and SHA512 digest algorithms"
  783. select CRYPTO_HASH
  784. help
  785. SHA512 secure hash standard (DFIPS 180-2).
  786. This version of SHA implements a 512 bit hash with 256 bits of
  787. security against collision attacks.
  788. This code also includes SHA-384, a 384 bit hash with 192 bits
  789. of security against collision attacks.
  790. config CRYPTO_SHA512_OCTEON
  791. tristate "SHA384 and SHA512 digest algorithms (OCTEON)"
  792. depends on CPU_CAVIUM_OCTEON
  793. select CRYPTO_SHA512
  794. select CRYPTO_HASH
  795. help
  796. SHA-512 secure hash standard (DFIPS 180-2) implemented
  797. using OCTEON crypto instructions, when available.
  798. config CRYPTO_SHA512_SPARC64
  799. tristate "SHA384 and SHA512 digest algorithm (SPARC64)"
  800. depends on SPARC64
  801. select CRYPTO_SHA512
  802. select CRYPTO_HASH
  803. help
  804. SHA-512 secure hash standard (DFIPS 180-2) implemented
  805. using sparc64 crypto instructions, when available.
  806. config CRYPTO_SHA3
  807. tristate "SHA3 digest algorithm"
  808. select CRYPTO_HASH
  809. help
  810. SHA-3 secure hash standard (DFIPS 202). It's based on
  811. cryptographic sponge function family called Keccak.
  812. References:
  813. http://keccak.noekeon.org/
  814. config CRYPTO_SM3
  815. tristate "SM3 digest algorithm"
  816. select CRYPTO_HASH
  817. help
  818. SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3).
  819. It is part of the Chinese Commercial Cryptography suite.
  820. References:
  821. http://www.oscca.gov.cn/UpFile/20101222141857786.pdf
  822. https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash
  823. config CRYPTO_TGR192
  824. tristate "Tiger digest algorithms"
  825. select CRYPTO_HASH
  826. help
  827. Tiger hash algorithm 192, 160 and 128-bit hashes
  828. Tiger is a hash function optimized for 64-bit processors while
  829. still having decent performance on 32-bit processors.
  830. Tiger was developed by Ross Anderson and Eli Biham.
  831. See also:
  832. <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
  833. config CRYPTO_WP512
  834. tristate "Whirlpool digest algorithms"
  835. select CRYPTO_HASH
  836. help
  837. Whirlpool hash algorithm 512, 384 and 256-bit hashes
  838. Whirlpool-512 is part of the NESSIE cryptographic primitives.
  839. Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
  840. See also:
  841. <http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html>
  842. config CRYPTO_GHASH_CLMUL_NI_INTEL
  843. tristate "GHASH digest algorithm (CLMUL-NI accelerated)"
  844. depends on X86 && 64BIT
  845. select CRYPTO_CRYPTD
  846. help
  847. GHASH is message digest algorithm for GCM (Galois/Counter Mode).
  848. The implementation is accelerated by CLMUL-NI of Intel.
  849. comment "Ciphers"
  850. config CRYPTO_AES
  851. tristate "AES cipher algorithms"
  852. select CRYPTO_ALGAPI
  853. help
  854. AES cipher algorithms (FIPS-197). AES uses the Rijndael
  855. algorithm.
  856. Rijndael appears to be consistently a very good performer in
  857. both hardware and software across a wide range of computing
  858. environments regardless of its use in feedback or non-feedback
  859. modes. Its key setup time is excellent, and its key agility is
  860. good. Rijndael's very low memory requirements make it very well
  861. suited for restricted-space environments, in which it also
  862. demonstrates excellent performance. Rijndael's operations are
  863. among the easiest to defend against power and timing attacks.
  864. The AES specifies three key sizes: 128, 192 and 256 bits
  865. See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
  866. config CRYPTO_AES_TI
  867. tristate "Fixed time AES cipher"
  868. select CRYPTO_ALGAPI
  869. help
  870. This is a generic implementation of AES that attempts to eliminate
  871. data dependent latencies as much as possible without affecting
  872. performance too much. It is intended for use by the generic CCM
  873. and GCM drivers, and other CTR or CMAC/XCBC based modes that rely
  874. solely on encryption (although decryption is supported as well, but
  875. with a more dramatic performance hit)
  876. Instead of using 16 lookup tables of 1 KB each, (8 for encryption and
  877. 8 for decryption), this implementation only uses just two S-boxes of
  878. 256 bytes each, and attempts to eliminate data dependent latencies by
  879. prefetching the entire table into the cache at the start of each
  880. block.
  881. config CRYPTO_AES_586
  882. tristate "AES cipher algorithms (i586)"
  883. depends on (X86 || UML_X86) && !64BIT
  884. select CRYPTO_ALGAPI
  885. select CRYPTO_AES
  886. help
  887. AES cipher algorithms (FIPS-197). AES uses the Rijndael
  888. algorithm.
  889. Rijndael appears to be consistently a very good performer in
  890. both hardware and software across a wide range of computing
  891. environments regardless of its use in feedback or non-feedback
  892. modes. Its key setup time is excellent, and its key agility is
  893. good. Rijndael's very low memory requirements make it very well
  894. suited for restricted-space environments, in which it also
  895. demonstrates excellent performance. Rijndael's operations are
  896. among the easiest to defend against power and timing attacks.
  897. The AES specifies three key sizes: 128, 192 and 256 bits
  898. See <http://csrc.nist.gov/encryption/aes/> for more information.
  899. config CRYPTO_AES_X86_64
  900. tristate "AES cipher algorithms (x86_64)"
  901. depends on (X86 || UML_X86) && 64BIT
  902. select CRYPTO_ALGAPI
  903. select CRYPTO_AES
  904. help
  905. AES cipher algorithms (FIPS-197). AES uses the Rijndael
  906. algorithm.
  907. Rijndael appears to be consistently a very good performer in
  908. both hardware and software across a wide range of computing
  909. environments regardless of its use in feedback or non-feedback
  910. modes. Its key setup time is excellent, and its key agility is
  911. good. Rijndael's very low memory requirements make it very well
  912. suited for restricted-space environments, in which it also
  913. demonstrates excellent performance. Rijndael's operations are
  914. among the easiest to defend against power and timing attacks.
  915. The AES specifies three key sizes: 128, 192 and 256 bits
  916. See <http://csrc.nist.gov/encryption/aes/> for more information.
  917. config CRYPTO_AES_NI_INTEL
  918. tristate "AES cipher algorithms (AES-NI)"
  919. depends on X86
  920. select CRYPTO_AEAD
  921. select CRYPTO_AES_X86_64 if 64BIT
  922. select CRYPTO_AES_586 if !64BIT
  923. select CRYPTO_ALGAPI
  924. select CRYPTO_BLKCIPHER
  925. select CRYPTO_GLUE_HELPER_X86 if 64BIT
  926. select CRYPTO_SIMD
  927. help
  928. Use Intel AES-NI instructions for AES algorithm.
  929. AES cipher algorithms (FIPS-197). AES uses the Rijndael
  930. algorithm.
  931. Rijndael appears to be consistently a very good performer in
  932. both hardware and software across a wide range of computing
  933. environments regardless of its use in feedback or non-feedback
  934. modes. Its key setup time is excellent, and its key agility is
  935. good. Rijndael's very low memory requirements make it very well
  936. suited for restricted-space environments, in which it also
  937. demonstrates excellent performance. Rijndael's operations are
  938. among the easiest to defend against power and timing attacks.
  939. The AES specifies three key sizes: 128, 192 and 256 bits
  940. See <http://csrc.nist.gov/encryption/aes/> for more information.
  941. In addition to AES cipher algorithm support, the acceleration
  942. for some popular block cipher mode is supported too, including
  943. ECB, CBC, LRW, PCBC, XTS. The 64 bit version has additional
  944. acceleration for CTR.
  945. config CRYPTO_AES_SPARC64
  946. tristate "AES cipher algorithms (SPARC64)"
  947. depends on SPARC64
  948. select CRYPTO_CRYPTD
  949. select CRYPTO_ALGAPI
  950. help
  951. Use SPARC64 crypto opcodes for AES algorithm.
  952. AES cipher algorithms (FIPS-197). AES uses the Rijndael
  953. algorithm.
  954. Rijndael appears to be consistently a very good performer in
  955. both hardware and software across a wide range of computing
  956. environments regardless of its use in feedback or non-feedback
  957. modes. Its key setup time is excellent, and its key agility is
  958. good. Rijndael's very low memory requirements make it very well
  959. suited for restricted-space environments, in which it also
  960. demonstrates excellent performance. Rijndael's operations are
  961. among the easiest to defend against power and timing attacks.
  962. The AES specifies three key sizes: 128, 192 and 256 bits
  963. See <http://csrc.nist.gov/encryption/aes/> for more information.
  964. In addition to AES cipher algorithm support, the acceleration
  965. for some popular block cipher mode is supported too, including
  966. ECB and CBC.
  967. config CRYPTO_AES_PPC_SPE
  968. tristate "AES cipher algorithms (PPC SPE)"
  969. depends on PPC && SPE
  970. help
  971. AES cipher algorithms (FIPS-197). Additionally the acceleration
  972. for popular block cipher modes ECB, CBC, CTR and XTS is supported.
  973. This module should only be used for low power (router) devices
  974. without hardware AES acceleration (e.g. caam crypto). It reduces the
  975. size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
  976. timining attacks. Nevertheless it might be not as secure as other
  977. architecture specific assembler implementations that work on 1KB
  978. tables or 256 bytes S-boxes.
  979. config CRYPTO_ANUBIS
  980. tristate "Anubis cipher algorithm"
  981. select CRYPTO_ALGAPI
  982. help
  983. Anubis cipher algorithm.
  984. Anubis is a variable key length cipher which can use keys from
  985. 128 bits to 320 bits in length. It was evaluated as a entrant
  986. in the NESSIE competition.
  987. See also:
  988. <https://www.cosic.esat.kuleuven.be/nessie/reports/>
  989. <http://www.larc.usp.br/~pbarreto/AnubisPage.html>
  990. config CRYPTO_ARC4
  991. tristate "ARC4 cipher algorithm"
  992. select CRYPTO_BLKCIPHER
  993. help
  994. ARC4 cipher algorithm.
  995. ARC4 is a stream cipher using keys ranging from 8 bits to 2048
  996. bits in length. This algorithm is required for driver-based
  997. WEP, but it should not be for other purposes because of the
  998. weakness of the algorithm.
  999. config CRYPTO_BLOWFISH
  1000. tristate "Blowfish cipher algorithm"
  1001. select CRYPTO_ALGAPI
  1002. select CRYPTO_BLOWFISH_COMMON
  1003. help
  1004. Blowfish cipher algorithm, by Bruce Schneier.
  1005. This is a variable key length cipher which can use keys from 32
  1006. bits to 448 bits in length. It's fast, simple and specifically
  1007. designed for use on "large microprocessors".
  1008. See also:
  1009. <http://www.schneier.com/blowfish.html>
  1010. config CRYPTO_BLOWFISH_COMMON
  1011. tristate
  1012. help
  1013. Common parts of the Blowfish cipher algorithm shared by the
  1014. generic c and the assembler implementations.
  1015. See also:
  1016. <http://www.schneier.com/blowfish.html>
  1017. config CRYPTO_BLOWFISH_X86_64
  1018. tristate "Blowfish cipher algorithm (x86_64)"
  1019. depends on X86 && 64BIT
  1020. select CRYPTO_BLKCIPHER
  1021. select CRYPTO_BLOWFISH_COMMON
  1022. help
  1023. Blowfish cipher algorithm (x86_64), by Bruce Schneier.
  1024. This is a variable key length cipher which can use keys from 32
  1025. bits to 448 bits in length. It's fast, simple and specifically
  1026. designed for use on "large microprocessors".
  1027. See also:
  1028. <http://www.schneier.com/blowfish.html>
  1029. config CRYPTO_CAMELLIA
  1030. tristate "Camellia cipher algorithms"
  1031. depends on CRYPTO
  1032. select CRYPTO_ALGAPI
  1033. help
  1034. Camellia cipher algorithms module.
  1035. Camellia is a symmetric key block cipher developed jointly
  1036. at NTT and Mitsubishi Electric Corporation.
  1037. The Camellia specifies three key sizes: 128, 192 and 256 bits.
  1038. See also:
  1039. <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
  1040. config CRYPTO_CAMELLIA_X86_64
  1041. tristate "Camellia cipher algorithm (x86_64)"
  1042. depends on X86 && 64BIT
  1043. depends on CRYPTO
  1044. select CRYPTO_BLKCIPHER
  1045. select CRYPTO_GLUE_HELPER_X86
  1046. help
  1047. Camellia cipher algorithm module (x86_64).
  1048. Camellia is a symmetric key block cipher developed jointly
  1049. at NTT and Mitsubishi Electric Corporation.
  1050. The Camellia specifies three key sizes: 128, 192 and 256 bits.
  1051. See also:
  1052. <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
  1053. config CRYPTO_CAMELLIA_AESNI_AVX_X86_64
  1054. tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX)"
  1055. depends on X86 && 64BIT
  1056. depends on CRYPTO
  1057. select CRYPTO_BLKCIPHER
  1058. select CRYPTO_CAMELLIA_X86_64
  1059. select CRYPTO_GLUE_HELPER_X86
  1060. select CRYPTO_SIMD
  1061. select CRYPTO_XTS
  1062. help
  1063. Camellia cipher algorithm module (x86_64/AES-NI/AVX).
  1064. Camellia is a symmetric key block cipher developed jointly
  1065. at NTT and Mitsubishi Electric Corporation.
  1066. The Camellia specifies three key sizes: 128, 192 and 256 bits.
  1067. See also:
  1068. <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
  1069. config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
  1070. tristate "Camellia cipher algorithm (x86_64/AES-NI/AVX2)"
  1071. depends on X86 && 64BIT
  1072. depends on CRYPTO
  1073. select CRYPTO_CAMELLIA_AESNI_AVX_X86_64
  1074. help
  1075. Camellia cipher algorithm module (x86_64/AES-NI/AVX2).
  1076. Camellia is a symmetric key block cipher developed jointly
  1077. at NTT and Mitsubishi Electric Corporation.
  1078. The Camellia specifies three key sizes: 128, 192 and 256 bits.
  1079. See also:
  1080. <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
  1081. config CRYPTO_CAMELLIA_SPARC64
  1082. tristate "Camellia cipher algorithm (SPARC64)"
  1083. depends on SPARC64
  1084. depends on CRYPTO
  1085. select CRYPTO_ALGAPI
  1086. help
  1087. Camellia cipher algorithm module (SPARC64).
  1088. Camellia is a symmetric key block cipher developed jointly
  1089. at NTT and Mitsubishi Electric Corporation.
  1090. The Camellia specifies three key sizes: 128, 192 and 256 bits.
  1091. See also:
  1092. <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
  1093. config CRYPTO_CAST_COMMON
  1094. tristate
  1095. help
  1096. Common parts of the CAST cipher algorithms shared by the
  1097. generic c and the assembler implementations.
  1098. config CRYPTO_CAST5
  1099. tristate "CAST5 (CAST-128) cipher algorithm"
  1100. select CRYPTO_ALGAPI
  1101. select CRYPTO_CAST_COMMON
  1102. help
  1103. The CAST5 encryption algorithm (synonymous with CAST-128) is
  1104. described in RFC2144.
  1105. config CRYPTO_CAST5_AVX_X86_64
  1106. tristate "CAST5 (CAST-128) cipher algorithm (x86_64/AVX)"
  1107. depends on X86 && 64BIT
  1108. select CRYPTO_BLKCIPHER
  1109. select CRYPTO_CAST5
  1110. select CRYPTO_CAST_COMMON
  1111. select CRYPTO_SIMD
  1112. help
  1113. The CAST5 encryption algorithm (synonymous with CAST-128) is
  1114. described in RFC2144.
  1115. This module provides the Cast5 cipher algorithm that processes
  1116. sixteen blocks parallel using the AVX instruction set.
  1117. config CRYPTO_CAST6
  1118. tristate "CAST6 (CAST-256) cipher algorithm"
  1119. select CRYPTO_ALGAPI
  1120. select CRYPTO_CAST_COMMON
  1121. help
  1122. The CAST6 encryption algorithm (synonymous with CAST-256) is
  1123. described in RFC2612.
  1124. config CRYPTO_CAST6_AVX_X86_64
  1125. tristate "CAST6 (CAST-256) cipher algorithm (x86_64/AVX)"
  1126. depends on X86 && 64BIT
  1127. select CRYPTO_BLKCIPHER
  1128. select CRYPTO_CAST6
  1129. select CRYPTO_CAST_COMMON
  1130. select CRYPTO_GLUE_HELPER_X86
  1131. select CRYPTO_SIMD
  1132. select CRYPTO_XTS
  1133. help
  1134. The CAST6 encryption algorithm (synonymous with CAST-256) is
  1135. described in RFC2612.
  1136. This module provides the Cast6 cipher algorithm that processes
  1137. eight blocks parallel using the AVX instruction set.
  1138. config CRYPTO_DES
  1139. tristate "DES and Triple DES EDE cipher algorithms"
  1140. select CRYPTO_ALGAPI
  1141. help
  1142. DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
  1143. config CRYPTO_DES_SPARC64
  1144. tristate "DES and Triple DES EDE cipher algorithms (SPARC64)"
  1145. depends on SPARC64
  1146. select CRYPTO_ALGAPI
  1147. select CRYPTO_DES
  1148. help
  1149. DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3),
  1150. optimized using SPARC64 crypto opcodes.
  1151. config CRYPTO_DES3_EDE_X86_64
  1152. tristate "Triple DES EDE cipher algorithm (x86-64)"
  1153. depends on X86 && 64BIT
  1154. select CRYPTO_BLKCIPHER
  1155. select CRYPTO_DES
  1156. help
  1157. Triple DES EDE (FIPS 46-3) algorithm.
  1158. This module provides implementation of the Triple DES EDE cipher
  1159. algorithm that is optimized for x86-64 processors. Two versions of
  1160. algorithm are provided; regular processing one input block and
  1161. one that processes three blocks parallel.
  1162. config CRYPTO_FCRYPT
  1163. tristate "FCrypt cipher algorithm"
  1164. select CRYPTO_ALGAPI
  1165. select CRYPTO_BLKCIPHER
  1166. help
  1167. FCrypt algorithm used by RxRPC.
  1168. config CRYPTO_KHAZAD
  1169. tristate "Khazad cipher algorithm"
  1170. select CRYPTO_ALGAPI
  1171. help
  1172. Khazad cipher algorithm.
  1173. Khazad was a finalist in the initial NESSIE competition. It is
  1174. an algorithm optimized for 64-bit processors with good performance
  1175. on 32-bit processors. Khazad uses an 128 bit key size.
  1176. See also:
  1177. <http://www.larc.usp.br/~pbarreto/KhazadPage.html>
  1178. config CRYPTO_SALSA20
  1179. tristate "Salsa20 stream cipher algorithm"
  1180. select CRYPTO_BLKCIPHER
  1181. help
  1182. Salsa20 stream cipher algorithm.
  1183. Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
  1184. Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
  1185. The Salsa20 stream cipher algorithm is designed by Daniel J.
  1186. Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
  1187. config CRYPTO_SALSA20_586
  1188. tristate "Salsa20 stream cipher algorithm (i586)"
  1189. depends on (X86 || UML_X86) && !64BIT
  1190. select CRYPTO_BLKCIPHER
  1191. select CRYPTO_SALSA20
  1192. help
  1193. Salsa20 stream cipher algorithm.
  1194. Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
  1195. Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
  1196. The Salsa20 stream cipher algorithm is designed by Daniel J.
  1197. Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
  1198. config CRYPTO_SALSA20_X86_64
  1199. tristate "Salsa20 stream cipher algorithm (x86_64)"
  1200. depends on (X86 || UML_X86) && 64BIT
  1201. select CRYPTO_BLKCIPHER
  1202. select CRYPTO_SALSA20
  1203. help
  1204. Salsa20 stream cipher algorithm.
  1205. Salsa20 is a stream cipher submitted to eSTREAM, the ECRYPT
  1206. Stream Cipher Project. See <http://www.ecrypt.eu.org/stream/>
  1207. The Salsa20 stream cipher algorithm is designed by Daniel J.
  1208. Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html>
  1209. config CRYPTO_CHACHA20
  1210. tristate "ChaCha20 cipher algorithm"
  1211. select CRYPTO_BLKCIPHER
  1212. help
  1213. ChaCha20 cipher algorithm, RFC7539.
  1214. ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
  1215. Bernstein and further specified in RFC7539 for use in IETF protocols.
  1216. This is the portable C implementation of ChaCha20.
  1217. See also:
  1218. <http://cr.yp.to/chacha/chacha-20080128.pdf>
  1219. config CRYPTO_CHACHA20_X86_64
  1220. tristate "ChaCha20 cipher algorithm (x86_64/SSSE3/AVX2)"
  1221. depends on X86 && 64BIT
  1222. select CRYPTO_BLKCIPHER
  1223. select CRYPTO_CHACHA20
  1224. help
  1225. ChaCha20 cipher algorithm, RFC7539.
  1226. ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
  1227. Bernstein and further specified in RFC7539 for use in IETF protocols.
  1228. This is the x86_64 assembler implementation using SIMD instructions.
  1229. See also:
  1230. <http://cr.yp.to/chacha/chacha-20080128.pdf>
  1231. config CRYPTO_SEED
  1232. tristate "SEED cipher algorithm"
  1233. select CRYPTO_ALGAPI
  1234. help
  1235. SEED cipher algorithm (RFC4269).
  1236. SEED is a 128-bit symmetric key block cipher that has been
  1237. developed by KISA (Korea Information Security Agency) as a
  1238. national standard encryption algorithm of the Republic of Korea.
  1239. It is a 16 round block cipher with the key size of 128 bit.
  1240. See also:
  1241. <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
  1242. config CRYPTO_SERPENT
  1243. tristate "Serpent cipher algorithm"
  1244. select CRYPTO_ALGAPI
  1245. help
  1246. Serpent cipher algorithm, by Anderson, Biham & Knudsen.
  1247. Keys are allowed to be from 0 to 256 bits in length, in steps
  1248. of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
  1249. variant of Serpent for compatibility with old kerneli.org code.
  1250. See also:
  1251. <http://www.cl.cam.ac.uk/~rja14/serpent.html>
  1252. config CRYPTO_SERPENT_SSE2_X86_64
  1253. tristate "Serpent cipher algorithm (x86_64/SSE2)"
  1254. depends on X86 && 64BIT
  1255. select CRYPTO_BLKCIPHER
  1256. select CRYPTO_GLUE_HELPER_X86
  1257. select CRYPTO_SERPENT
  1258. select CRYPTO_SIMD
  1259. help
  1260. Serpent cipher algorithm, by Anderson, Biham & Knudsen.
  1261. Keys are allowed to be from 0 to 256 bits in length, in steps
  1262. of 8 bits.
  1263. This module provides Serpent cipher algorithm that processes eight
  1264. blocks parallel using SSE2 instruction set.
  1265. See also:
  1266. <http://www.cl.cam.ac.uk/~rja14/serpent.html>
  1267. config CRYPTO_SERPENT_SSE2_586
  1268. tristate "Serpent cipher algorithm (i586/SSE2)"
  1269. depends on X86 && !64BIT
  1270. select CRYPTO_BLKCIPHER
  1271. select CRYPTO_GLUE_HELPER_X86
  1272. select CRYPTO_SERPENT
  1273. select CRYPTO_SIMD
  1274. help
  1275. Serpent cipher algorithm, by Anderson, Biham & Knudsen.
  1276. Keys are allowed to be from 0 to 256 bits in length, in steps
  1277. of 8 bits.
  1278. This module provides Serpent cipher algorithm that processes four
  1279. blocks parallel using SSE2 instruction set.
  1280. See also:
  1281. <http://www.cl.cam.ac.uk/~rja14/serpent.html>
  1282. config CRYPTO_SERPENT_AVX_X86_64
  1283. tristate "Serpent cipher algorithm (x86_64/AVX)"
  1284. depends on X86 && 64BIT
  1285. select CRYPTO_BLKCIPHER
  1286. select CRYPTO_GLUE_HELPER_X86
  1287. select CRYPTO_SERPENT
  1288. select CRYPTO_SIMD
  1289. select CRYPTO_XTS
  1290. help
  1291. Serpent cipher algorithm, by Anderson, Biham & Knudsen.
  1292. Keys are allowed to be from 0 to 256 bits in length, in steps
  1293. of 8 bits.
  1294. This module provides the Serpent cipher algorithm that processes
  1295. eight blocks parallel using the AVX instruction set.
  1296. See also:
  1297. <http://www.cl.cam.ac.uk/~rja14/serpent.html>
  1298. config CRYPTO_SERPENT_AVX2_X86_64
  1299. tristate "Serpent cipher algorithm (x86_64/AVX2)"
  1300. depends on X86 && 64BIT
  1301. select CRYPTO_SERPENT_AVX_X86_64
  1302. help
  1303. Serpent cipher algorithm, by Anderson, Biham & Knudsen.
  1304. Keys are allowed to be from 0 to 256 bits in length, in steps
  1305. of 8 bits.
  1306. This module provides Serpent cipher algorithm that processes 16
  1307. blocks parallel using AVX2 instruction set.
  1308. See also:
  1309. <http://www.cl.cam.ac.uk/~rja14/serpent.html>
  1310. config CRYPTO_SM4
  1311. tristate "SM4 cipher algorithm"
  1312. select CRYPTO_ALGAPI
  1313. help
  1314. SM4 cipher algorithms (OSCCA GB/T 32907-2016).
  1315. SM4 (GBT.32907-2016) is a cryptographic standard issued by the
  1316. Organization of State Commercial Administration of China (OSCCA)
  1317. as an authorized cryptographic algorithms for the use within China.
  1318. SMS4 was originally created for use in protecting wireless
  1319. networks, and is mandated in the Chinese National Standard for
  1320. Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure)
  1321. (GB.15629.11-2003).
  1322. The latest SM4 standard (GBT.32907-2016) was proposed by OSCCA and
  1323. standardized through TC 260 of the Standardization Administration
  1324. of the People's Republic of China (SAC).
  1325. The input, output, and key of SMS4 are each 128 bits.
  1326. See also: <https://eprint.iacr.org/2008/329.pdf>
  1327. If unsure, say N.
  1328. config CRYPTO_SPECK
  1329. tristate "Speck cipher algorithm"
  1330. select CRYPTO_ALGAPI
  1331. help
  1332. Speck is a lightweight block cipher that is tuned for optimal
  1333. performance in software (rather than hardware).
  1334. Speck may not be as secure as AES, and should only be used on systems
  1335. where AES is not fast enough.
  1336. See also: <https://eprint.iacr.org/2013/404.pdf>
  1337. If unsure, say N.
  1338. config CRYPTO_TEA
  1339. tristate "TEA, XTEA and XETA cipher algorithms"
  1340. select CRYPTO_ALGAPI
  1341. help
  1342. TEA cipher algorithm.
  1343. Tiny Encryption Algorithm is a simple cipher that uses
  1344. many rounds for security. It is very fast and uses
  1345. little memory.
  1346. Xtendend Tiny Encryption Algorithm is a modification to
  1347. the TEA algorithm to address a potential key weakness
  1348. in the TEA algorithm.
  1349. Xtendend Encryption Tiny Algorithm is a mis-implementation
  1350. of the XTEA algorithm for compatibility purposes.
  1351. config CRYPTO_TWOFISH
  1352. tristate "Twofish cipher algorithm"
  1353. select CRYPTO_ALGAPI
  1354. select CRYPTO_TWOFISH_COMMON
  1355. help
  1356. Twofish cipher algorithm.
  1357. Twofish was submitted as an AES (Advanced Encryption Standard)
  1358. candidate cipher by researchers at CounterPane Systems. It is a
  1359. 16 round block cipher supporting key sizes of 128, 192, and 256
  1360. bits.
  1361. See also:
  1362. <http://www.schneier.com/twofish.html>
  1363. config CRYPTO_TWOFISH_COMMON
  1364. tristate
  1365. help
  1366. Common parts of the Twofish cipher algorithm shared by the
  1367. generic c and the assembler implementations.
  1368. config CRYPTO_TWOFISH_586
  1369. tristate "Twofish cipher algorithms (i586)"
  1370. depends on (X86 || UML_X86) && !64BIT
  1371. select CRYPTO_ALGAPI
  1372. select CRYPTO_TWOFISH_COMMON
  1373. help
  1374. Twofish cipher algorithm.
  1375. Twofish was submitted as an AES (Advanced Encryption Standard)
  1376. candidate cipher by researchers at CounterPane Systems. It is a
  1377. 16 round block cipher supporting key sizes of 128, 192, and 256
  1378. bits.
  1379. See also:
  1380. <http://www.schneier.com/twofish.html>
  1381. config CRYPTO_TWOFISH_X86_64
  1382. tristate "Twofish cipher algorithm (x86_64)"
  1383. depends on (X86 || UML_X86) && 64BIT
  1384. select CRYPTO_ALGAPI
  1385. select CRYPTO_TWOFISH_COMMON
  1386. help
  1387. Twofish cipher algorithm (x86_64).
  1388. Twofish was submitted as an AES (Advanced Encryption Standard)
  1389. candidate cipher by researchers at CounterPane Systems. It is a
  1390. 16 round block cipher supporting key sizes of 128, 192, and 256
  1391. bits.
  1392. See also:
  1393. <http://www.schneier.com/twofish.html>
  1394. config CRYPTO_TWOFISH_X86_64_3WAY
  1395. tristate "Twofish cipher algorithm (x86_64, 3-way parallel)"
  1396. depends on X86 && 64BIT
  1397. select CRYPTO_BLKCIPHER
  1398. select CRYPTO_TWOFISH_COMMON
  1399. select CRYPTO_TWOFISH_X86_64
  1400. select CRYPTO_GLUE_HELPER_X86
  1401. help
  1402. Twofish cipher algorithm (x86_64, 3-way parallel).
  1403. Twofish was submitted as an AES (Advanced Encryption Standard)
  1404. candidate cipher by researchers at CounterPane Systems. It is a
  1405. 16 round block cipher supporting key sizes of 128, 192, and 256
  1406. bits.
  1407. This module provides Twofish cipher algorithm that processes three
  1408. blocks parallel, utilizing resources of out-of-order CPUs better.
  1409. See also:
  1410. <http://www.schneier.com/twofish.html>
  1411. config CRYPTO_TWOFISH_AVX_X86_64
  1412. tristate "Twofish cipher algorithm (x86_64/AVX)"
  1413. depends on X86 && 64BIT
  1414. select CRYPTO_BLKCIPHER
  1415. select CRYPTO_GLUE_HELPER_X86
  1416. select CRYPTO_SIMD
  1417. select CRYPTO_TWOFISH_COMMON
  1418. select CRYPTO_TWOFISH_X86_64
  1419. select CRYPTO_TWOFISH_X86_64_3WAY
  1420. help
  1421. Twofish cipher algorithm (x86_64/AVX).
  1422. Twofish was submitted as an AES (Advanced Encryption Standard)
  1423. candidate cipher by researchers at CounterPane Systems. It is a
  1424. 16 round block cipher supporting key sizes of 128, 192, and 256
  1425. bits.
  1426. This module provides the Twofish cipher algorithm that processes
  1427. eight blocks parallel using the AVX Instruction Set.
  1428. See also:
  1429. <http://www.schneier.com/twofish.html>
  1430. comment "Compression"
  1431. config CRYPTO_DEFLATE
  1432. tristate "Deflate compression algorithm"
  1433. select CRYPTO_ALGAPI
  1434. select CRYPTO_ACOMP2
  1435. select ZLIB_INFLATE
  1436. select ZLIB_DEFLATE
  1437. help
  1438. This is the Deflate algorithm (RFC1951), specified for use in
  1439. IPSec with the IPCOMP protocol (RFC3173, RFC2394).
  1440. You will most probably want this if using IPSec.
  1441. config CRYPTO_LZO
  1442. tristate "LZO compression algorithm"
  1443. select CRYPTO_ALGAPI
  1444. select CRYPTO_ACOMP2
  1445. select LZO_COMPRESS
  1446. select LZO_DECOMPRESS
  1447. help
  1448. This is the LZO algorithm.
  1449. config CRYPTO_842
  1450. tristate "842 compression algorithm"
  1451. select CRYPTO_ALGAPI
  1452. select CRYPTO_ACOMP2
  1453. select 842_COMPRESS
  1454. select 842_DECOMPRESS
  1455. help
  1456. This is the 842 algorithm.
  1457. config CRYPTO_LZ4
  1458. tristate "LZ4 compression algorithm"
  1459. select CRYPTO_ALGAPI
  1460. select CRYPTO_ACOMP2
  1461. select LZ4_COMPRESS
  1462. select LZ4_DECOMPRESS
  1463. help
  1464. This is the LZ4 algorithm.
  1465. config CRYPTO_LZ4HC
  1466. tristate "LZ4HC compression algorithm"
  1467. select CRYPTO_ALGAPI
  1468. select CRYPTO_ACOMP2
  1469. select LZ4HC_COMPRESS
  1470. select LZ4_DECOMPRESS
  1471. help
  1472. This is the LZ4 high compression mode algorithm.
  1473. config CRYPTO_ZSTD
  1474. tristate "Zstd compression algorithm"
  1475. select CRYPTO_ALGAPI
  1476. select CRYPTO_ACOMP2
  1477. select ZSTD_COMPRESS
  1478. select ZSTD_DECOMPRESS
  1479. help
  1480. This is the zstd algorithm.
  1481. comment "Random Number Generation"
  1482. config CRYPTO_ANSI_CPRNG
  1483. tristate "Pseudo Random Number Generation for Cryptographic modules"
  1484. select CRYPTO_AES
  1485. select CRYPTO_RNG
  1486. help
  1487. This option enables the generic pseudo random number generator
  1488. for cryptographic modules. Uses the Algorithm specified in
  1489. ANSI X9.31 A.2.4. Note that this option must be enabled if
  1490. CRYPTO_FIPS is selected
  1491. menuconfig CRYPTO_DRBG_MENU
  1492. tristate "NIST SP800-90A DRBG"
  1493. help
  1494. NIST SP800-90A compliant DRBG. In the following submenu, one or
  1495. more of the DRBG types must be selected.
  1496. if CRYPTO_DRBG_MENU
  1497. config CRYPTO_DRBG_HMAC
  1498. bool
  1499. default y
  1500. select CRYPTO_HMAC
  1501. select CRYPTO_SHA256
  1502. config CRYPTO_DRBG_HASH
  1503. bool "Enable Hash DRBG"
  1504. select CRYPTO_SHA256
  1505. help
  1506. Enable the Hash DRBG variant as defined in NIST SP800-90A.
  1507. config CRYPTO_DRBG_CTR
  1508. bool "Enable CTR DRBG"
  1509. select CRYPTO_AES
  1510. depends on CRYPTO_CTR
  1511. help
  1512. Enable the CTR DRBG variant as defined in NIST SP800-90A.
  1513. config CRYPTO_DRBG
  1514. tristate
  1515. default CRYPTO_DRBG_MENU
  1516. select CRYPTO_RNG
  1517. select CRYPTO_JITTERENTROPY
  1518. endif # if CRYPTO_DRBG_MENU
  1519. config CRYPTO_JITTERENTROPY
  1520. tristate "Jitterentropy Non-Deterministic Random Number Generator"
  1521. select CRYPTO_RNG
  1522. help
  1523. The Jitterentropy RNG is a noise that is intended
  1524. to provide seed to another RNG. The RNG does not
  1525. perform any cryptographic whitening of the generated
  1526. random numbers. This Jitterentropy RNG registers with
  1527. the kernel crypto API and can be used by any caller.
  1528. config CRYPTO_USER_API
  1529. tristate
  1530. config CRYPTO_USER_API_HASH
  1531. tristate "User-space interface for hash algorithms"
  1532. depends on NET
  1533. select CRYPTO_HASH
  1534. select CRYPTO_USER_API
  1535. help
  1536. This option enables the user-spaces interface for hash
  1537. algorithms.
  1538. config CRYPTO_USER_API_SKCIPHER
  1539. tristate "User-space interface for symmetric key cipher algorithms"
  1540. depends on NET
  1541. select CRYPTO_BLKCIPHER
  1542. select CRYPTO_USER_API
  1543. help
  1544. This option enables the user-spaces interface for symmetric
  1545. key cipher algorithms.
  1546. config CRYPTO_USER_API_RNG
  1547. tristate "User-space interface for random number generator algorithms"
  1548. depends on NET
  1549. select CRYPTO_RNG
  1550. select CRYPTO_USER_API
  1551. help
  1552. This option enables the user-spaces interface for random
  1553. number generator algorithms.
  1554. config CRYPTO_USER_API_AEAD
  1555. tristate "User-space interface for AEAD cipher algorithms"
  1556. depends on NET
  1557. select CRYPTO_AEAD
  1558. select CRYPTO_BLKCIPHER
  1559. select CRYPTO_NULL
  1560. select CRYPTO_USER_API
  1561. help
  1562. This option enables the user-spaces interface for AEAD
  1563. cipher algorithms.
  1564. config CRYPTO_HASH_INFO
  1565. bool
  1566. source "drivers/crypto/Kconfig"
  1567. source crypto/asymmetric_keys/Kconfig
  1568. source certs/Kconfig
  1569. endif # if CRYPTO