Kconfig 54 KB

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