From ce76957a10070c132a8adfbe2e7d3f12395b4caa Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Tue, 16 Aug 2016 04:04:31 +0200 Subject: Windows: Fix various issues detected by static analysis. --- src/Crypto/GostCipher.c | 26 +++++++++++++------------- src/Crypto/GostCipher.h | 6 +++--- src/Crypto/Streebog.c | 4 ++-- src/Crypto/cpu.c | 2 +- 4 files changed, 19 insertions(+), 19 deletions(-) (limited to 'src/Crypto') diff --git a/src/Crypto/GostCipher.c b/src/Crypto/GostCipher.c index a745210f..ec09bddf 100644 --- a/src/Crypto/GostCipher.c +++ b/src/Crypto/GostCipher.c @@ -75,19 +75,19 @@ static void xor_s_box(byte s_box[8][16], byte *seed) int i; for (i = 0; i < 16; i++) { - s_box[1][i] ^= (seed[ (i * 4) + 0 ] ) & 0xF; - s_box[2][i] ^= (seed[ (i * 4) + 0 ]>>4) & 0xF; - s_box[3][i] ^= (seed[ (i * 4) + 1 ] ) & 0xF; - s_box[4][i] ^= (seed[ (i * 4) + 1 ]>>4) & 0xF; - s_box[5][i] ^= (seed[ (i * 4) + 2 ] ) & 0xF; - s_box[6][i] ^= (seed[ (i * 4) + 2 ]>>4) & 0xF; - s_box[7][i] ^= (seed[ (i * 4) + 3 ] ) & 0xF; - s_box[8][i] ^= (seed[ (i * 4) + 3 ]>>4) & 0xF; + s_box[0][i] ^= (seed[ (i * 4) + 0 ] ) & 0xF; + s_box[1][i] ^= (seed[ (i * 4) + 0 ]>>4) & 0xF; + s_box[2][i] ^= (seed[ (i * 4) + 1 ] ) & 0xF; + s_box[3][i] ^= (seed[ (i * 4) + 1 ]>>4) & 0xF; + s_box[4][i] ^= (seed[ (i * 4) + 2 ] ) & 0xF; + s_box[5][i] ^= (seed[ (i * 4) + 2 ]>>4) & 0xF; + s_box[6][i] ^= (seed[ (i * 4) + 3 ] ) & 0xF; + s_box[7][i] ^= (seed[ (i * 4) + 3 ]>>4) & 0xF; } } #endif -void gost_set_key(byte *key, gost_kds *ks) +void gost_set_key(const byte *key, gost_kds *ks) { #ifdef GOST_DYNAMIC_SBOXES STREEBOG_CTX sctx; @@ -228,11 +228,11 @@ void gost_decrypt_block(uint64 in_, uint64* out_, gost_kds* kds) { } #if defined(_M_AMD64) -void gost_encrypt_128_CBC_asm(byte *in, byte *out, gost_kds *ks, uint64 count); -void gost_decrypt_128_CBC_asm(byte *in, byte *out, gost_kds *ks, uint64 count); +void gost_encrypt_128_CBC_asm(const byte *in, byte *out, gost_kds *ks, uint64 count); +void gost_decrypt_128_CBC_asm(const byte *in, byte *out, gost_kds *ks, uint64 count); #endif -void gost_encrypt(byte *in, byte *out, gost_kds *ks, int count) { +void gost_encrypt(const byte *in, byte *out, gost_kds *ks, int count) { #if defined(_M_AMD64) gost_encrypt_128_CBC_asm(in, out, ks, (uint64)count); #else @@ -249,7 +249,7 @@ void gost_encrypt(byte *in, byte *out, gost_kds *ks, int count) { #endif } -void gost_decrypt(byte *in, byte *out, gost_kds *ks, int count) { +void gost_decrypt(const byte *in, byte *out, gost_kds *ks, int count) { #if defined(_M_AMD64) gost_decrypt_128_CBC_asm(in, out, ks, (uint64)count); #else diff --git a/src/Crypto/GostCipher.h b/src/Crypto/GostCipher.h index 9b9e18b4..35c6537c 100644 --- a/src/Crypto/GostCipher.h +++ b/src/Crypto/GostCipher.h @@ -49,9 +49,9 @@ typedef struct gost_kds #define GOST_KS (sizeof(gost_kds)) -void gost_encrypt(byte *in, byte *out, gost_kds *ks, int count); -void gost_decrypt(byte *in, byte *out, gost_kds *ks, int count); -void gost_set_key(byte *key, gost_kds *ks); +void gost_encrypt(const byte *in, byte *out, gost_kds *ks, int count); +void gost_decrypt(const byte *in, byte *out, gost_kds *ks, int count); +void gost_set_key(const byte *key, gost_kds *ks); #else #define GOST_KS (0) diff --git a/src/Crypto/Streebog.c b/src/Crypto/Streebog.c index 9430bfa3..d13d58d2 100644 --- a/src/Crypto/Streebog.c +++ b/src/Crypto/Streebog.c @@ -2328,9 +2328,9 @@ stage3(STREEBOG_CTX *CTX) memset(buf, 0x00, sizeof buf); #ifndef __GOST3411_BIG_ENDIAN__ - buf[0] = CTX->bufsize << 3; + buf[0] = ((unsigned long long) CTX->bufsize) << 3; #else - buf[0] = BSWAP64(CTX->bufsize << 3); + buf[0] = BSWAP64(((unsigned long long) CTX->bufsize) << 3); #endif pad(CTX); diff --git a/src/Crypto/cpu.c b/src/Crypto/cpu.c index c358088d..35fd36fe 100644 --- a/src/Crypto/cpu.c +++ b/src/Crypto/cpu.c @@ -279,7 +279,7 @@ static int Detect_MS_HyperV_AES () void DetectX86Features() { - uint32 cpuid[4], cpuid1[4]; + uint32 cpuid[4] = {0}, cpuid1[4] = {0}; if (!CpuId(0, cpuid)) return; if (!CpuId(1, cpuid1)) -- cgit v1.2.3