crypto: Kconfig - simplify CRC entries

Shorten menu titles and make them consistent:
- acronym
- name
- architecture features in parenthesis
- no suffixes like "<something> algorithm", "support", or
  "hardware acceleration", or "optimized"

Simplify help text descriptions, update references, and ensure that
https references are still valid.

Signed-off-by: Robert Elliott <elliott@hpe.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Robert Elliott 2022-08-20 13:41:46 -05:00 committed by Herbert Xu
parent 05b3746527
commit ec84348da4
8 changed files with 91 additions and 57 deletions

View File

@ -157,16 +157,29 @@ config CRYPTO_CHACHA20_NEON
select CRYPTO_ARCH_HAVE_LIB_CHACHA select CRYPTO_ARCH_HAVE_LIB_CHACHA
config CRYPTO_CRC32_ARM_CE config CRYPTO_CRC32_ARM_CE
tristate "CRC32(C) digest algorithm using CRC and/or PMULL instructions" tristate "CRC32C and CRC32"
depends on KERNEL_MODE_NEON depends on KERNEL_MODE_NEON
depends on CRC32 depends on CRC32
select CRYPTO_HASH select CRYPTO_HASH
help
CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
and CRC32 CRC algorithm (IEEE 802.3)
Architecture: arm using:
- CRC and/or PMULL instructions
Drivers: crc32-arm-ce and crc32c-arm-ce
config CRYPTO_CRCT10DIF_ARM_CE config CRYPTO_CRCT10DIF_ARM_CE
tristate "CRCT10DIF digest algorithm using PMULL instructions" tristate "CRCT10DIF"
depends on KERNEL_MODE_NEON depends on KERNEL_MODE_NEON
depends on CRC_T10DIF depends on CRC_T10DIF
select CRYPTO_HASH select CRYPTO_HASH
help
CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
Architecture: arm using:
- PMULL (Polynomial Multiply Long) instructions
endmenu endmenu

View File

@ -127,9 +127,14 @@ config CRYPTO_AES_ARM64_CE_CCM
select CRYPTO_LIB_AES select CRYPTO_LIB_AES
config CRYPTO_CRCT10DIF_ARM64_CE config CRYPTO_CRCT10DIF_ARM64_CE
tristate "CRCT10DIF digest algorithm using PMULL instructions" tristate "CRCT10DIF (PMULL)"
depends on KERNEL_MODE_NEON && CRC_T10DIF depends on KERNEL_MODE_NEON && CRC_T10DIF
select CRYPTO_HASH select CRYPTO_HASH
help
CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
Architecture: arm64 using
- PMULL (Polynomial Multiply Long) instructions
endmenu endmenu

View File

@ -3,12 +3,13 @@
menu "Accelerated Cryptographic Algorithms for CPU (mips)" menu "Accelerated Cryptographic Algorithms for CPU (mips)"
config CRYPTO_CRC32_MIPS config CRYPTO_CRC32_MIPS
tristate "CRC32c and CRC32 CRC algorithm (MIPS)" tristate "CRC32c and CRC32"
depends on MIPS_CRC_SUPPORT depends on MIPS_CRC_SUPPORT
select CRYPTO_HASH select CRYPTO_HASH
help help
CRC32c and CRC32 CRC algorithms implemented using mips crypto CRC32c and CRC32 CRC algorithms
instructions, when available.
Architecture: mips
config CRYPTO_POLY1305_MIPS config CRYPTO_POLY1305_MIPS
tristate "Poly1305 authenticator algorithm (MIPS optimized)" tristate "Poly1305 authenticator algorithm (MIPS optimized)"

View File

@ -3,30 +3,36 @@
menu "Accelerated Cryptographic Algorithms for CPU (powerpc)" menu "Accelerated Cryptographic Algorithms for CPU (powerpc)"
config CRYPTO_CRC32C_VPMSUM config CRYPTO_CRC32C_VPMSUM
tristate "CRC32c CRC algorithm (powerpc64)" tristate "CRC32c"
depends on PPC64 && ALTIVEC depends on PPC64 && ALTIVEC
select CRYPTO_HASH select CRYPTO_HASH
select CRC32 select CRC32
help help
CRC32c algorithm implemented using vector polynomial multiply-sum CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
(vpmsum) instructions, introduced in POWER8. Enable on POWER8
and newer processors for improved performance. Architecture: powerpc64 using
- AltiVec extensions
Enable on POWER8 and newer processors for improved performance.
config CRYPTO_CRCT10DIF_VPMSUM config CRYPTO_CRCT10DIF_VPMSUM
tristate "CRC32T10DIF powerpc64 hardware acceleration" tristate "CRC32T10DIF"
depends on PPC64 && ALTIVEC && CRC_T10DIF depends on PPC64 && ALTIVEC && CRC_T10DIF
select CRYPTO_HASH select CRYPTO_HASH
help help
CRC10T10DIF algorithm implemented using vector polynomial CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
multiply-sum (vpmsum) instructions, introduced in POWER8. Enable on
POWER8 and newer processors for improved performance. Architecture: powerpc64 using
- AltiVec extensions
Enable on POWER8 and newer processors for improved performance.
config CRYPTO_VPMSUM_TESTER config CRYPTO_VPMSUM_TESTER
tristate "Powerpc64 vpmsum hardware acceleration tester" tristate "CRC32c and CRC32T10DIF hardware acceleration tester"
depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM
help help
Stress test for CRC32c and CRC-T10DIF algorithms implemented with Stress test for CRC32c and CRCT10DIF algorithms implemented with
POWER8 vpmsum instructions. powerpc64 AltiVec extensions (POWER8 vpmsum instructions).
Unless you are testing these algorithms, you don't need this. Unless you are testing these algorithms, you don't need this.
config CRYPTO_MD5_PPC config CRYPTO_MD5_PPC

View File

@ -3,15 +3,14 @@
menu "Accelerated Cryptographic Algorithms for CPU (s390)" menu "Accelerated Cryptographic Algorithms for CPU (s390)"
config CRYPTO_CRC32_S390 config CRYPTO_CRC32_S390
tristate "CRC-32 algorithms" tristate "CRC32c and CRC32"
depends on S390 depends on S390
select CRYPTO_HASH select CRYPTO_HASH
select CRC32 select CRC32
help help
Select this option if you want to use hardware accelerated CRC32c and CRC32 CRC algorithms
implementations of CRC algorithms. With this option, you
can optimize the computation of CRC-32 (IEEE 802.3 Ethernet) Architecture: s390
and CRC-32C (Castagnoli).
It is available with IBM z13 or later. It is available with IBM z13 or later.

View File

@ -13,13 +13,14 @@ config CRYPTO_DES_SPARC64
optimized using SPARC64 crypto opcodes. optimized using SPARC64 crypto opcodes.
config CRYPTO_CRC32C_SPARC64 config CRYPTO_CRC32C_SPARC64
tristate "CRC32c CRC algorithm (SPARC64)" tristate "CRC32c"
depends on SPARC64 depends on SPARC64
select CRYPTO_HASH select CRYPTO_HASH
select CRC32 select CRC32
help help
CRC32c CRC algorithm implemented using sparc64 crypto instructions, CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
when available.
Architecture: sparc64
config CRYPTO_MD5_SPARC64 config CRYPTO_MD5_SPARC64
tristate "MD5 digest algorithm (SPARC64)" tristate "MD5 digest algorithm (SPARC64)"

View File

@ -467,39 +467,35 @@ config CRYPTO_GHASH_CLMUL_NI_INTEL
GHASH, the hash function used in GCM (Galois/Counter mode). GHASH, the hash function used in GCM (Galois/Counter mode).
config CRYPTO_CRC32C_INTEL config CRYPTO_CRC32C_INTEL
tristate "CRC32c INTEL hardware acceleration" tristate "CRC32c (SSE4.2/PCLMULQDQ)"
depends on X86 depends on X86
select CRYPTO_HASH select CRYPTO_HASH
help help
In Intel processor with SSE4.2 supported, the processor will CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
support CRC32C implementation using hardware accelerated CRC32
instruction. This option will create 'crc32c-intel' module, Architecture: x86 (32-bit and 64-bit) using:
which will enable any routine to use the CRC32 instruction to - SSE4.2 (Streaming SIMD Extensions 4.2) CRC32 instruction
gain performance compared with software implementation. - PCLMULQDQ (carry-less multiplication)
Module will be crc32c-intel.
config CRYPTO_CRC32_PCLMUL config CRYPTO_CRC32_PCLMUL
tristate "CRC32 PCLMULQDQ hardware acceleration" tristate "CRC32 (PCLMULQDQ)"
depends on X86 depends on X86
select CRYPTO_HASH select CRYPTO_HASH
select CRC32 select CRC32
help help
From Intel Westmere and AMD Bulldozer processor with SSE4.2 CRC32 CRC algorithm (IEEE 802.3)
and PCLMULQDQ supported, the processor will support
CRC32 PCLMULQDQ implementation using hardware accelerated PCLMULQDQ Architecture: x86 (32-bit and 64-bit) using:
instruction. This option will create 'crc32-pclmul' module, - PCLMULQDQ (carry-less multiplication)
which will enable any routine to use the CRC-32-IEEE 802.3 checksum
and gain better performance as compared with the table implementation.
config CRYPTO_CRCT10DIF_PCLMUL config CRYPTO_CRCT10DIF_PCLMUL
tristate "CRCT10DIF PCLMULQDQ hardware acceleration" tristate "CRCT10DIF (PCLMULQDQ)"
depends on X86 && 64BIT && CRC_T10DIF depends on X86 && 64BIT && CRC_T10DIF
select CRYPTO_HASH select CRYPTO_HASH
help help
For x86_64 processors with SSE4.2 and PCLMULQDQ supported, CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
CRC T10 DIF PCLMULQDQ computation can be hardware
accelerated PCLMULQDQ instruction. This option will create Architecture: x86_64 using:
'crct10dif-pclmul' module, which is faster when computing the - PCLMULQDQ (carry-less multiplication)
crct10dif checksum as compared with the generic table implementation.
endmenu endmenu

View File

@ -1093,34 +1093,47 @@ endmenu
menu "CRCs (cyclic redundancy checks)" menu "CRCs (cyclic redundancy checks)"
config CRYPTO_CRC32C config CRYPTO_CRC32C
tristate "CRC32c CRC algorithm" tristate "CRC32c"
select CRYPTO_HASH select CRYPTO_HASH
select CRC32 select CRC32
help help
Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
by iSCSI for header and data digests and by others.
See Castagnoli93. Module will be crc32c. A 32-bit CRC (cyclic redundancy check) with a polynomial defined
by G. Castagnoli, S. Braeuer and M. Herrman in "Optimization of Cyclic
Redundancy-Check Codes with 24 and 32 Parity Bits", IEEE Transactions
on Communications, Vol. 41, No. 6, June 1993, selected for use with
iSCSI.
Used by btrfs, ext4, jbd2, NVMeoF/TCP, and iSCSI.
config CRYPTO_CRC32 config CRYPTO_CRC32
tristate "CRC32 CRC algorithm" tristate "CRC32"
select CRYPTO_HASH select CRYPTO_HASH
select CRC32 select CRC32
help help
CRC-32-IEEE 802.3 cyclic redundancy-check algorithm. CRC32 CRC algorithm (IEEE 802.3)
Shash crypto api wrappers to crc32_le function.
Used by RoCEv2 and f2fs.
config CRYPTO_CRCT10DIF config CRYPTO_CRCT10DIF
tristate "CRCT10DIF algorithm" tristate "CRCT10DIF"
select CRYPTO_HASH select CRYPTO_HASH
help help
CRC T10 Data Integrity Field computation is being cast as CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
a crypto transform. This allows for faster crc t10 diff
transforms to be used if they are available. CRC algorithm used by the SCSI Block Commands standard.
config CRYPTO_CRC64_ROCKSOFT config CRYPTO_CRC64_ROCKSOFT
tristate "Rocksoft Model CRC64 algorithm" tristate "CRC64 based on Rocksoft Model algorithm"
depends on CRC64 depends on CRC64
select CRYPTO_HASH select CRYPTO_HASH
help
CRC64 CRC algorithm based on the Rocksoft Model CRC Algorithm
Used by the NVMe implementation of T10 DIF (BLK_DEV_INTEGRITY)
See https://zlib.net/crc_v3.txt
endmenu endmenu