Kconfig 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. # SPDX-License-Identifier: GPL-2.0
  2. menu "Accelerated Cryptographic Algorithms for CPU (powerpc)"
  3. config CRYPTO_CURVE25519_PPC64
  4. tristate
  5. depends on PPC64 && CPU_LITTLE_ENDIAN
  6. select CRYPTO_KPP
  7. select CRYPTO_LIB_CURVE25519_GENERIC
  8. select CRYPTO_ARCH_HAVE_LIB_CURVE25519
  9. default CRYPTO_LIB_CURVE25519_INTERNAL
  10. help
  11. Curve25519 algorithm
  12. Architecture: PowerPC64
  13. - Little-endian
  14. config CRYPTO_CRC32C_VPMSUM
  15. tristate "CRC32c"
  16. depends on PPC64 && ALTIVEC
  17. select CRYPTO_HASH
  18. select CRC32
  19. help
  20. CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
  21. Architecture: powerpc64 using
  22. - AltiVec extensions
  23. Enable on POWER8 and newer processors for improved performance.
  24. config CRYPTO_CRCT10DIF_VPMSUM
  25. tristate "CRC32T10DIF"
  26. depends on PPC64 && ALTIVEC && CRC_T10DIF
  27. select CRYPTO_HASH
  28. help
  29. CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
  30. Architecture: powerpc64 using
  31. - AltiVec extensions
  32. Enable on POWER8 and newer processors for improved performance.
  33. config CRYPTO_VPMSUM_TESTER
  34. tristate "CRC32c and CRC32T10DIF hardware acceleration tester"
  35. depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM
  36. help
  37. Stress test for CRC32c and CRCT10DIF algorithms implemented with
  38. powerpc64 AltiVec extensions (POWER8 vpmsum instructions).
  39. Unless you are testing these algorithms, you don't need this.
  40. config CRYPTO_MD5_PPC
  41. tristate "Digests: MD5"
  42. depends on PPC
  43. select CRYPTO_HASH
  44. help
  45. MD5 message digest algorithm (RFC1321)
  46. Architecture: powerpc
  47. config CRYPTO_SHA1_PPC
  48. tristate "Hash functions: SHA-1"
  49. depends on PPC
  50. help
  51. SHA-1 secure hash algorithm (FIPS 180)
  52. Architecture: powerpc
  53. config CRYPTO_SHA1_PPC_SPE
  54. tristate "Hash functions: SHA-1 (SPE)"
  55. depends on PPC && SPE
  56. help
  57. SHA-1 secure hash algorithm (FIPS 180)
  58. Architecture: powerpc using
  59. - SPE (Signal Processing Engine) extensions
  60. config CRYPTO_SHA256_PPC_SPE
  61. tristate "Hash functions: SHA-224 and SHA-256 (SPE)"
  62. depends on PPC && SPE
  63. select CRYPTO_SHA256
  64. select CRYPTO_HASH
  65. help
  66. SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
  67. Architecture: powerpc using
  68. - SPE (Signal Processing Engine) extensions
  69. config CRYPTO_AES_PPC_SPE
  70. tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (SPE)"
  71. depends on PPC && SPE
  72. select CRYPTO_SKCIPHER
  73. help
  74. Block ciphers: AES cipher algorithms (FIPS-197)
  75. Length-preserving ciphers: AES with ECB, CBC, CTR, and XTS modes
  76. Architecture: powerpc using:
  77. - SPE (Signal Processing Engine) extensions
  78. SPE is available for:
  79. - Processor Type: Freescale 8500
  80. - CPU selection: e500 (8540)
  81. This module should only be used for low power (router) devices
  82. without hardware AES acceleration (e.g. caam crypto). It reduces the
  83. size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
  84. timining attacks. Nevertheless it might be not as secure as other
  85. architecture specific assembler implementations that work on 1KB
  86. tables or 256 bytes S-boxes.
  87. config CRYPTO_AES_GCM_P10
  88. tristate "Stitched AES/GCM acceleration support on P10 or later CPU (PPC)"
  89. depends on BROKEN
  90. depends on PPC64 && CPU_LITTLE_ENDIAN && VSX
  91. select CRYPTO_LIB_AES
  92. select CRYPTO_ALGAPI
  93. select CRYPTO_AEAD
  94. select CRYPTO_SKCIPHER
  95. help
  96. AEAD cipher: AES cipher algorithms (FIPS-197)
  97. GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D)
  98. Architecture: powerpc64 using:
  99. - little-endian
  100. - Power10 or later features
  101. Support for cryptographic acceleration instructions on Power10 or
  102. later CPU. This module supports stitched acceleration for AES/GCM.
  103. config CRYPTO_CHACHA20_P10
  104. tristate
  105. depends on PPC64 && CPU_LITTLE_ENDIAN && VSX
  106. select CRYPTO_SKCIPHER
  107. select CRYPTO_LIB_CHACHA_GENERIC
  108. select CRYPTO_ARCH_HAVE_LIB_CHACHA
  109. default CRYPTO_LIB_CHACHA_INTERNAL
  110. help
  111. Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
  112. stream cipher algorithms
  113. Architecture: PowerPC64
  114. - Power10 or later
  115. - Little-endian
  116. config CRYPTO_POLY1305_P10
  117. tristate "Hash functions: Poly1305 (P10 or later)"
  118. depends on PPC64 && CPU_LITTLE_ENDIAN && VSX
  119. depends on BROKEN # Needs to be fixed to work in softirq context
  120. select CRYPTO_HASH
  121. select CRYPTO_LIB_POLY1305_GENERIC
  122. help
  123. Poly1305 authenticator algorithm (RFC7539)
  124. Architecture: PowerPC64
  125. - Power10 or later
  126. - Little-endian
  127. config CRYPTO_DEV_VMX
  128. bool "Support for VMX cryptographic acceleration instructions"
  129. depends on PPC64 && VSX
  130. help
  131. Support for VMX cryptographic acceleration instructions.
  132. config CRYPTO_DEV_VMX_ENCRYPT
  133. tristate "Encryption acceleration support on P8 CPU"
  134. depends on CRYPTO_DEV_VMX
  135. select CRYPTO_AES
  136. select CRYPTO_CBC
  137. select CRYPTO_CTR
  138. select CRYPTO_GHASH
  139. select CRYPTO_XTS
  140. default m
  141. help
  142. Support for VMX cryptographic acceleration instructions on Power8 CPU.
  143. This module supports acceleration for AES and GHASH in hardware. If you
  144. choose 'M' here, this module will be called vmx-crypto.
  145. endmenu