xref: /linux/arch/arm/crypto/Kconfig (revision 3759ee057261a45da0505e79084de8b6ac31c4a5)
1652ccae5SArd Biesheuvel
2652ccae5SArd Biesheuvelmenuconfig ARM_CRYPTO
3652ccae5SArd Biesheuvel	bool "ARM Accelerated Cryptographic Algorithms"
4652ccae5SArd Biesheuvel	depends on ARM
5652ccae5SArd Biesheuvel	help
6652ccae5SArd Biesheuvel	  Say Y here to choose from a selection of cryptographic algorithms
7652ccae5SArd Biesheuvel	  implemented using ARM specific CPU features or instructions.
8652ccae5SArd Biesheuvel
9652ccae5SArd Biesheuvelif ARM_CRYPTO
10652ccae5SArd Biesheuvel
11652ccae5SArd Biesheuvelconfig CRYPTO_SHA1_ARM
12652ccae5SArd Biesheuvel	tristate "SHA1 digest algorithm (ARM-asm)"
13652ccae5SArd Biesheuvel	select CRYPTO_SHA1
14652ccae5SArd Biesheuvel	select CRYPTO_HASH
15652ccae5SArd Biesheuvel	help
16652ccae5SArd Biesheuvel	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
17652ccae5SArd Biesheuvel	  using optimized ARM assembler.
18652ccae5SArd Biesheuvel
19652ccae5SArd Biesheuvelconfig CRYPTO_SHA1_ARM_NEON
20652ccae5SArd Biesheuvel	tristate "SHA1 digest algorithm (ARM NEON)"
21652ccae5SArd Biesheuvel	depends on KERNEL_MODE_NEON
22652ccae5SArd Biesheuvel	select CRYPTO_SHA1_ARM
23652ccae5SArd Biesheuvel	select CRYPTO_SHA1
24652ccae5SArd Biesheuvel	select CRYPTO_HASH
25652ccae5SArd Biesheuvel	help
26652ccae5SArd Biesheuvel	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
27652ccae5SArd Biesheuvel	  using optimized ARM NEON assembly, when NEON instructions are
28652ccae5SArd Biesheuvel	  available.
29652ccae5SArd Biesheuvel
30864cbeedSArd Biesheuvelconfig CRYPTO_SHA1_ARM_CE
31864cbeedSArd Biesheuvel	tristate "SHA1 digest algorithm (ARM v8 Crypto Extensions)"
32864cbeedSArd Biesheuvel	depends on KERNEL_MODE_NEON
33864cbeedSArd Biesheuvel	select CRYPTO_SHA1_ARM
34864cbeedSArd Biesheuvel	select CRYPTO_HASH
35864cbeedSArd Biesheuvel	help
36864cbeedSArd Biesheuvel	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
37864cbeedSArd Biesheuvel	  using special ARMv8 Crypto Extensions.
38864cbeedSArd Biesheuvel
39006d0624SArd Biesheuvelconfig CRYPTO_SHA2_ARM_CE
40006d0624SArd Biesheuvel	tristate "SHA-224/256 digest algorithm (ARM v8 Crypto Extensions)"
41006d0624SArd Biesheuvel	depends on KERNEL_MODE_NEON
429205b949SArd Biesheuvel	select CRYPTO_SHA256_ARM
43006d0624SArd Biesheuvel	select CRYPTO_HASH
44006d0624SArd Biesheuvel	help
45006d0624SArd Biesheuvel	  SHA-256 secure hash standard (DFIPS 180-2) implemented
46006d0624SArd Biesheuvel	  using special ARMv8 Crypto Extensions.
47006d0624SArd Biesheuvel
48f2f770d7SSami Tolvanenconfig CRYPTO_SHA256_ARM
49f2f770d7SSami Tolvanen	tristate "SHA-224/256 digest algorithm (ARM-asm and NEON)"
50f2f770d7SSami Tolvanen	select CRYPTO_HASH
51b48321deSArnd Bergmann	depends on !CPU_V7M
52f2f770d7SSami Tolvanen	help
53f2f770d7SSami Tolvanen	  SHA-256 secure hash standard (DFIPS 180-2) implemented
54f2f770d7SSami Tolvanen	  using optimized ARM assembler and NEON, when available.
55f2f770d7SSami Tolvanen
56c80ae7caSArd Biesheuvelconfig CRYPTO_SHA512_ARM
57c80ae7caSArd Biesheuvel	tristate "SHA-384/512 digest algorithm (ARM-asm and NEON)"
58652ccae5SArd Biesheuvel	select CRYPTO_HASH
59c80ae7caSArd Biesheuvel	depends on !CPU_V7M
60652ccae5SArd Biesheuvel	help
61652ccae5SArd Biesheuvel	  SHA-512 secure hash standard (DFIPS 180-2) implemented
62c80ae7caSArd Biesheuvel	  using optimized ARM assembler and NEON, when available.
63652ccae5SArd Biesheuvel
64652ccae5SArd Biesheuvelconfig CRYPTO_AES_ARM
6581edb426SArd Biesheuvel	tristate "Scalar AES cipher for ARM"
66652ccae5SArd Biesheuvel	select CRYPTO_ALGAPI
67652ccae5SArd Biesheuvel	select CRYPTO_AES
68652ccae5SArd Biesheuvel	help
69652ccae5SArd Biesheuvel	  Use optimized AES assembler routines for ARM platforms.
70652ccae5SArd Biesheuvel
71652ccae5SArd Biesheuvelconfig CRYPTO_AES_ARM_BS
72652ccae5SArd Biesheuvel	tristate "Bit sliced AES using NEON instructions"
73652ccae5SArd Biesheuvel	depends on KERNEL_MODE_NEON
746fdf436fSHerbert Xu	select CRYPTO_BLKCIPHER
756fdf436fSHerbert Xu	select CRYPTO_SIMD
76b56f5cbcSArd Biesheuvel	select CRYPTO_AES
77652ccae5SArd Biesheuvel	help
78652ccae5SArd Biesheuvel	  Use a faster and more secure NEON based implementation of AES in CBC,
79652ccae5SArd Biesheuvel	  CTR and XTS modes
80652ccae5SArd Biesheuvel
81652ccae5SArd Biesheuvel	  Bit sliced AES gives around 45% speedup on Cortex-A15 for CTR mode
82652ccae5SArd Biesheuvel	  and for XTS mode encryption, CBC and XTS mode decryption speedup is
83652ccae5SArd Biesheuvel	  around 25%. (CBC encryption speed is not affected by this driver.)
84652ccae5SArd Biesheuvel	  This implementation does not rely on any lookup tables so it is
85652ccae5SArd Biesheuvel	  believed to be invulnerable to cache timing attacks.
86652ccae5SArd Biesheuvel
8786464859SArd Biesheuvelconfig CRYPTO_AES_ARM_CE
8886464859SArd Biesheuvel	tristate "Accelerated AES using ARMv8 Crypto Extensions"
8986464859SArd Biesheuvel	depends on KERNEL_MODE_NEON
906fdf436fSHerbert Xu	select CRYPTO_BLKCIPHER
91585b5fa6SHerbert Xu	select CRYPTO_SIMD
9286464859SArd Biesheuvel	help
9386464859SArd Biesheuvel	  Use an implementation of AES in CBC, CTR and XTS modes that uses
9486464859SArd Biesheuvel	  ARMv8 Crypto Extensions
9586464859SArd Biesheuvel
96f1e866b1SArd Biesheuvelconfig CRYPTO_GHASH_ARM_CE
97*3759ee05SArd Biesheuvel	tristate "PMULL-accelerated GHASH using NEON/ARMv8 Crypto Extensions"
98f1e866b1SArd Biesheuvel	depends on KERNEL_MODE_NEON
99f1e866b1SArd Biesheuvel	select CRYPTO_HASH
100f1e866b1SArd Biesheuvel	select CRYPTO_CRYPTD
101f1e866b1SArd Biesheuvel	help
102f1e866b1SArd Biesheuvel	  Use an implementation of GHASH (used by the GCM AEAD chaining mode)
103f1e866b1SArd Biesheuvel	  that uses the 64x64 to 128 bit polynomial multiplication (vmull.p64)
104*3759ee05SArd Biesheuvel	  that is part of the ARMv8 Crypto Extensions, or a slower variant that
105*3759ee05SArd Biesheuvel	  uses the vmull.p8 instruction that is part of the basic NEON ISA.
106f1e866b1SArd Biesheuvel
1071d481f1cSArd Biesheuvelconfig CRYPTO_CRCT10DIF_ARM_CE
1081d481f1cSArd Biesheuvel	tristate "CRCT10DIF digest algorithm using PMULL instructions"
1091d481f1cSArd Biesheuvel	depends on KERNEL_MODE_NEON && CRC_T10DIF
1101d481f1cSArd Biesheuvel	select CRYPTO_HASH
1111d481f1cSArd Biesheuvel
112d0a3431aSArd Biesheuvelconfig CRYPTO_CRC32_ARM_CE
113d0a3431aSArd Biesheuvel	tristate "CRC32(C) digest algorithm using CRC and/or PMULL instructions"
114d0a3431aSArd Biesheuvel	depends on KERNEL_MODE_NEON && CRC32
115d0a3431aSArd Biesheuvel	select CRYPTO_HASH
116d0a3431aSArd Biesheuvel
117afaf712eSArd Biesheuvelconfig CRYPTO_CHACHA20_NEON
118afaf712eSArd Biesheuvel	tristate "NEON accelerated ChaCha20 symmetric cipher"
119afaf712eSArd Biesheuvel	depends on KERNEL_MODE_NEON
120afaf712eSArd Biesheuvel	select CRYPTO_BLKCIPHER
121afaf712eSArd Biesheuvel	select CRYPTO_CHACHA20
122afaf712eSArd Biesheuvel
123652ccae5SArd Biesheuvelendif
124