diff options
author | Voev <voev.kirill@gmail.com> | 2019-05-13 18:03:58 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-13 18:03:58 +0300 |
commit | 1855e10fa994a31e5da15dd5c5a76549578ca849 (patch) | |
tree | 4d0a9d7e8f7c26fd6fbd413481af64032dd1ce65 | |
parent | ec882cfdb956d06a78aad19bc1089203bd08812d (diff) | |
download | gost-engine-1855e10fa994a31e5da15dd5c5a76549578ca849.zip gost-engine-1855e10fa994a31e5da15dd5c5a76549578ca849.tar.gz gost-engine-1855e10fa994a31e5da15dd5c5a76549578ca849.tar.bz2 |
Не учитывается значение carry
-rw-r--r-- | gost_grasshopper_cipher.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/gost_grasshopper_cipher.c b/gost_grasshopper_cipher.c index 7ae50f5..df58097 100644 --- a/gost_grasshopper_cipher.c +++ b/gost_grasshopper_cipher.c @@ -771,7 +771,7 @@ int gost_grasshopper_cipher_ctl(EVP_CIPHER_CTX *ctx, int type, int arg, unsigned char adjusted_iv[16]; unsigned char seq[8]; - int j; + int j, carry; if (mode != EVP_CIPH_CTR_MODE) return -1; @@ -799,10 +799,9 @@ int gost_grasshopper_cipher_ctl(EVP_CIPHER_CTX *ctx, int type, int arg, (const unsigned char *)seq) > 0) { memset(adjusted_iv, 0, 16); memcpy(adjusted_iv, EVP_CIPHER_CTX_original_iv(ctx), 8); - for(j=7; j>=0; j--) + for(j=7,carry=0; j>=0; j--) { - int adj_byte, carry = 0; - adj_byte = adjusted_iv[j]+seq[j]+carry; + int adj_byte = adjusted_iv[j]+seq[j]+carry; carry = (adj_byte > 255) ? 1 : 0; adjusted_iv[j] = adj_byte & 0xFF; } |