Kconfig 49 KB

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