projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gosthash.c: use memmove in circle_xor8, as input pointers can be equal
[openssl.git]
/
engines
/
ccgost
/
gosthash.c
diff --git
a/engines/ccgost/gosthash.c
b/engines/ccgost/gosthash.c
index 1acd16317bf384966f6dcaaf9163587bbe77edd8..8c278aa6452e1e80555f79d442eff45d1e7be22c 100644
(file)
--- a/
engines/ccgost/gosthash.c
+++ b/
engines/ccgost/gosthash.c
@@
-42,7
+42,7
@@
static void circle_xor8 (const byte *w, byte *k)
byte buf[8];
int i;
memcpy(buf,w,8);
byte buf[8];
int i;
memcpy(buf,w,8);
- mem
cpy
(k,w+8,24);
+ mem
move
(k,w+8,24);
for(i=0;i<8;i++)
k[i+24]=buf[i]^k[i];
}
for(i=0;i<8;i++)
k[i+24]=buf[i]^k[i];
}
@@
-86,7
+86,7
@@
static void xor_blocks (byte *result,const byte *a,const byte *b,size_t len)
*/
static int hash_step(gost_ctx *c,byte *H,const byte *M)
{
*/
static int hash_step(gost_ctx *c,byte *H,const byte *M)
{
-
static
byte U[32],W[32],V[32],S[32],Key[32];
+ byte U[32],W[32],V[32],S[32],Key[32];
int i;
/* Compute first key */
xor_blocks(W,H,M,32);
int i;
/* Compute first key */
xor_blocks(W,H,M,32);
@@
-185,7
+185,7
@@
int hash_block(gost_hash_ctx *ctx,const byte *block, size_t length)
if (ctx->left)
{
/*There are some bytes from previous step*/
if (ctx->left)
{
/*There are some bytes from previous step*/
- int add_bytes = 32-ctx->left;
+
unsigned
int add_bytes = 32-ctx->left;
if (add_bytes>length)
{
add_bytes = length;
if (add_bytes>length)
{
add_bytes = length;
@@
-228,7
+228,7
@@
int finish_hash(gost_hash_ctx *ctx,byte *hashval)
byte buf[32];
byte H[32];
byte S[32];
byte buf[32];
byte H[32];
byte S[32];
-
long long
fin_len=ctx->len;
+
ghosthash_len
fin_len=ctx->len;
byte *bptr;
memcpy(H,ctx->H,32);
memcpy(S,ctx->S,32);
byte *bptr;
memcpy(H,ctx->H,32);
memcpy(S,ctx->S,32);
@@
-245,7
+245,7
@@
int finish_hash(gost_hash_ctx *ctx,byte *hashval)
fin_len<<=3; /* Hash length in BITS!!*/
while(fin_len>0)
{
fin_len<<=3; /* Hash length in BITS!!*/
while(fin_len>0)
{
- *(bptr++)=
fin_len&0xFF
;
+ *(bptr++)=
(byte)(fin_len&0xFF)
;
fin_len>>=8;
};
hash_step(ctx->cipher_ctx,H,buf);
fin_len>>=8;
};
hash_step(ctx->cipher_ctx,H,buf);
@@
-253,4
+253,3
@@
int finish_hash(gost_hash_ctx *ctx,byte *hashval)
memcpy(hashval,H,32);
return 1;
}
memcpy(hashval,H,32);
return 1;
}
-