curve25519_donna/*.c
A copy of Adam Langley's curve25519-donna mostly-portable
- implementations of curve25519, with a couple of portability
- changes which Adam hasn't merged yet.
+ implementations of curve25519.
/* Load a little-endian 64-bit number */
static limb
-load_limb(const u8 *in)
-{
+load_limb(const u8 *in) {
return
((limb)in[0]) |
(((limb)in[1]) << 8) |
}
static void
-store_limb(u8 *out, limb in)
-{
+store_limb(u8 *out, limb in) {
out[0] = in & 0xff;
out[1] = (in >> 8) & 0xff;
out[2] = (in >> 16) & 0xff;
/* Take a little-endian, 32-byte number and expand it into polynomial form */
static void
-fexpand(limb *output, const u8 *in)
-{
+fexpand(limb *output, const u8 *in) {
output[0] = load_limb(in) & 0x7ffffffffffff;
output[1] = (load_limb(in+6) >> 3) & 0x7ffffffffffff;
output[2] = (load_limb(in+12) >> 6) & 0x7ffffffffffff;