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