From: teor Date: Mon, 29 Sep 2014 00:44:00 +0000 (-0400) Subject: Stop ed25519 8-bit signed left shift overflowing X-Git-Tag: tor-0.2.6.1-alpha~77^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b7eab94a9078b18593a0d0d378d0ccdc07798178;p=thirdparty%2Ftor.git Stop ed25519 8-bit signed left shift overflowing Standardise usage in ge_scalarmult_base.c for 1 new fix. --- diff --git a/src/ext/ed25519/ref10/ge_scalarmult_base.c b/src/ext/ed25519/ref10/ge_scalarmult_base.c index 3ede0ad177..5292f83221 100644 --- a/src/ext/ed25519/ref10/ge_scalarmult_base.c +++ b/src/ext/ed25519/ref10/ge_scalarmult_base.c @@ -39,7 +39,7 @@ static void select(ge_precomp *t,int pos,signed char b) { ge_precomp minust; unsigned char bnegative = negative(b); - unsigned char babs = b - (((-bnegative) & b) << 1); + unsigned char babs = b - SHL8( (-bnegative) & (unsigned char)b, 1); ge_precomp_0(t); cmov(t,&base[pos][0],equal(babs,1));