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