}
for (i = 17; i >= 9; i --) {
- uint64_t x;
-
- x = s[i];
- s[i - 1] += ARSHW(x, 2);
- s[i - 2] += (x << 28) & 0x3FFFFFFF;
- s[i - 2] -= ARSHW(x, 4);
- s[i - 3] -= (x << 26) & 0x3FFFFFFF;
- s[i - 5] -= ARSHW(x, 10);
- s[i - 6] -= (x << 20) & 0x3FFFFFFF;
- s[i - 8] += ARSHW(x, 16);
- s[i - 9] += (x << 14) & 0x3FFFFFFF;
+ uint64_t y;
+
+ y = s[i];
+ s[i - 1] += ARSHW(y, 2);
+ s[i - 2] += (y << 28) & 0x3FFFFFFF;
+ s[i - 2] -= ARSHW(y, 4);
+ s[i - 3] -= (y << 26) & 0x3FFFFFFF;
+ s[i - 5] -= ARSHW(y, 10);
+ s[i - 6] -= (y << 20) & 0x3FFFFFFF;
+ s[i - 8] += ARSHW(y, 16);
+ s[i - 9] += (y << 14) & 0x3FFFFFFF;
}
/*
memcpy(P->y, ty, sizeof ty);
memset(P->z, 0, sizeof P->z);
P->z[0] = 1;
- return NEQ(bad, 0) ^ 1;
+ return EQ(bad, 0);
}
/*
p256_jacobian P;
(void)curve;
+ if (Glen != 65) {
+ return 0;
+ }
r = p256_decode(&P, G, Glen);
p256_mul(&P, x, xlen);
- if (Glen >= 65) {
- p256_to_affine(&P);
- p256_encode(G, &P);
- }
+ p256_to_affine(&P);
+ p256_encode(G, &P);
return r;
}
p256_to_affine(&P);
p256_encode(R, &P);
return 65;
-
- /*
- const unsigned char *G;
- size_t Glen;
-
- G = api_generator(curve, &Glen);
- memcpy(R, G, Glen);
- api_mul(R, Glen, x, xlen, curve);
- return Glen;
- */
}
static uint32_t
int i;
(void)curve;
+ if (len != 65) {
+ return 0;
+ }
r = p256_decode(&P, A, len);
p256_mul(&P, x, xlen);
if (B == NULL) {