Kconfig 47 KB

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