diff options
Diffstat (limited to 'crypto/sha512.c')
-rw-r--r-- | crypto/sha512.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/crypto/sha512.c b/crypto/sha512.c index bc77a66d9de2..2dfe7f170b48 100644 --- a/crypto/sha512.c +++ b/crypto/sha512.c | |||
@@ -161,9 +161,9 @@ sha512_transform(u64 *state, u64 *W, const u8 *input) | |||
161 | } | 161 | } |
162 | 162 | ||
163 | static void | 163 | static void |
164 | sha512_init(void *ctx) | 164 | sha512_init(struct crypto_tfm *tfm) |
165 | { | 165 | { |
166 | struct sha512_ctx *sctx = ctx; | 166 | struct sha512_ctx *sctx = crypto_tfm_ctx(tfm); |
167 | sctx->state[0] = H0; | 167 | sctx->state[0] = H0; |
168 | sctx->state[1] = H1; | 168 | sctx->state[1] = H1; |
169 | sctx->state[2] = H2; | 169 | sctx->state[2] = H2; |
@@ -176,9 +176,9 @@ sha512_init(void *ctx) | |||
176 | } | 176 | } |
177 | 177 | ||
178 | static void | 178 | static void |
179 | sha384_init(void *ctx) | 179 | sha384_init(struct crypto_tfm *tfm) |
180 | { | 180 | { |
181 | struct sha512_ctx *sctx = ctx; | 181 | struct sha512_ctx *sctx = crypto_tfm_ctx(tfm); |
182 | sctx->state[0] = HP0; | 182 | sctx->state[0] = HP0; |
183 | sctx->state[1] = HP1; | 183 | sctx->state[1] = HP1; |
184 | sctx->state[2] = HP2; | 184 | sctx->state[2] = HP2; |
@@ -191,9 +191,9 @@ sha384_init(void *ctx) | |||
191 | } | 191 | } |
192 | 192 | ||
193 | static void | 193 | static void |
194 | sha512_update(void *ctx, const u8 *data, unsigned int len) | 194 | sha512_update(struct crypto_tfm *tfm, const u8 *data, unsigned int len) |
195 | { | 195 | { |
196 | struct sha512_ctx *sctx = ctx; | 196 | struct sha512_ctx *sctx = crypto_tfm_ctx(tfm); |
197 | 197 | ||
198 | unsigned int i, index, part_len; | 198 | unsigned int i, index, part_len; |
199 | 199 | ||
@@ -231,9 +231,9 @@ sha512_update(void *ctx, const u8 *data, unsigned int len) | |||
231 | } | 231 | } |
232 | 232 | ||
233 | static void | 233 | static void |
234 | sha512_final(void *ctx, u8 *hash) | 234 | sha512_final(struct crypto_tfm *tfm, u8 *hash) |
235 | { | 235 | { |
236 | struct sha512_ctx *sctx = ctx; | 236 | struct sha512_ctx *sctx = crypto_tfm_ctx(tfm); |
237 | static u8 padding[128] = { 0x80, }; | 237 | static u8 padding[128] = { 0x80, }; |
238 | __be64 *dst = (__be64 *)hash; | 238 | __be64 *dst = (__be64 *)hash; |
239 | __be32 bits[4]; | 239 | __be32 bits[4]; |
@@ -249,10 +249,10 @@ sha512_final(void *ctx, u8 *hash) | |||
249 | /* Pad out to 112 mod 128. */ | 249 | /* Pad out to 112 mod 128. */ |
250 | index = (sctx->count[0] >> 3) & 0x7f; | 250 | index = (sctx->count[0] >> 3) & 0x7f; |
251 | pad_len = (index < 112) ? (112 - index) : ((128+112) - index); | 251 | pad_len = (index < 112) ? (112 - index) : ((128+112) - index); |
252 | sha512_update(sctx, padding, pad_len); | 252 | sha512_update(tfm, padding, pad_len); |
253 | 253 | ||
254 | /* Append length (before padding) */ | 254 | /* Append length (before padding) */ |
255 | sha512_update(sctx, (const u8 *)bits, sizeof(bits)); | 255 | sha512_update(tfm, (const u8 *)bits, sizeof(bits)); |
256 | 256 | ||
257 | /* Store state in digest */ | 257 | /* Store state in digest */ |
258 | for (i = 0; i < 8; i++) | 258 | for (i = 0; i < 8; i++) |
@@ -262,12 +262,11 @@ sha512_final(void *ctx, u8 *hash) | |||
262 | memset(sctx, 0, sizeof(struct sha512_ctx)); | 262 | memset(sctx, 0, sizeof(struct sha512_ctx)); |
263 | } | 263 | } |
264 | 264 | ||
265 | static void sha384_final(void *ctx, u8 *hash) | 265 | static void sha384_final(struct crypto_tfm *tfm, u8 *hash) |
266 | { | 266 | { |
267 | struct sha512_ctx *sctx = ctx; | ||
268 | u8 D[64]; | 267 | u8 D[64]; |
269 | 268 | ||
270 | sha512_final(sctx, D); | 269 | sha512_final(tfm, D); |
271 | 270 | ||
272 | memcpy(hash, D, 48); | 271 | memcpy(hash, D, 48); |
273 | memset(D, 0, 64); | 272 | memset(D, 0, 64); |