Kconfig 8.1 KB

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