X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=gosthash.c;h=036a2b3520f85319bc324b7e1ce792943affd314;hb=a430c355a1d2eff5df6c96c7b6f928a609c2dd73;hp=72faa24ed5605fafc8db7316396f957e875a8fb1;hpb=c98ba9d03213d0c63d6874539d59f7b55fbc3fae;p=openssl-gost%2Fengine.git diff --git a/gosthash.c b/gosthash.c index 72faa24..036a2b3 100644 --- a/gosthash.c +++ b/gosthash.c @@ -154,7 +154,7 @@ static int hash_step(gost_ctx * c, byte * H, const byte * M) int init_gost_hash_ctx(gost_hash_ctx * ctx, const gost_subst_block * subst_block) { - memset(ctx, 0, sizeof(gost_hash_ctx)); + memset(ctx, 0, sizeof(*ctx)); ctx->cipher_ctx = (gost_ctx *) MYALLOC(sizeof(gost_ctx)); if (!ctx->cipher_ctx) { return 0; @@ -255,6 +255,8 @@ int finish_hash(gost_hash_ctx * ctx, byte * hashval) fin_len += ctx->left; } memset(buf, 0, 32); + if (fin_len == 0) + hash_step(ctx->cipher_ctx, H, buf); bptr = buf; fin_len <<= 3; /* Hash length in BITS!! */ while (fin_len > 0) {