From 43600106e32809a4dead79fec67a63e9860e3d5d Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Tue, 16 May 2006 22:06:54 +1000 Subject: [CRYPTO] digest: Remove unnecessary zeroing during init Various digest algorithms operate one block at a time and therefore keep a temporary buffer of partial blocks. This buffer does not need to be initialised since there is a counter which indicates what is and isn't valid in it. Signed-off-by: Herbert Xu --- arch/s390/crypto/sha1_s390.c | 23 ++++++++++++----------- arch/s390/crypto/sha256_s390.c | 1 - crypto/sha256.c | 1 - crypto/sha512.c | 2 -- crypto/tgr192.c | 1 - 5 files changed, 12 insertions(+), 16 deletions(-) diff --git a/arch/s390/crypto/sha1_s390.c b/arch/s390/crypto/sha1_s390.c index 98c896b86dcd..36bb5346a8c4 100644 --- a/arch/s390/crypto/sha1_s390.c +++ b/arch/s390/crypto/sha1_s390.c @@ -40,19 +40,20 @@ struct crypt_s390_sha1_ctx { u8 buffer[2 * SHA1_BLOCK_SIZE]; }; -static void -sha1_init(void *ctx) +static void sha1_init(void *ctx_arg) { - static const struct crypt_s390_sha1_ctx initstate = { - .state = { - 0x67452301, - 0xEFCDAB89, - 0x98BADCFE, - 0x10325476, - 0xC3D2E1F0 - }, + struct crypt_s390_sha1_ctx *ctx = ctx_arg; + static const u32 initstate[5] = { + 0x67452301, + 0xEFCDAB89, + 0x98BADCFE, + 0x10325476, + 0xC3D2E1F0 }; - memcpy(ctx, &initstate, sizeof(initstate)); + + ctx->count = 0; + memcpy(ctx->state, &initstate, sizeof(initstate)); + ctx->buf_len = 0; } static void diff --git a/arch/s390/crypto/sha256_s390.c b/arch/s390/crypto/sha256_s390.c index 1ec5e92b3454..2c76e7bee41c 100644 --- a/arch/s390/crypto/sha256_s390.c +++ b/arch/s390/crypto/sha256_s390.c @@ -44,7 +44,6 @@ static void sha256_init(void *ctx) sctx->state[6] = 0x1f83d9ab; sctx->state[7] = 0x5be0cd19; sctx->count = 0; - memset(sctx->buf, 0, sizeof(sctx->buf)); } static void sha256_update(void *ctx, const u8 *data, unsigned int len) diff --git a/crypto/sha256.c b/crypto/sha256.c index d62264a8a33e..4533a0564895 100644 --- a/crypto/sha256.c +++ b/crypto/sha256.c @@ -242,7 +242,6 @@ static void sha256_init(void *ctx) sctx->state[6] = H6; sctx->state[7] = H7; sctx->count[0] = sctx->count[1] = 0; - memset(sctx->buf, 0, sizeof(sctx->buf)); } static void sha256_update(void *ctx, const u8 *data, unsigned int len) diff --git a/crypto/sha512.c b/crypto/sha512.c index 7dbec4f6b947..bc77a66d9de2 100644 --- a/crypto/sha512.c +++ b/crypto/sha512.c @@ -173,7 +173,6 @@ sha512_init(void *ctx) sctx->state[6] = H6; sctx->state[7] = H7; sctx->count[0] = sctx->count[1] = sctx->count[2] = sctx->count[3] = 0; - memset(sctx->buf, 0, sizeof(sctx->buf)); } static void @@ -189,7 +188,6 @@ sha384_init(void *ctx) sctx->state[6] = HP6; sctx->state[7] = HP7; sctx->count[0] = sctx->count[1] = sctx->count[2] = sctx->count[3] = 0; - memset(sctx->buf, 0, sizeof(sctx->buf)); } static void diff --git a/crypto/tgr192.c b/crypto/tgr192.c index 1eae1bb7e495..004bb841cc5b 100644 --- a/crypto/tgr192.c +++ b/crypto/tgr192.c @@ -500,7 +500,6 @@ static void tgr192_init(void *ctx) { struct tgr192_ctx *tctx = ctx; - memset (tctx->hash, 0, 64); tctx->a = 0x0123456789abcdefULL; tctx->b = 0xfedcba9876543210ULL; tctx->c = 0xf096a5b4c3b2e187ULL; -- cgit v1.2.3