X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/8276a9c565bc29afbc6cc120dfde0801c06c2bbd..HEAD:/math/f25519.c diff --git a/math/f25519.c b/math/f25519.c index 78844be6..a0f40fa0 100644 --- a/math/f25519.c +++ b/math/f25519.c @@ -50,7 +50,6 @@ typedef uint32 upiece; typedef uint64 udblpiece; #define M26 0x03ffffffu #define M25 0x01ffffffu -#define B26 0x04000000u #define B25 0x02000000u #define B24 0x01000000u @@ -83,11 +82,10 @@ typedef uint16 upiece; typedef uint32 udblpiece; ((i) == 5 || (i) == 10 || (i) == 15 || (i) == 20 || (i) == 25 ? 9 : 10) #define NPIECE 26 -#define B10 0x0400 -#define B9 0x200 -#define B8 0x100 #define M10 0x3ff #define M9 0x1ff +#define B9 0x200 +#define B8 0x100 #endif @@ -185,18 +183,18 @@ void f25519_load(f25519 *z, const octet xv[32]) * and lower bounds are achievable. * * All of the x_i at this point are positive, so we don't need to do - * anything wierd when masking them. + * anything weird when masking them. */ - b = x9&B24; c = 19&((b >> 19) - (b >> 24)); x9 -= b << 1; - b = x8&B25; x9 += b >> 25; x8 -= b << 1; - b = x7&B24; x8 += b >> 24; x7 -= b << 1; - b = x6&B25; x7 += b >> 25; x6 -= b << 1; - b = x5&B24; x6 += b >> 24; x5 -= b << 1; - b = x4&B25; x5 += b >> 25; x4 -= b << 1; - b = x3&B24; x4 += b >> 24; x3 -= b << 1; - b = x2&B25; x3 += b >> 25; x2 -= b << 1; - b = x1&B24; x2 += b >> 24; x1 -= b << 1; - b = x0&B25; x1 += (b >> 25) + (x0 >> 26); x0 = (x0&M26) - (b << 1); + b = x9&B24; c = 19&((b >> 19) - (b >> 24)); x9 -= b << 1; + b = x8&B25; x9 += b >> 25; x8 -= b << 1; + b = x7&B24; x8 += b >> 24; x7 -= b << 1; + b = x6&B25; x7 += b >> 25; x6 -= b << 1; + b = x5&B24; x6 += b >> 24; x5 -= b << 1; + b = x4&B25; x5 += b >> 25; x4 -= b << 1; + b = x3&B24; x4 += b >> 24; x3 -= b << 1; + b = x2&B25; x3 += b >> 25; x2 -= b << 1; + b = x1&B24; x2 += b >> 24; x1 -= b << 1; + b = x0&B25; x1 += (b >> 25) + (x0 >> 26); x0 = (x0&M26) - (b << 1); x0 += c; /* And with that, we're done. */ @@ -758,7 +756,7 @@ static void carry_reduce(dblpiece x[NPIECE]) * signed. */ - /*For each piece, we bias it so that floor division (as done by an + /* For each piece, we bias it so that floor division (as done by an * arithmetic right shift) and modulus (as done by bitwise-AND) does the * right thing. */ @@ -1180,6 +1178,7 @@ int f25519_quosqrt(f25519 *z, const f25519 *x, const f25519 *y) #ifdef TEST_RIG +#include #include #include #include @@ -1220,7 +1219,7 @@ static void dump_f25519_ref(dstr *d, FILE *fp) } static int eq(const f25519 *x, dstr *d) - { octet b[32]; f25519_store(b, x); return (memcmp(b, d->buf, 32) == 0); } + { octet b[32]; f25519_store(b, x); return (MEMCMP(b, ==, d->buf, 32)); } static const test_type type_f25519 = { cvt_f25519, dump_f25519 },