aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crypto/sha512_generic.c20
-rw-r--r--include/crypto/sha.h6
2 files changed, 13 insertions, 13 deletions
diff --git a/crypto/sha512_generic.c b/crypto/sha512_generic.c
index 3bea38d12242..4fe95eb03226 100644
--- a/crypto/sha512_generic.c
+++ b/crypto/sha512_generic.c
@@ -21,12 +21,6 @@
21#include <linux/percpu.h> 21#include <linux/percpu.h>
22#include <asm/byteorder.h> 22#include <asm/byteorder.h>
23 23
24struct sha512_ctx {
25 u64 state[8];
26 u32 count[4];
27 u8 buf[128];
28};
29
30static DEFINE_PER_CPU(u64[80], msg_schedule); 24static DEFINE_PER_CPU(u64[80], msg_schedule);
31 25
32static inline u64 Ch(u64 x, u64 y, u64 z) 26static inline u64 Ch(u64 x, u64 y, u64 z)
@@ -141,7 +135,7 @@ sha512_transform(u64 *state, const u8 *input)
141static int 135static int
142sha512_init(struct shash_desc *desc) 136sha512_init(struct shash_desc *desc)
143{ 137{
144 struct sha512_ctx *sctx = shash_desc_ctx(desc); 138 struct sha512_state *sctx = shash_desc_ctx(desc);
145 sctx->state[0] = SHA512_H0; 139 sctx->state[0] = SHA512_H0;
146 sctx->state[1] = SHA512_H1; 140 sctx->state[1] = SHA512_H1;
147 sctx->state[2] = SHA512_H2; 141 sctx->state[2] = SHA512_H2;
@@ -158,7 +152,7 @@ sha512_init(struct shash_desc *desc)
158static int 152static int
159sha384_init(struct shash_desc *desc) 153sha384_init(struct shash_desc *desc)
160{ 154{
161 struct sha512_ctx *sctx = shash_desc_ctx(desc); 155 struct sha512_state *sctx = shash_desc_ctx(desc);
162 sctx->state[0] = SHA384_H0; 156 sctx->state[0] = SHA384_H0;
163 sctx->state[1] = SHA384_H1; 157 sctx->state[1] = SHA384_H1;
164 sctx->state[2] = SHA384_H2; 158 sctx->state[2] = SHA384_H2;
@@ -175,7 +169,7 @@ sha384_init(struct shash_desc *desc)
175static int 169static int
176sha512_update(struct shash_desc *desc, const u8 *data, unsigned int len) 170sha512_update(struct shash_desc *desc, const u8 *data, unsigned int len)
177{ 171{
178 struct sha512_ctx *sctx = shash_desc_ctx(desc); 172 struct sha512_state *sctx = shash_desc_ctx(desc);
179 173
180 unsigned int i, index, part_len; 174 unsigned int i, index, part_len;
181 175
@@ -214,7 +208,7 @@ sha512_update(struct shash_desc *desc, const u8 *data, unsigned int len)
214static int 208static int
215sha512_final(struct shash_desc *desc, u8 *hash) 209sha512_final(struct shash_desc *desc, u8 *hash)
216{ 210{
217 struct sha512_ctx *sctx = shash_desc_ctx(desc); 211 struct sha512_state *sctx = shash_desc_ctx(desc);
218 static u8 padding[128] = { 0x80, }; 212 static u8 padding[128] = { 0x80, };
219 __be64 *dst = (__be64 *)hash; 213 __be64 *dst = (__be64 *)hash;
220 __be32 bits[4]; 214 __be32 bits[4];
@@ -240,7 +234,7 @@ sha512_final(struct shash_desc *desc, u8 *hash)
240 dst[i] = cpu_to_be64(sctx->state[i]); 234 dst[i] = cpu_to_be64(sctx->state[i]);
241 235
242 /* Zeroize sensitive information. */ 236 /* Zeroize sensitive information. */
243 memset(sctx, 0, sizeof(struct sha512_ctx)); 237 memset(sctx, 0, sizeof(struct sha512_state));
244 238
245 return 0; 239 return 0;
246} 240}
@@ -262,7 +256,7 @@ static struct shash_alg sha512 = {
262 .init = sha512_init, 256 .init = sha512_init,
263 .update = sha512_update, 257 .update = sha512_update,
264 .final = sha512_final, 258 .final = sha512_final,
265 .descsize = sizeof(struct sha512_ctx), 259 .descsize = sizeof(struct sha512_state),
266 .base = { 260 .base = {
267 .cra_name = "sha512", 261 .cra_name = "sha512",
268 .cra_flags = CRYPTO_ALG_TYPE_SHASH, 262 .cra_flags = CRYPTO_ALG_TYPE_SHASH,
@@ -276,7 +270,7 @@ static struct shash_alg sha384 = {
276 .init = sha384_init, 270 .init = sha384_init,
277 .update = sha512_update, 271 .update = sha512_update,
278 .final = sha384_final, 272 .final = sha384_final,
279 .descsize = sizeof(struct sha512_ctx), 273 .descsize = sizeof(struct sha512_state),
280 .base = { 274 .base = {
281 .cra_name = "sha384", 275 .cra_name = "sha384",
282 .cra_flags = CRYPTO_ALG_TYPE_SHASH, 276 .cra_flags = CRYPTO_ALG_TYPE_SHASH,
diff --git a/include/crypto/sha.h b/include/crypto/sha.h
index 88ef5eb9514d..45b25ccf7cc6 100644
--- a/include/crypto/sha.h
+++ b/include/crypto/sha.h
@@ -76,4 +76,10 @@ struct sha256_state {
76 u8 buf[SHA256_BLOCK_SIZE]; 76 u8 buf[SHA256_BLOCK_SIZE];
77}; 77};
78 78
79struct sha512_state {
80 u64 state[8];
81 u32 count[4];
82 u8 buf[128];
83};
84
79#endif 85#endif