diff options
author | Niels Möller <nisse@lysator.liu.se> | 2013-09-28 09:43:12 +0200 |
---|---|---|
committer | Niels Möller <nisse@lysator.liu.se> | 2013-09-28 09:44:22 +0200 |
commit | cb83bd331e5774027bcab965ccf9bcbe798ad167 (patch) | |
tree | 3bbf1e2ee88e1ff1a27c877bd6cd21dc65f1d4a6 /sha1.c | |
parent | 89755c916c84f722f081b5d53e8472d963cfbfe4 (diff) | |
download | nettle-cb83bd331e5774027bcab965ccf9bcbe798ad167.tar.gz |
Made hash functions use an uint64_t for the block count.
Diffstat (limited to 'sha1.c')
-rw-r--r-- | sha1.c | 14 |
1 files changed, 6 insertions, 8 deletions
@@ -66,7 +66,7 @@ sha1_init(struct sha1_ctx *ctx) }; memcpy(ctx->state, iv, sizeof(ctx->state)); - ctx->count_low = ctx->count_high = 0; + ctx->count = 0; /* Initialize buffer */ ctx->index = 0; @@ -78,7 +78,7 @@ void sha1_update(struct sha1_ctx *ctx, size_t length, const uint8_t *data) { - MD_UPDATE (ctx, length, data, COMPRESS, MD_INCR(ctx)); + MD_UPDATE (ctx, length, data, COMPRESS, ctx->count++); } void @@ -86,19 +86,17 @@ sha1_digest(struct sha1_ctx *ctx, size_t length, uint8_t *digest) { - uint32_t high, low; + uint64_t bit_count; assert(length <= SHA1_DIGEST_SIZE); MD_PAD(ctx, 8, COMPRESS); - /* There are 512 = 2^9 bits in one block */ - high = (ctx->count_high << 9) | (ctx->count_low >> 23); - low = (ctx->count_low << 9) | (ctx->index << 3); + /* There are 512 = 2^9 bits in one block */ + bit_count = (ctx->count << 9) | (ctx->index << 3); /* append the 64 bit count */ - WRITE_UINT32(ctx->block + (SHA1_DATA_SIZE - 8), high); - WRITE_UINT32(ctx->block + (SHA1_DATA_SIZE - 4), low); + WRITE_UINT64(ctx->block + (SHA1_DATA_SIZE - 8), bit_count); _nettle_sha1_compress(ctx->state, ctx->block); _nettle_write_be32(length, digest, ctx->state); |