]>
Commit | Line | Data |
---|---|---|
1 | ||
2 | menuconfig ARM_CRYPTO | |
3 | bool "ARM Accelerated Cryptographic Algorithms" | |
4 | depends on ARM | |
5 | help | |
6 | Say Y here to choose from a selection of cryptographic algorithms | |
7 | implemented using ARM specific CPU features or instructions. | |
8 | ||
9 | if ARM_CRYPTO | |
10 | ||
11 | config CRYPTO_SHA1_ARM | |
12 | tristate "SHA1 digest algorithm (ARM-asm)" | |
13 | select CRYPTO_SHA1 | |
14 | select CRYPTO_HASH | |
15 | help | |
16 | SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented | |
17 | using optimized ARM assembler. | |
18 | ||
19 | config CRYPTO_SHA1_ARM_NEON | |
20 | tristate "SHA1 digest algorithm (ARM NEON)" | |
21 | depends on KERNEL_MODE_NEON | |
22 | select CRYPTO_SHA1_ARM | |
23 | select CRYPTO_SHA1 | |
24 | select CRYPTO_HASH | |
25 | help | |
26 | SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented | |
27 | using optimized ARM NEON assembly, when NEON instructions are | |
28 | available. | |
29 | ||
30 | config CRYPTO_SHA1_ARM_CE | |
31 | tristate "SHA1 digest algorithm (ARM v8 Crypto Extensions)" | |
32 | depends on KERNEL_MODE_NEON | |
33 | select CRYPTO_SHA1_ARM | |
34 | select CRYPTO_HASH | |
35 | help | |
36 | SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented | |
37 | using special ARMv8 Crypto Extensions. | |
38 | ||
39 | config CRYPTO_SHA2_ARM_CE | |
40 | tristate "SHA-224/256 digest algorithm (ARM v8 Crypto Extensions)" | |
41 | depends on KERNEL_MODE_NEON | |
42 | select CRYPTO_SHA256 | |
43 | select CRYPTO_HASH | |
44 | help | |
45 | SHA-256 secure hash standard (DFIPS 180-2) implemented | |
46 | using special ARMv8 Crypto Extensions. | |
47 | ||
48 | config CRYPTO_SHA256_ARM | |
49 | tristate "SHA-224/256 digest algorithm (ARM-asm and NEON)" | |
50 | select CRYPTO_HASH | |
51 | help | |
52 | SHA-256 secure hash standard (DFIPS 180-2) implemented | |
53 | using optimized ARM assembler and NEON, when available. | |
54 | ||
55 | config CRYPTO_SHA512_ARM_NEON | |
56 | tristate "SHA384 and SHA512 digest algorithm (ARM NEON)" | |
57 | depends on KERNEL_MODE_NEON | |
58 | select CRYPTO_SHA512 | |
59 | select CRYPTO_HASH | |
60 | help | |
61 | SHA-512 secure hash standard (DFIPS 180-2) implemented | |
62 | using ARM NEON instructions, when available. | |
63 | ||
64 | This version of SHA implements a 512 bit hash with 256 bits of | |
65 | security against collision attacks. | |
66 | ||
67 | This code also includes SHA-384, a 384 bit hash with 192 bits | |
68 | of security against collision attacks. | |
69 | ||
70 | config CRYPTO_AES_ARM | |
71 | tristate "AES cipher algorithms (ARM-asm)" | |
72 | depends on ARM | |
73 | select CRYPTO_ALGAPI | |
74 | select CRYPTO_AES | |
75 | help | |
76 | Use optimized AES assembler routines for ARM platforms. | |
77 | ||
78 | AES cipher algorithms (FIPS-197). AES uses the Rijndael | |
79 | algorithm. | |
80 | ||
81 | Rijndael appears to be consistently a very good performer in | |
82 | both hardware and software across a wide range of computing | |
83 | environments regardless of its use in feedback or non-feedback | |
84 | modes. Its key setup time is excellent, and its key agility is | |
85 | good. Rijndael's very low memory requirements make it very well | |
86 | suited for restricted-space environments, in which it also | |
87 | demonstrates excellent performance. Rijndael's operations are | |
88 | among the easiest to defend against power and timing attacks. | |
89 | ||
90 | The AES specifies three key sizes: 128, 192 and 256 bits | |
91 | ||
92 | See <http://csrc.nist.gov/encryption/aes/> for more information. | |
93 | ||
94 | config CRYPTO_AES_ARM_BS | |
95 | tristate "Bit sliced AES using NEON instructions" | |
96 | depends on KERNEL_MODE_NEON | |
97 | select CRYPTO_ALGAPI | |
98 | select CRYPTO_AES_ARM | |
99 | select CRYPTO_ABLK_HELPER | |
100 | help | |
101 | Use a faster and more secure NEON based implementation of AES in CBC, | |
102 | CTR and XTS modes | |
103 | ||
104 | Bit sliced AES gives around 45% speedup on Cortex-A15 for CTR mode | |
105 | and for XTS mode encryption, CBC and XTS mode decryption speedup is | |
106 | around 25%. (CBC encryption speed is not affected by this driver.) | |
107 | This implementation does not rely on any lookup tables so it is | |
108 | believed to be invulnerable to cache timing attacks. | |
109 | ||
110 | config CRYPTO_AES_ARM_CE | |
111 | tristate "Accelerated AES using ARMv8 Crypto Extensions" | |
112 | depends on KERNEL_MODE_NEON | |
113 | select CRYPTO_ALGAPI | |
114 | select CRYPTO_ABLK_HELPER | |
115 | help | |
116 | Use an implementation of AES in CBC, CTR and XTS modes that uses | |
117 | ARMv8 Crypto Extensions | |
118 | ||
119 | config CRYPTO_GHASH_ARM_CE | |
120 | tristate "PMULL-accelerated GHASH using ARMv8 Crypto Extensions" | |
121 | depends on KERNEL_MODE_NEON | |
122 | select CRYPTO_HASH | |
123 | select CRYPTO_CRYPTD | |
124 | help | |
125 | Use an implementation of GHASH (used by the GCM AEAD chaining mode) | |
126 | that uses the 64x64 to 128 bit polynomial multiplication (vmull.p64) | |
127 | that is part of the ARMv8 Crypto Extensions | |
128 | ||
129 | endif |