aboutsummaryrefslogtreecommitdiff
path: root/openssl/engines/ccgost/gosthash.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2014-04-14 23:45:39 +0200
committermarha <marha@users.sourceforge.net>2014-04-14 23:45:39 +0200
commit7c21629fbeb51b65fd0625bb36d888587d62fd89 (patch)
tree425433df36d64f529d2222de2d1680e0b0abca3f /openssl/engines/ccgost/gosthash.c
parent0bd141efd4832e01c8b269b8566dd5749e30ed55 (diff)
parent242d48135a12fc9167430f391ba0d27d9ad44c6b (diff)
downloadvcxsrv-7c21629fbeb51b65fd0625bb36d888587d62fd89.tar.gz
vcxsrv-7c21629fbeb51b65fd0625bb36d888587d62fd89.tar.bz2
vcxsrv-7c21629fbeb51b65fd0625bb36d888587d62fd89.zip
Merge remote-tracking branch 'origin/released'
Conflicts: openssl/Configure openssl/Makefile openssl/util/pl/VC-32.pl
Diffstat (limited to 'openssl/engines/ccgost/gosthash.c')
-rw-r--r--openssl/engines/ccgost/gosthash.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/openssl/engines/ccgost/gosthash.c b/openssl/engines/ccgost/gosthash.c
index 8c278aa64..91b2ce882 100644
--- a/openssl/engines/ccgost/gosthash.c
+++ b/openssl/engines/ccgost/gosthash.c
@@ -180,8 +180,6 @@ int start_hash(gost_hash_ctx *ctx)
*/
int hash_block(gost_hash_ctx *ctx,const byte *block, size_t length)
{
- const byte *curptr=block;
- const byte *barrier=block+(length-32);/* Last byte we can safely hash*/
if (ctx->left)
{
/*There are some bytes from previous step*/
@@ -196,24 +194,25 @@ int hash_block(gost_hash_ctx *ctx,const byte *block, size_t length)
{
return 1;
}
- curptr=block+add_bytes;
+ block+=add_bytes;
+ length-=add_bytes;
hash_step(ctx->cipher_ctx,ctx->H,ctx->remainder);
add_blocks(32,ctx->S,ctx->remainder);
ctx->len+=32;
ctx->left=0;
}
- while (curptr<=barrier)
+ while (length>=32)
{
- hash_step(ctx->cipher_ctx,ctx->H,curptr);
+ hash_step(ctx->cipher_ctx,ctx->H,block);
- add_blocks(32,ctx->S,curptr);
+ add_blocks(32,ctx->S,block);
ctx->len+=32;
- curptr+=32;
+ block+=32;
+ length-=32;
}
- if (curptr!=block+length)
+ if (length)
{
- ctx->left=block+length-curptr;
- memcpy(ctx->remainder,curptr,ctx->left);
+ memcpy(ctx->remainder,block,ctx->left=length);
}
return 1;
}