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