mirror of
https://github.com/torvalds/linux.git
synced 2026-09-15 15:01:08 -04:00
[CRYPTO] Use standard byte order macros wherever possible
A lot of crypto code needs to read/write a 32-bit/64-bit words in a specific gender. Many of them open code them by reading/writing one byte at a time. This patch converts all the applicable usages over to use the standard byte order macros. This is based on a previous patch by Denis Vlasenko. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
committed by
David S. Miller
parent
2df15fffc6
commit
06ace7a9ba
@@ -21,6 +21,7 @@
|
||||
#include <linux/mm.h>
|
||||
#include <linux/crypto.h>
|
||||
#include <linux/cryptohash.h>
|
||||
#include <linux/types.h>
|
||||
#include <asm/scatterlist.h>
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
@@ -72,20 +73,12 @@ static void sha1_update(void *ctx, const u8 *data, unsigned int len)
|
||||
static void sha1_final(void* ctx, u8 *out)
|
||||
{
|
||||
struct sha1_ctx *sctx = ctx;
|
||||
u32 i, j, index, padlen;
|
||||
u64 t;
|
||||
u8 bits[8] = { 0, };
|
||||
__be32 *dst = (__be32 *)out;
|
||||
u32 i, index, padlen;
|
||||
__be64 bits;
|
||||
static const u8 padding[64] = { 0x80, };
|
||||
|
||||
t = sctx->count;
|
||||
bits[7] = 0xff & t; t>>=8;
|
||||
bits[6] = 0xff & t; t>>=8;
|
||||
bits[5] = 0xff & t; t>>=8;
|
||||
bits[4] = 0xff & t; t>>=8;
|
||||
bits[3] = 0xff & t; t>>=8;
|
||||
bits[2] = 0xff & t; t>>=8;
|
||||
bits[1] = 0xff & t; t>>=8;
|
||||
bits[0] = 0xff & t;
|
||||
bits = cpu_to_be64(sctx->count);
|
||||
|
||||
/* Pad out to 56 mod 64 */
|
||||
index = (sctx->count >> 3) & 0x3f;
|
||||
@@ -93,16 +86,11 @@ static void sha1_final(void* ctx, u8 *out)
|
||||
sha1_update(sctx, padding, padlen);
|
||||
|
||||
/* Append length */
|
||||
sha1_update(sctx, bits, sizeof bits);
|
||||
sha1_update(sctx, (const u8 *)&bits, sizeof(bits));
|
||||
|
||||
/* Store state in digest */
|
||||
for (i = j = 0; i < 5; i++, j += 4) {
|
||||
u32 t2 = sctx->state[i];
|
||||
out[j+3] = t2 & 0xff; t2>>=8;
|
||||
out[j+2] = t2 & 0xff; t2>>=8;
|
||||
out[j+1] = t2 & 0xff; t2>>=8;
|
||||
out[j ] = t2 & 0xff;
|
||||
}
|
||||
for (i = 0; i < 5; i++)
|
||||
dst[i] = cpu_to_be32(sctx->state[i]);
|
||||
|
||||
/* Wipe context */
|
||||
memset(sctx, 0, sizeof *sctx);
|
||||
|
||||
Reference in New Issue
Block a user