xref: /linux/arch/powerpc/crypto/Kconfig (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
16a490a4eSRobert Elliott# SPDX-License-Identifier: GPL-2.0
26a490a4eSRobert Elliott
36a490a4eSRobert Elliottmenu "Accelerated Cryptographic Algorithms for CPU (powerpc)"
46a490a4eSRobert Elliott
5*b42519dbSDanny Tsenconfig CRYPTO_CURVE25519_PPC64
6*b42519dbSDanny Tsen	tristate "Public key crypto: Curve25519 (PowerPC64)"
7*b42519dbSDanny Tsen	depends on PPC64 && CPU_LITTLE_ENDIAN
8*b42519dbSDanny Tsen	select CRYPTO_LIB_CURVE25519_GENERIC
9*b42519dbSDanny Tsen	select CRYPTO_ARCH_HAVE_LIB_CURVE25519
10*b42519dbSDanny Tsen	help
11*b42519dbSDanny Tsen	  Curve25519 algorithm
12*b42519dbSDanny Tsen
13*b42519dbSDanny Tsen	  Architecture: PowerPC64
14*b42519dbSDanny Tsen	  - Little-endian
15*b42519dbSDanny Tsen
166a490a4eSRobert Elliottconfig CRYPTO_CRC32C_VPMSUM
17ec84348dSRobert Elliott	tristate "CRC32c"
186a490a4eSRobert Elliott	depends on PPC64 && ALTIVEC
196a490a4eSRobert Elliott	select CRYPTO_HASH
206a490a4eSRobert Elliott	select CRC32
216a490a4eSRobert Elliott	help
22ec84348dSRobert Elliott	  CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
23ec84348dSRobert Elliott
24ec84348dSRobert Elliott	  Architecture: powerpc64 using
25ec84348dSRobert Elliott	  - AltiVec extensions
26ec84348dSRobert Elliott
27ec84348dSRobert Elliott	  Enable on POWER8 and newer processors for improved performance.
286a490a4eSRobert Elliott
296a490a4eSRobert Elliottconfig CRYPTO_CRCT10DIF_VPMSUM
30ec84348dSRobert Elliott	tristate "CRC32T10DIF"
316a490a4eSRobert Elliott	depends on PPC64 && ALTIVEC && CRC_T10DIF
326a490a4eSRobert Elliott	select CRYPTO_HASH
336a490a4eSRobert Elliott	help
34ec84348dSRobert Elliott	  CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
35ec84348dSRobert Elliott
36ec84348dSRobert Elliott	  Architecture: powerpc64 using
37ec84348dSRobert Elliott	  - AltiVec extensions
38ec84348dSRobert Elliott
39ec84348dSRobert Elliott	  Enable on POWER8 and newer processors for improved performance.
406a490a4eSRobert Elliott
416a490a4eSRobert Elliottconfig CRYPTO_VPMSUM_TESTER
42ec84348dSRobert Elliott	tristate "CRC32c and CRC32T10DIF hardware acceleration tester"
436a490a4eSRobert Elliott	depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM
446a490a4eSRobert Elliott	help
45ec84348dSRobert Elliott	  Stress test for CRC32c and CRCT10DIF algorithms implemented with
46ec84348dSRobert Elliott	  powerpc64 AltiVec extensions (POWER8 vpmsum instructions).
476a490a4eSRobert Elliott	  Unless you are testing these algorithms, you don't need this.
486a490a4eSRobert Elliott
496a490a4eSRobert Elliottconfig CRYPTO_MD5_PPC
503f342a23SRobert Elliott	tristate "Digests: MD5"
516a490a4eSRobert Elliott	depends on PPC
526a490a4eSRobert Elliott	select CRYPTO_HASH
536a490a4eSRobert Elliott	help
543f342a23SRobert Elliott	  MD5 message digest algorithm (RFC1321)
553f342a23SRobert Elliott
563f342a23SRobert Elliott	  Architecture: powerpc
576a490a4eSRobert Elliott
586a490a4eSRobert Elliottconfig CRYPTO_SHA1_PPC
593f342a23SRobert Elliott	tristate "Hash functions: SHA-1"
606a490a4eSRobert Elliott	depends on PPC
616a490a4eSRobert Elliott	help
623f342a23SRobert Elliott	  SHA-1 secure hash algorithm (FIPS 180)
633f342a23SRobert Elliott
643f342a23SRobert Elliott	  Architecture: powerpc
656a490a4eSRobert Elliott
666a490a4eSRobert Elliottconfig CRYPTO_SHA1_PPC_SPE
673f342a23SRobert Elliott	tristate "Hash functions: SHA-1 (SPE)"
686a490a4eSRobert Elliott	depends on PPC && SPE
696a490a4eSRobert Elliott	help
703f342a23SRobert Elliott	  SHA-1 secure hash algorithm (FIPS 180)
713f342a23SRobert Elliott
723f342a23SRobert Elliott	  Architecture: powerpc using
733f342a23SRobert Elliott	  - SPE (Signal Processing Engine) extensions
746a490a4eSRobert Elliott
756a490a4eSRobert Elliottconfig CRYPTO_SHA256_PPC_SPE
763f342a23SRobert Elliott	tristate "Hash functions: SHA-224 and SHA-256 (SPE)"
776a490a4eSRobert Elliott	depends on PPC && SPE
786a490a4eSRobert Elliott	select CRYPTO_SHA256
796a490a4eSRobert Elliott	select CRYPTO_HASH
806a490a4eSRobert Elliott	help
813f342a23SRobert Elliott	  SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
823f342a23SRobert Elliott
833f342a23SRobert Elliott	  Architecture: powerpc using
843f342a23SRobert Elliott	  - SPE (Signal Processing Engine) extensions
856a490a4eSRobert Elliott
866a490a4eSRobert Elliottconfig CRYPTO_AES_PPC_SPE
87cf514b2aSRobert Elliott	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (SPE)"
886a490a4eSRobert Elliott	depends on PPC && SPE
896a490a4eSRobert Elliott	select CRYPTO_SKCIPHER
906a490a4eSRobert Elliott	help
91cf514b2aSRobert Elliott	  Block ciphers: AES cipher algorithms (FIPS-197)
92cf514b2aSRobert Elliott	  Length-preserving ciphers: AES with ECB, CBC, CTR, and XTS modes
93cf514b2aSRobert Elliott
94cf514b2aSRobert Elliott	  Architecture: powerpc using:
95cf514b2aSRobert Elliott	  - SPE (Signal Processing Engine) extensions
96cf514b2aSRobert Elliott
97cf514b2aSRobert Elliott	  SPE is available for:
98cf514b2aSRobert Elliott	  - Processor Type: Freescale 8500
99cf514b2aSRobert Elliott	  - CPU selection: e500 (8540)
100cf514b2aSRobert Elliott
1016a490a4eSRobert Elliott	  This module should only be used for low power (router) devices
1026a490a4eSRobert Elliott	  without hardware AES acceleration (e.g. caam crypto). It reduces the
1036a490a4eSRobert Elliott	  size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
1046a490a4eSRobert Elliott	  timining attacks. Nevertheless it might be not as secure as other
1056a490a4eSRobert Elliott	  architecture specific assembler implementations that work on 1KB
1066a490a4eSRobert Elliott	  tables or 256 bytes S-boxes.
1076a490a4eSRobert Elliott
10845a4672bSDanny Tsenconfig CRYPTO_AES_GCM_P10
10945a4672bSDanny Tsen	tristate "Stitched AES/GCM acceleration support on P10 or later CPU (PPC)"
1108133a3f0SMichael Ellerman	depends on PPC64 && CPU_LITTLE_ENDIAN && VSX
11145a4672bSDanny Tsen	select CRYPTO_LIB_AES
11245a4672bSDanny Tsen	select CRYPTO_ALGAPI
11345a4672bSDanny Tsen	select CRYPTO_AEAD
1149d6e1c21SOmar Sandoval	select CRYPTO_SKCIPHER
11545a4672bSDanny Tsen	help
11645a4672bSDanny Tsen	  AEAD cipher: AES cipher algorithms (FIPS-197)
11745a4672bSDanny Tsen	  GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D)
11845a4672bSDanny Tsen	  Architecture: powerpc64 using:
11945a4672bSDanny Tsen	    - little-endian
12045a4672bSDanny Tsen	    - Power10 or later features
12145a4672bSDanny Tsen
12245a4672bSDanny Tsen	  Support for cryptographic acceleration instructions on Power10 or
12345a4672bSDanny Tsen	  later CPU. This module supports stitched acceleration for AES/GCM.
12445a4672bSDanny Tsen
125161fca7eSDanny Tsenconfig CRYPTO_CHACHA20_P10
126161fca7eSDanny Tsen	tristate "Ciphers: ChaCha20, XChacha20, XChacha12 (P10 or later)"
127ba22e818SHerbert Xu	depends on PPC64 && CPU_LITTLE_ENDIAN && VSX
128161fca7eSDanny Tsen	select CRYPTO_SKCIPHER
129161fca7eSDanny Tsen	select CRYPTO_LIB_CHACHA_GENERIC
130161fca7eSDanny Tsen	select CRYPTO_ARCH_HAVE_LIB_CHACHA
131161fca7eSDanny Tsen	help
132161fca7eSDanny Tsen	  Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
133161fca7eSDanny Tsen	  stream cipher algorithms
134161fca7eSDanny Tsen
135161fca7eSDanny Tsen	  Architecture: PowerPC64
136161fca7eSDanny Tsen	  - Power10 or later
137161fca7eSDanny Tsen	  - Little-endian
138161fca7eSDanny Tsen
139161fca7eSDanny Tsenconfig CRYPTO_POLY1305_P10
140161fca7eSDanny Tsen	tristate "Hash functions: Poly1305 (P10 or later)"
141ba22e818SHerbert Xu	depends on PPC64 && CPU_LITTLE_ENDIAN && VSX
142161fca7eSDanny Tsen	select CRYPTO_HASH
143161fca7eSDanny Tsen	select CRYPTO_LIB_POLY1305_GENERIC
144161fca7eSDanny Tsen	help
145161fca7eSDanny Tsen	  Poly1305 authenticator algorithm (RFC7539)
146161fca7eSDanny Tsen
147161fca7eSDanny Tsen	  Architecture: PowerPC64
148161fca7eSDanny Tsen	  - Power10 or later
149161fca7eSDanny Tsen	  - Little-endian
150161fca7eSDanny Tsen
15110930333SDanny Tsenconfig CRYPTO_DEV_VMX
15210930333SDanny Tsen        bool "Support for VMX cryptographic acceleration instructions"
15310930333SDanny Tsen        depends on PPC64 && VSX
15410930333SDanny Tsen        help
15510930333SDanny Tsen          Support for VMX cryptographic acceleration instructions.
15610930333SDanny Tsen
15710930333SDanny Tsenconfig CRYPTO_DEV_VMX_ENCRYPT
15810930333SDanny Tsen	tristate "Encryption acceleration support on P8 CPU"
15910930333SDanny Tsen	depends on CRYPTO_DEV_VMX
16010930333SDanny Tsen	select CRYPTO_AES
16110930333SDanny Tsen	select CRYPTO_CBC
16210930333SDanny Tsen	select CRYPTO_CTR
16310930333SDanny Tsen	select CRYPTO_GHASH
16410930333SDanny Tsen	select CRYPTO_XTS
16510930333SDanny Tsen	default m
16610930333SDanny Tsen	help
16710930333SDanny Tsen	  Support for VMX cryptographic acceleration instructions on Power8 CPU.
16810930333SDanny Tsen	  This module supports acceleration for AES and GHASH in hardware. If you
16910930333SDanny Tsen	  choose 'M' here, this module will be called vmx-crypto.
17010930333SDanny Tsen
1716a490a4eSRobert Elliottendmenu
172