diff --git a/src/curve25519/curve25519-donna.c b/src/curve25519/curve25519-donna.c index f2c2ac58..8047db35 100644 --- a/src/curve25519/curve25519-donna.c +++ b/src/curve25519/curve25519-donna.c @@ -273,16 +273,6 @@ div_by_2_25(const limb v) return (v + roundoff) >> 25; } -/* return v / (2^25), using only shifts and adds. - * - * On entry: v can take any value. */ -static inline s32 -div_s32_by_2_25(const s32 v) -{ - const s32 roundoff = ((uint32_t)(v >> 31)) >> 7; - return (v + roundoff) >> 25; -} - /* Reduce all coefficients of the short form input so that |x| < 2^26. * * On entry: |output[i]| < 280*2^54 */ @@ -487,7 +477,7 @@ fcontract(u8 *output, limb *input_limbs) { /* |input_limbs[i]| < 2^26, so it's valid to convert to an s32. */ for (i = 0; i < 10; i++) { - input[i] = input_limbs[i]; + input[i] = (s32) input_limbs[i]; } for (j = 0; j < 2; ++j) { diff --git a/src/curve25519/ed25519/additions/zeroize.h b/src/curve25519/ed25519/additions/zeroize.h index 0db68bb4..95e974ae 100644 --- a/src/curve25519/ed25519/additions/zeroize.h +++ b/src/curve25519/ed25519/additions/zeroize.h @@ -7,6 +7,6 @@ void zeroize(unsigned char* b, size_t len); -void zeroize_stack(); +void zeroize_stack(void); #endif diff --git a/src/curve25519/ed25519/fe_frombytes.c b/src/curve25519/ed25519/fe_frombytes.c index 5c179174..87e24942 100644 --- a/src/curve25519/ed25519/fe_frombytes.c +++ b/src/curve25519/ed25519/fe_frombytes.c @@ -60,14 +60,14 @@ void fe_frombytes(fe h,const unsigned char *s) carry6 = (h6 + (crypto_int64) (1<<25)) >> 26; h7 += carry6; h6 -= carry6 << 26; carry8 = (h8 + (crypto_int64) (1<<25)) >> 26; h9 += carry8; h8 -= carry8 << 26; - h[0] = h0; - h[1] = h1; - h[2] = h2; - h[3] = h3; - h[4] = h4; - h[5] = h5; - h[6] = h6; - h[7] = h7; - h[8] = h8; - h[9] = h9; + h[0] = (crypto_int32) h0; + h[1] = (crypto_int32) h1; + h[2] = (crypto_int32) h2; + h[3] = (crypto_int32) h3; + h[4] = (crypto_int32) h4; + h[5] = (crypto_int32) h5; + h[6] = (crypto_int32) h6; + h[7] = (crypto_int32) h7; + h[8] = (crypto_int32) h8; + h[9] = (crypto_int32) h9; } diff --git a/src/curve25519/ed25519/fe_mul.c b/src/curve25519/ed25519/fe_mul.c index 26ca8b36..d68e2101 100644 --- a/src/curve25519/ed25519/fe_mul.c +++ b/src/curve25519/ed25519/fe_mul.c @@ -240,14 +240,14 @@ void fe_mul(fe h,const fe f,const fe g) /* |h0| <= 2^25; from now on fits into int32 unchanged */ /* |h1| <= 1.01*2^24 */ - h[0] = h0; - h[1] = h1; - h[2] = h2; - h[3] = h3; - h[4] = h4; - h[5] = h5; - h[6] = h6; - h[7] = h7; - h[8] = h8; - h[9] = h9; + h[0] = (crypto_int32) h0; + h[1] = (crypto_int32) h1; + h[2] = (crypto_int32) h2; + h[3] = (crypto_int32) h3; + h[4] = (crypto_int32) h4; + h[5] = (crypto_int32) h5; + h[6] = (crypto_int32) h6; + h[7] = (crypto_int32) h7; + h[8] = (crypto_int32) h8; + h[9] = (crypto_int32) h9; } diff --git a/src/curve25519/ed25519/fe_sq.c b/src/curve25519/ed25519/fe_sq.c index 8dd11984..54a39496 100644 --- a/src/curve25519/ed25519/fe_sq.c +++ b/src/curve25519/ed25519/fe_sq.c @@ -136,14 +136,14 @@ void fe_sq(fe h,const fe f) carry0 = (h0 + (crypto_int64) (1<<25)) >> 26; h1 += carry0; h0 -= carry0 << 26; - h[0] = h0; - h[1] = h1; - h[2] = h2; - h[3] = h3; - h[4] = h4; - h[5] = h5; - h[6] = h6; - h[7] = h7; - h[8] = h8; - h[9] = h9; + h[0] = (crypto_int32) h0; + h[1] = (crypto_int32) h1; + h[2] = (crypto_int32) h2; + h[3] = (crypto_int32) h3; + h[4] = (crypto_int32) h4; + h[5] = (crypto_int32) h5; + h[6] = (crypto_int32) h6; + h[7] = (crypto_int32) h7; + h[8] = (crypto_int32) h8; + h[9] = (crypto_int32) h9; } diff --git a/src/curve25519/ed25519/fe_sq2.c b/src/curve25519/ed25519/fe_sq2.c index 026ed3aa..01b149f5 100644 --- a/src/curve25519/ed25519/fe_sq2.c +++ b/src/curve25519/ed25519/fe_sq2.c @@ -147,14 +147,14 @@ void fe_sq2(fe h,const fe f) carry0 = (h0 + (crypto_int64) (1<<25)) >> 26; h1 += carry0; h0 -= carry0 << 26; - h[0] = h0; - h[1] = h1; - h[2] = h2; - h[3] = h3; - h[4] = h4; - h[5] = h5; - h[6] = h6; - h[7] = h7; - h[8] = h8; - h[9] = h9; + h[0] = (crypto_int32) h0; + h[1] = (crypto_int32) h1; + h[2] = (crypto_int32) h2; + h[3] = (crypto_int32) h3; + h[4] = (crypto_int32) h4; + h[5] = (crypto_int32) h5; + h[6] = (crypto_int32) h6; + h[7] = (crypto_int32) h7; + h[8] = (crypto_int32) h8; + h[9] = (crypto_int32) h9; } diff --git a/src/curve25519/ed25519/nacl_sha512/hash.c b/src/curve25519/ed25519/nacl_sha512/hash.c index 8934cc18..c4d20166 100644 --- a/src/curve25519/ed25519/nacl_sha512/hash.c +++ b/src/curve25519/ed25519/nacl_sha512/hash.c @@ -26,7 +26,7 @@ int crypto_hash_sha512(unsigned char *out,const unsigned char *in,unsigned long { unsigned char h[64]; unsigned char padded[256]; - int i; + unsigned long long i; unsigned long long bytes = inlen; for (i = 0;i < 64;++i) h[i] = iv[i];