Kconfig 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  1. # SPDX-License-Identifier: GPL-2.0
  2. menu "Accelerated Cryptographic Algorithms for CPU (arm64)"
  3. config CRYPTO_GHASH_ARM64_CE
  4. tristate "Hash functions: GHASH (ARMv8 Crypto Extensions)"
  5. depends on KERNEL_MODE_NEON
  6. select CRYPTO_HASH
  7. select CRYPTO_LIB_AES
  8. select CRYPTO_LIB_GF128MUL
  9. select CRYPTO_AEAD
  10. help
  11. GCM GHASH function (NIST SP800-38D)
  12. Architecture: arm64 using:
  13. - ARMv8 Crypto Extensions
  14. config CRYPTO_NHPOLY1305_NEON
  15. tristate "Hash functions: NHPoly1305 (NEON)"
  16. depends on KERNEL_MODE_NEON
  17. select CRYPTO_NHPOLY1305
  18. help
  19. NHPoly1305 hash function (Adiantum)
  20. Architecture: arm64 using:
  21. - NEON (Advanced SIMD) extensions
  22. config CRYPTO_POLY1305_NEON
  23. tristate
  24. depends on KERNEL_MODE_NEON
  25. select CRYPTO_HASH
  26. select CRYPTO_ARCH_HAVE_LIB_POLY1305
  27. default CRYPTO_LIB_POLY1305_INTERNAL
  28. help
  29. Poly1305 authenticator algorithm (RFC7539)
  30. Architecture: arm64 using:
  31. - NEON (Advanced SIMD) extensions
  32. config CRYPTO_SHA1_ARM64_CE
  33. tristate "Hash functions: SHA-1 (ARMv8 Crypto Extensions)"
  34. depends on KERNEL_MODE_NEON
  35. select CRYPTO_HASH
  36. select CRYPTO_SHA1
  37. help
  38. SHA-1 secure hash algorithm (FIPS 180)
  39. Architecture: arm64 using:
  40. - ARMv8 Crypto Extensions
  41. config CRYPTO_SHA256_ARM64
  42. tristate "Hash functions: SHA-224 and SHA-256"
  43. select CRYPTO_HASH
  44. help
  45. SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
  46. Architecture: arm64
  47. config CRYPTO_SHA2_ARM64_CE
  48. tristate "Hash functions: SHA-224 and SHA-256 (ARMv8 Crypto Extensions)"
  49. depends on KERNEL_MODE_NEON
  50. select CRYPTO_HASH
  51. select CRYPTO_SHA256_ARM64
  52. help
  53. SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
  54. Architecture: arm64 using:
  55. - ARMv8 Crypto Extensions
  56. config CRYPTO_SHA512_ARM64
  57. tristate "Hash functions: SHA-384 and SHA-512"
  58. select CRYPTO_HASH
  59. help
  60. SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
  61. Architecture: arm64
  62. config CRYPTO_SHA512_ARM64_CE
  63. tristate "Hash functions: SHA-384 and SHA-512 (ARMv8 Crypto Extensions)"
  64. depends on KERNEL_MODE_NEON
  65. select CRYPTO_HASH
  66. select CRYPTO_SHA512_ARM64
  67. help
  68. SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
  69. Architecture: arm64 using:
  70. - ARMv8 Crypto Extensions
  71. config CRYPTO_SHA3_ARM64
  72. tristate "Hash functions: SHA-3 (ARMv8.2 Crypto Extensions)"
  73. depends on KERNEL_MODE_NEON
  74. select CRYPTO_HASH
  75. select CRYPTO_SHA3
  76. help
  77. SHA-3 secure hash algorithms (FIPS 202)
  78. Architecture: arm64 using:
  79. - ARMv8.2 Crypto Extensions
  80. config CRYPTO_SM3_NEON
  81. tristate "Hash functions: SM3 (NEON)"
  82. depends on KERNEL_MODE_NEON
  83. select CRYPTO_HASH
  84. select CRYPTO_SM3
  85. help
  86. SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012)
  87. Architecture: arm64 using:
  88. - NEON (Advanced SIMD) extensions
  89. config CRYPTO_SM3_ARM64_CE
  90. tristate "Hash functions: SM3 (ARMv8.2 Crypto Extensions)"
  91. depends on KERNEL_MODE_NEON
  92. select CRYPTO_HASH
  93. select CRYPTO_SM3
  94. help
  95. SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012)
  96. Architecture: arm64 using:
  97. - ARMv8.2 Crypto Extensions
  98. config CRYPTO_POLYVAL_ARM64_CE
  99. tristate "Hash functions: POLYVAL (ARMv8 Crypto Extensions)"
  100. depends on KERNEL_MODE_NEON
  101. select CRYPTO_POLYVAL
  102. help
  103. POLYVAL hash function for HCTR2
  104. Architecture: arm64 using:
  105. - ARMv8 Crypto Extensions
  106. config CRYPTO_AES_ARM64
  107. tristate "Ciphers: AES, modes: ECB, CBC, CTR, CTS, XCTR, XTS"
  108. select CRYPTO_AES
  109. help
  110. Block ciphers: AES cipher algorithms (FIPS-197)
  111. Length-preserving ciphers: AES with ECB, CBC, CTR, CTS,
  112. XCTR, and XTS modes
  113. AEAD cipher: AES with CBC, ESSIV, and SHA-256
  114. for fscrypt and dm-crypt
  115. Architecture: arm64
  116. config CRYPTO_AES_ARM64_CE
  117. tristate "Ciphers: AES (ARMv8 Crypto Extensions)"
  118. depends on ARM64 && KERNEL_MODE_NEON
  119. select CRYPTO_ALGAPI
  120. select CRYPTO_LIB_AES
  121. help
  122. Block ciphers: AES cipher algorithms (FIPS-197)
  123. Architecture: arm64 using:
  124. - ARMv8 Crypto Extensions
  125. config CRYPTO_AES_ARM64_CE_BLK
  126. tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)"
  127. depends on KERNEL_MODE_NEON
  128. select CRYPTO_SKCIPHER
  129. select CRYPTO_AES_ARM64_CE
  130. help
  131. Length-preserving ciphers: AES cipher algorithms (FIPS-197)
  132. with block cipher modes:
  133. - ECB (Electronic Codebook) mode (NIST SP800-38A)
  134. - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
  135. - CTR (Counter) mode (NIST SP800-38A)
  136. - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
  137. and IEEE 1619)
  138. Architecture: arm64 using:
  139. - ARMv8 Crypto Extensions
  140. config CRYPTO_AES_ARM64_NEON_BLK
  141. tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (NEON)"
  142. depends on KERNEL_MODE_NEON
  143. select CRYPTO_SKCIPHER
  144. select CRYPTO_LIB_AES
  145. help
  146. Length-preserving ciphers: AES cipher algorithms (FIPS-197)
  147. with block cipher modes:
  148. - ECB (Electronic Codebook) mode (NIST SP800-38A)
  149. - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
  150. - CTR (Counter) mode (NIST SP800-38A)
  151. - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
  152. and IEEE 1619)
  153. Architecture: arm64 using:
  154. - NEON (Advanced SIMD) extensions
  155. config CRYPTO_CHACHA20_NEON
  156. tristate
  157. depends on KERNEL_MODE_NEON
  158. select CRYPTO_SKCIPHER
  159. select CRYPTO_LIB_CHACHA_GENERIC
  160. select CRYPTO_ARCH_HAVE_LIB_CHACHA
  161. default CRYPTO_LIB_CHACHA_INTERNAL
  162. help
  163. Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
  164. stream cipher algorithms
  165. Architecture: arm64 using:
  166. - NEON (Advanced SIMD) extensions
  167. config CRYPTO_AES_ARM64_BS
  168. tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)"
  169. depends on KERNEL_MODE_NEON
  170. select CRYPTO_SKCIPHER
  171. select CRYPTO_AES_ARM64_NEON_BLK
  172. select CRYPTO_LIB_AES
  173. help
  174. Length-preserving ciphers: AES cipher algorithms (FIPS-197)
  175. with block cipher modes:
  176. - ECB (Electronic Codebook) mode (NIST SP800-38A)
  177. - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
  178. - CTR (Counter) mode (NIST SP800-38A)
  179. - XCTR mode for HCTR2
  180. - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
  181. and IEEE 1619)
  182. Architecture: arm64 using:
  183. - bit-sliced algorithm
  184. - NEON (Advanced SIMD) extensions
  185. config CRYPTO_SM4_ARM64_CE
  186. tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)"
  187. depends on KERNEL_MODE_NEON
  188. select CRYPTO_ALGAPI
  189. select CRYPTO_SM4
  190. help
  191. Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
  192. Architecture: arm64 using:
  193. - ARMv8.2 Crypto Extensions
  194. - NEON (Advanced SIMD) extensions
  195. config CRYPTO_SM4_ARM64_CE_BLK
  196. tristate "Ciphers: SM4, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)"
  197. depends on KERNEL_MODE_NEON
  198. select CRYPTO_SKCIPHER
  199. select CRYPTO_SM4
  200. help
  201. Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
  202. with block cipher modes:
  203. - ECB (Electronic Codebook) mode (NIST SP800-38A)
  204. - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
  205. - CTR (Counter) mode (NIST SP800-38A)
  206. - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
  207. and IEEE 1619)
  208. Architecture: arm64 using:
  209. - ARMv8 Crypto Extensions
  210. - NEON (Advanced SIMD) extensions
  211. config CRYPTO_SM4_ARM64_NEON_BLK
  212. tristate "Ciphers: SM4, modes: ECB/CBC/CTR (NEON)"
  213. depends on KERNEL_MODE_NEON
  214. select CRYPTO_SKCIPHER
  215. select CRYPTO_SM4
  216. help
  217. Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016)
  218. with block cipher modes:
  219. - ECB (Electronic Codebook) mode (NIST SP800-38A)
  220. - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
  221. - CTR (Counter) mode (NIST SP800-38A)
  222. Architecture: arm64 using:
  223. - NEON (Advanced SIMD) extensions
  224. config CRYPTO_AES_ARM64_CE_CCM
  225. tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)"
  226. depends on ARM64 && KERNEL_MODE_NEON
  227. select CRYPTO_ALGAPI
  228. select CRYPTO_AES_ARM64_CE
  229. select CRYPTO_AES_ARM64_CE_BLK
  230. select CRYPTO_AEAD
  231. select CRYPTO_LIB_AES
  232. help
  233. AEAD cipher: AES cipher algorithms (FIPS-197) with
  234. CCM (Counter with Cipher Block Chaining-Message Authentication Code)
  235. authenticated encryption mode (NIST SP800-38C)
  236. Architecture: arm64 using:
  237. - ARMv8 Crypto Extensions
  238. - NEON (Advanced SIMD) extensions
  239. config CRYPTO_SM4_ARM64_CE_CCM
  240. tristate "AEAD cipher: SM4 in CCM mode (ARMv8 Crypto Extensions)"
  241. depends on KERNEL_MODE_NEON
  242. select CRYPTO_ALGAPI
  243. select CRYPTO_AEAD
  244. select CRYPTO_SM4
  245. select CRYPTO_SM4_ARM64_CE_BLK
  246. help
  247. AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
  248. CCM (Counter with Cipher Block Chaining-Message Authentication Code)
  249. authenticated encryption mode (NIST SP800-38C)
  250. Architecture: arm64 using:
  251. - ARMv8 Crypto Extensions
  252. - NEON (Advanced SIMD) extensions
  253. config CRYPTO_SM4_ARM64_CE_GCM
  254. tristate "AEAD cipher: SM4 in GCM mode (ARMv8 Crypto Extensions)"
  255. depends on KERNEL_MODE_NEON
  256. select CRYPTO_ALGAPI
  257. select CRYPTO_AEAD
  258. select CRYPTO_SM4
  259. select CRYPTO_SM4_ARM64_CE_BLK
  260. help
  261. AEAD cipher: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with
  262. GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D)
  263. Architecture: arm64 using:
  264. - ARMv8 Crypto Extensions
  265. - PMULL (Polynomial Multiply Long) instructions
  266. - NEON (Advanced SIMD) extensions
  267. config CRYPTO_CRCT10DIF_ARM64_CE
  268. tristate "CRCT10DIF (PMULL)"
  269. depends on KERNEL_MODE_NEON && CRC_T10DIF
  270. select CRYPTO_HASH
  271. help
  272. CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
  273. Architecture: arm64 using
  274. - PMULL (Polynomial Multiply Long) instructions
  275. endmenu