Kconfig 52 KB

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