Fixed endianness in Curve25519 implementation (no consequence on security). Also added new Curve25519 code for 64-bit platforms.
This commit is contained in:
parent
fd98320c82
commit
52a69fe3de
10 changed files with 708 additions and 27 deletions
|
|
@ -1332,11 +1332,11 @@ api_mul(unsigned char *G, size_t Glen,
|
|||
memset(z3, 0, sizeof z3);
|
||||
z3[0] = 1;
|
||||
|
||||
memcpy(k, kb, kblen);
|
||||
memset(k + kblen, 0, (sizeof k) - kblen);
|
||||
k[0] &= 0xF8;
|
||||
k[31] &= 0x7F;
|
||||
k[31] |= 0x40;
|
||||
memset(k, 0, (sizeof k) - kblen);
|
||||
memcpy(k + (sizeof k) - kblen, kb, kblen);
|
||||
k[31] &= 0xF8;
|
||||
k[0] &= 0x7F;
|
||||
k[0] |= 0x40;
|
||||
|
||||
/* obsolete
|
||||
print_int("x1", x1);
|
||||
|
|
@ -1346,7 +1346,7 @@ api_mul(unsigned char *G, size_t Glen,
|
|||
for (i = 254; i >= 0; i --) {
|
||||
uint32_t kt;
|
||||
|
||||
kt = (k[i >> 3] >> (i & 7)) & 1;
|
||||
kt = (k[31 - (i >> 3)] >> (i & 7)) & 1;
|
||||
swap ^= kt;
|
||||
cswap(x2, x3, swap);
|
||||
cswap(z2, z3, swap);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue