From: Mark Wooding Date: Mon, 2 Oct 2017 12:25:39 +0000 (+0100) Subject: pub/ed{25519,448}.c: Double by adding self, rather than multiplying by two. X-Git-Tag: 2.4.2~19 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/catacomb/commitdiff_plain/6baf2beaba0a9e7df4a3781be9dcc70671fdc550 pub/ed{25519,448}.c: Double by adding self, rather than multiplying by two. Saves a reduction pass. --- diff --git a/pub/ed25519.c b/pub/ed25519.c index 7fddf987..676fe8ca 100644 --- a/pub/ed25519.c +++ b/pub/ed25519.c @@ -232,7 +232,7 @@ static void ptdbl(f25519 *X, f25519 *Y, f25519 *Z, /* (E = a C = -C) */ f25519_sub(&t0, &t2, &t1); /* t0 = F = D - C = E + D */ f25519_sqr(&t1, Z0); /* t1 = H = Z0^2 */ - f25519_mulconst(&t1, &t1, 2); /* t1 = 2 H */ + f25519_add(&t1, &t1, &t1); /* t1 = 2 H */ f25519_sub(&t1, &t0, &t1); /* t1 = J = F - 2 H */ f25519_mul(X, X, &t1); /* X = (B - C - D) J */ f25519_mul(Y, Y, &t0); /* Y = -F (E - D) */ diff --git a/pub/ed448.c b/pub/ed448.c index ae565566..60328021 100644 --- a/pub/ed448.c +++ b/pub/ed448.c @@ -237,7 +237,7 @@ static void ptdbl(fgoldi *X, fgoldi *Y, fgoldi *Z, fgoldi_sub(&t1, &t1, &t2); /* t1 = C - D */ fgoldi_sub(X, &t0, Y); /* X = c (B - E) */ fgoldi_sqr(&t0, Z0); /* t0 = H = (c Z0)^2 */ - fgoldi_mulconst(&t0, &t0, 2); /* t0 = 2 H */ + fgoldi_add(&t0, &t0, &t0); /* t0 = 2 H */ fgoldi_sub(&t0, Y, &t0); /* t0 = J = E - 2 H */ fgoldi_mul(X, X, &t0); /* X = c (B - E) J */ fgoldi_mul(Z, Y, &t0); /* Z = E J */