From b6e4bc13099bf1287f7dc2ac500bfbb4e59dfb46 Mon Sep 17 00:00:00 2001 From: Zhi Guan Date: Wed, 12 Oct 2022 14:03:10 +0800 Subject: [PATCH] Remove warning of hashes --- include/gmssl/sha2.h | 8 ++++---- src/sha1.c | 12 +++++++----- src/sha256.c | 12 +++++++----- src/sha512.c | 12 +++++++----- src/sm3.c | 5 ++--- 5 files changed, 27 insertions(+), 22 deletions(-) diff --git a/include/gmssl/sha2.h b/include/gmssl/sha2.h index 816ca949..744e7dc7 100644 --- a/include/gmssl/sha2.h +++ b/include/gmssl/sha2.h @@ -32,7 +32,7 @@ typedef struct { uint32_t state[SHA224_STATE_WORDS]; uint64_t nblocks; uint8_t block[SHA224_BLOCK_SIZE]; - int num; + size_t num; } SHA224_CTX; void sha224_init(SHA224_CTX *ctx); @@ -50,7 +50,7 @@ typedef struct { uint32_t state[SHA256_STATE_WORDS]; uint64_t nblocks; uint8_t block[SHA256_BLOCK_SIZE]; - int num; + size_t num; } SHA256_CTX; void sha256_init(SHA256_CTX *ctx); @@ -68,7 +68,7 @@ typedef struct { uint64_t state[SHA384_STATE_WORDS]; uint64_t nblocks; uint8_t block[SHA384_BLOCK_SIZE]; - int num; + size_t num; } SHA384_CTX; void sha384_init(SHA384_CTX *ctx); @@ -86,7 +86,7 @@ typedef struct { uint64_t state[SHA512_STATE_WORDS]; uint64_t nblocks; uint8_t block[SHA512_BLOCK_SIZE]; - int num; + size_t num; } SHA512_CTX; void sha512_init(SHA512_CTX *ctx); diff --git a/src/sha1.c b/src/sha1.c index 722be524..7a9510a4 100644 --- a/src/sha1.c +++ b/src/sha1.c @@ -109,7 +109,7 @@ void sha1_update(SHA1_CTX *ctx, const unsigned char *data, size_t datalen) ctx->num &= 0x3f; if (ctx->num) { - unsigned int left = SHA1_BLOCK_SIZE - ctx->num; + size_t left = SHA1_BLOCK_SIZE - ctx->num; if (datalen < left) { memcpy(ctx->block + ctx->num, data, datalen); ctx->num += datalen; @@ -124,10 +124,12 @@ void sha1_update(SHA1_CTX *ctx, const unsigned char *data, size_t datalen) } blocks = datalen / SHA1_BLOCK_SIZE; - sha1_compress_blocks(ctx->state, data, blocks); - ctx->nblocks += blocks; - data += SHA1_BLOCK_SIZE * blocks; - datalen -= SHA1_BLOCK_SIZE * blocks; + if (blocks) { + sha1_compress_blocks(ctx->state, data, blocks); + ctx->nblocks += blocks; + data += SHA1_BLOCK_SIZE * blocks; + datalen -= SHA1_BLOCK_SIZE * blocks; + } ctx->num = datalen; if (datalen) { diff --git a/src/sha256.c b/src/sha256.c index ad159d64..96f2dc18 100644 --- a/src/sha256.c +++ b/src/sha256.c @@ -117,7 +117,7 @@ void sha256_update(SHA256_CTX *ctx, const unsigned char *data, size_t datalen) ctx->num &= 0x3f; if (ctx->num) { - unsigned int left = SHA256_BLOCK_SIZE - ctx->num; + size_t left = SHA256_BLOCK_SIZE - ctx->num; if (datalen < left) { memcpy(ctx->block + ctx->num, data, datalen); ctx->num += datalen; @@ -132,10 +132,12 @@ void sha256_update(SHA256_CTX *ctx, const unsigned char *data, size_t datalen) } blocks = datalen / SHA256_BLOCK_SIZE; - sha256_compress_blocks(ctx->state, data, blocks); - ctx->nblocks += blocks; - data += SHA256_BLOCK_SIZE * blocks; - datalen -= SHA256_BLOCK_SIZE * blocks; + if (blocks) { + sha256_compress_blocks(ctx->state, data, blocks); + ctx->nblocks += blocks; + data += SHA256_BLOCK_SIZE * blocks; + datalen -= SHA256_BLOCK_SIZE * blocks; + } ctx->num = datalen; if (datalen) { diff --git a/src/sha512.c b/src/sha512.c index d3a5667d..6bed48e7 100644 --- a/src/sha512.c +++ b/src/sha512.c @@ -36,7 +36,7 @@ void sha512_update(SHA512_CTX *ctx, const unsigned char *data, size_t datalen) size_t blocks; if (ctx->num) { - unsigned int left = SHA512_BLOCK_SIZE - ctx->num; + size_t left = SHA512_BLOCK_SIZE - ctx->num; if (datalen < left) { memcpy(ctx->block + ctx->num, data, datalen); ctx->num += datalen; @@ -51,10 +51,12 @@ void sha512_update(SHA512_CTX *ctx, const unsigned char *data, size_t datalen) } blocks = datalen / SHA512_BLOCK_SIZE; - sha512_compress_blocks(ctx->state, data, blocks); - ctx->nblocks += blocks; - data += SHA512_BLOCK_SIZE * blocks; - datalen -= SHA512_BLOCK_SIZE * blocks; + if (blocks) { + sha512_compress_blocks(ctx->state, data, blocks); + ctx->nblocks += blocks; + data += SHA512_BLOCK_SIZE * blocks; + datalen -= SHA512_BLOCK_SIZE * blocks; + } ctx->num = datalen; if (datalen) { diff --git a/src/sm3.c b/src/sm3.c index aff3b967..6ab76cee 100644 --- a/src/sm3.c +++ b/src/sm3.c @@ -311,11 +311,10 @@ void sm3_init(SM3_CTX *ctx) void sm3_update(SM3_CTX *ctx, const uint8_t *data, size_t data_len) { size_t blocks; - - + ctx->num &= 0x3f; if (ctx->num) { - unsigned int left = SM3_BLOCK_SIZE - ctx->num; + size_t left = SM3_BLOCK_SIZE - ctx->num; if (data_len < left) { memcpy(ctx->block + ctx->num, data, data_len); ctx->num += data_len;