Kconfig (3f342a23257df99b792c1edb1236e85badc157de) Kconfig (cf514b2a5902ee4f93e9636ace5228fed27f23bb)
1# SPDX-License-Identifier: GPL-2.0
2
3menu "Accelerated Cryptographic Algorithms for CPU (arm)"
4
5config CRYPTO_CURVE25519_NEON
6 tristate "Public key crypto: Curve25519 (NEON)"
7 depends on KERNEL_MODE_NEON
8 select CRYPTO_LIB_CURVE25519_GENERIC

--- 130 unchanged lines hidden (view full) ---

139 depends on !CPU_V7M
140 help
141 SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
142
143 Architecture: arm using
144 - NEON (Advanced SIMD) extensions
145
146config CRYPTO_AES_ARM
1# SPDX-License-Identifier: GPL-2.0
2
3menu "Accelerated Cryptographic Algorithms for CPU (arm)"
4
5config CRYPTO_CURVE25519_NEON
6 tristate "Public key crypto: Curve25519 (NEON)"
7 depends on KERNEL_MODE_NEON
8 select CRYPTO_LIB_CURVE25519_GENERIC

--- 130 unchanged lines hidden (view full) ---

139 depends on !CPU_V7M
140 help
141 SHA-384 and SHA-512 secure hash algorithms (FIPS 180)
142
143 Architecture: arm using
144 - NEON (Advanced SIMD) extensions
145
146config CRYPTO_AES_ARM
147 tristate "Scalar AES cipher for ARM"
147 tristate "Ciphers: AES"
148 select CRYPTO_ALGAPI
149 select CRYPTO_AES
150 help
148 select CRYPTO_ALGAPI
149 select CRYPTO_AES
150 help
151 Use optimized AES assembler routines for ARM platforms.
151 Block ciphers: AES cipher algorithms (FIPS-197)
152
152
153 Architecture: arm
154
153 On ARM processors without the Crypto Extensions, this is the
154 fastest AES implementation for single blocks. For multiple
155 blocks, the NEON bit-sliced implementation is usually faster.
156
157 This implementation may be vulnerable to cache timing attacks,
158 since it uses lookup tables. However, as countermeasures it
159 disables IRQs and preloads the tables; it is hoped this makes
160 such attacks very difficult.
161
162config CRYPTO_AES_ARM_BS
155 On ARM processors without the Crypto Extensions, this is the
156 fastest AES implementation for single blocks. For multiple
157 blocks, the NEON bit-sliced implementation is usually faster.
158
159 This implementation may be vulnerable to cache timing attacks,
160 since it uses lookup tables. However, as countermeasures it
161 disables IRQs and preloads the tables; it is hoped this makes
162 such attacks very difficult.
163
164config CRYPTO_AES_ARM_BS
163 tristate "Bit sliced AES using NEON instructions"
165 tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (bit-sliced NEON)"
164 depends on KERNEL_MODE_NEON
165 select CRYPTO_SKCIPHER
166 select CRYPTO_LIB_AES
167 select CRYPTO_AES
168 select CRYPTO_CBC
169 select CRYPTO_SIMD
170 help
166 depends on KERNEL_MODE_NEON
167 select CRYPTO_SKCIPHER
168 select CRYPTO_LIB_AES
169 select CRYPTO_AES
170 select CRYPTO_CBC
171 select CRYPTO_SIMD
172 help
171 Use a faster and more secure NEON based implementation of AES in CBC,
172 CTR and XTS modes
173 Length-preserving ciphers: AES cipher algorithms (FIPS-197)
174 with block cipher modes:
175 - ECB (Electronic Codebook) mode (NIST SP800-38A)
176 - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
177 - CTR (Counter) mode (NIST SP800-38A)
178 - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
179 and IEEE 1619)
173
174 Bit sliced AES gives around 45% speedup on Cortex-A15 for CTR mode
175 and for XTS mode encryption, CBC and XTS mode decryption speedup is
176 around 25%. (CBC encryption speed is not affected by this driver.)
177 This implementation does not rely on any lookup tables so it is
178 believed to be invulnerable to cache timing attacks.
179
180config CRYPTO_AES_ARM_CE
180
181 Bit sliced AES gives around 45% speedup on Cortex-A15 for CTR mode
182 and for XTS mode encryption, CBC and XTS mode decryption speedup is
183 around 25%. (CBC encryption speed is not affected by this driver.)
184 This implementation does not rely on any lookup tables so it is
185 believed to be invulnerable to cache timing attacks.
186
187config CRYPTO_AES_ARM_CE
181 tristate "Accelerated AES using ARMv8 Crypto Extensions"
188 tristate "Ciphers: AES, modes: ECB/CBC/CTS/CTR/XTS (ARMv8 Crypto Extensions)"
182 depends on KERNEL_MODE_NEON
183 select CRYPTO_SKCIPHER
184 select CRYPTO_LIB_AES
185 select CRYPTO_SIMD
186 help
189 depends on KERNEL_MODE_NEON
190 select CRYPTO_SKCIPHER
191 select CRYPTO_LIB_AES
192 select CRYPTO_SIMD
193 help
187 Use an implementation of AES in CBC, CTR and XTS modes that uses
188 ARMv8 Crypto Extensions
194 Length-preserving ciphers: AES cipher algorithms (FIPS-197)
195 with block cipher modes:
196 - ECB (Electronic Codebook) mode (NIST SP800-38A)
197 - CBC (Cipher Block Chaining) mode (NIST SP800-38A)
198 - CTR (Counter) mode (NIST SP800-38A)
199 - CTS (Cipher Text Stealing) mode (NIST SP800-38A)
200 - XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
201 and IEEE 1619)
189
202
203 Architecture: arm using:
204 - ARMv8 Crypto Extensions
205
190config CRYPTO_CHACHA20_NEON
206config CRYPTO_CHACHA20_NEON
191 tristate "NEON and scalar accelerated ChaCha stream cipher algorithms"
207 tristate "Ciphers: ChaCha20, XChaCha20, XChaCha12 (NEON)"
192 select CRYPTO_SKCIPHER
193 select CRYPTO_ARCH_HAVE_LIB_CHACHA
208 select CRYPTO_SKCIPHER
209 select CRYPTO_ARCH_HAVE_LIB_CHACHA
210 help
211 Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
212 stream cipher algorithms
194
213
214 Architecture: arm using:
215 - NEON (Advanced SIMD) extensions
216
195config CRYPTO_CRC32_ARM_CE
196 tristate "CRC32C and CRC32"
197 depends on KERNEL_MODE_NEON
198 depends on CRC32
199 select CRYPTO_HASH
200 help
201 CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
202 and CRC32 CRC algorithm (IEEE 802.3)

--- 19 unchanged lines hidden ---
217config CRYPTO_CRC32_ARM_CE
218 tristate "CRC32C and CRC32"
219 depends on KERNEL_MODE_NEON
220 depends on CRC32
221 select CRYPTO_HASH
222 help
223 CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
224 and CRC32 CRC algorithm (IEEE 802.3)

--- 19 unchanged lines hidden ---