]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Stop ed25519 8-bit signed left shift overflowing
authorteor <teor2345@gmail.com>
Mon, 29 Sep 2014 00:44:00 +0000 (20:44 -0400)
committerNick Mathewson <nickm@torproject.org>
Mon, 29 Sep 2014 00:44:00 +0000 (20:44 -0400)
Standardise usage in ge_scalarmult_base.c for 1 new fix.

src/ext/ed25519/ref10/ge_scalarmult_base.c

index 3ede0ad177dfb3234f58d8955c8f9147bc1afc53..5292f83221e810e88c583bd4ab4548cca61137b5 100644 (file)
@@ -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));