xref: /linux/arch/arm/crypto/Kconfig (revision 864cbeed4ab22de8c4d9a49101e9fd63c6f7fda2)
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
30*864cbeedSArd Biesheuvelconfig CRYPTO_SHA1_ARM_CE
31*864cbeedSArd Biesheuvel	tristate "SHA1 digest algorithm (ARM v8 Crypto Extensions)"
32*864cbeedSArd Biesheuvel	depends on KERNEL_MODE_NEON
33*864cbeedSArd Biesheuvel	select CRYPTO_SHA1_ARM
34*864cbeedSArd Biesheuvel	select CRYPTO_SHA1
35*864cbeedSArd Biesheuvel	select CRYPTO_HASH
36*864cbeedSArd Biesheuvel	help
37*864cbeedSArd Biesheuvel	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
38*864cbeedSArd Biesheuvel	  using special ARMv8 Crypto Extensions.
39*864cbeedSArd Biesheuvel
40652ccae5SArd Biesheuvelconfig CRYPTO_SHA512_ARM_NEON
41652ccae5SArd Biesheuvel	tristate "SHA384 and SHA512 digest algorithm (ARM NEON)"
42652ccae5SArd Biesheuvel	depends on KERNEL_MODE_NEON
43652ccae5SArd Biesheuvel	select CRYPTO_SHA512
44652ccae5SArd Biesheuvel	select CRYPTO_HASH
45652ccae5SArd Biesheuvel	help
46652ccae5SArd Biesheuvel	  SHA-512 secure hash standard (DFIPS 180-2) implemented
47652ccae5SArd Biesheuvel	  using ARM NEON instructions, when available.
48652ccae5SArd Biesheuvel
49652ccae5SArd Biesheuvel	  This version of SHA implements a 512 bit hash with 256 bits of
50652ccae5SArd Biesheuvel	  security against collision attacks.
51652ccae5SArd Biesheuvel
52652ccae5SArd Biesheuvel	  This code also includes SHA-384, a 384 bit hash with 192 bits
53652ccae5SArd Biesheuvel	  of security against collision attacks.
54652ccae5SArd Biesheuvel
55652ccae5SArd Biesheuvelconfig CRYPTO_AES_ARM
56652ccae5SArd Biesheuvel	tristate "AES cipher algorithms (ARM-asm)"
57652ccae5SArd Biesheuvel	depends on ARM
58652ccae5SArd Biesheuvel	select CRYPTO_ALGAPI
59652ccae5SArd Biesheuvel	select CRYPTO_AES
60652ccae5SArd Biesheuvel	help
61652ccae5SArd Biesheuvel	  Use optimized AES assembler routines for ARM platforms.
62652ccae5SArd Biesheuvel
63652ccae5SArd Biesheuvel	  AES cipher algorithms (FIPS-197). AES uses the Rijndael
64652ccae5SArd Biesheuvel	  algorithm.
65652ccae5SArd Biesheuvel
66652ccae5SArd Biesheuvel	  Rijndael appears to be consistently a very good performer in
67652ccae5SArd Biesheuvel	  both hardware and software across a wide range of computing
68652ccae5SArd Biesheuvel	  environments regardless of its use in feedback or non-feedback
69652ccae5SArd Biesheuvel	  modes. Its key setup time is excellent, and its key agility is
70652ccae5SArd Biesheuvel	  good. Rijndael's very low memory requirements make it very well
71652ccae5SArd Biesheuvel	  suited for restricted-space environments, in which it also
72652ccae5SArd Biesheuvel	  demonstrates excellent performance. Rijndael's operations are
73652ccae5SArd Biesheuvel	  among the easiest to defend against power and timing attacks.
74652ccae5SArd Biesheuvel
75652ccae5SArd Biesheuvel	  The AES specifies three key sizes: 128, 192 and 256 bits
76652ccae5SArd Biesheuvel
77652ccae5SArd Biesheuvel	  See <http://csrc.nist.gov/encryption/aes/> for more information.
78652ccae5SArd Biesheuvel
79652ccae5SArd Biesheuvelconfig CRYPTO_AES_ARM_BS
80652ccae5SArd Biesheuvel	tristate "Bit sliced AES using NEON instructions"
81652ccae5SArd Biesheuvel	depends on KERNEL_MODE_NEON
82652ccae5SArd Biesheuvel	select CRYPTO_ALGAPI
83652ccae5SArd Biesheuvel	select CRYPTO_AES_ARM
84652ccae5SArd Biesheuvel	select CRYPTO_ABLK_HELPER
85652ccae5SArd Biesheuvel	help
86652ccae5SArd Biesheuvel	  Use a faster and more secure NEON based implementation of AES in CBC,
87652ccae5SArd Biesheuvel	  CTR and XTS modes
88652ccae5SArd Biesheuvel
89652ccae5SArd Biesheuvel	  Bit sliced AES gives around 45% speedup on Cortex-A15 for CTR mode
90652ccae5SArd Biesheuvel	  and for XTS mode encryption, CBC and XTS mode decryption speedup is
91652ccae5SArd Biesheuvel	  around 25%. (CBC encryption speed is not affected by this driver.)
92652ccae5SArd Biesheuvel	  This implementation does not rely on any lookup tables so it is
93652ccae5SArd Biesheuvel	  believed to be invulnerable to cache timing attacks.
94652ccae5SArd Biesheuvel
95652ccae5SArd Biesheuvelendif
96