First public release
This commit is contained in:
27
src/curve25519.c
Normal file
27
src/curve25519.c
Normal file
@@ -0,0 +1,27 @@
|
||||
#include "curve25519-donna.h"
|
||||
|
||||
#if !defined(CURVE25519_SUFFIX)
|
||||
#define CURVE25519_SUFFIX
|
||||
#endif
|
||||
|
||||
#define CURVE25519_FN3(fn,suffix) fn##suffix
|
||||
#define CURVE25519_FN2(fn,suffix) CURVE25519_FN3(fn,suffix)
|
||||
#define CURVE25519_FN(fn) CURVE25519_FN2(fn,CURVE25519_SUFFIX)
|
||||
|
||||
void
|
||||
CURVE25519_FN(curve25519_donna) (curve25519_key mypublic, const curve25519_key secret, const curve25519_key basepoint) {
|
||||
curve25519_key e;
|
||||
size_t i;
|
||||
|
||||
for (i = 0;i < 32;++i) e[i] = secret[i];
|
||||
e[0] &= 0xf8;
|
||||
e[31] &= 0x7f;
|
||||
e[31] |= 0x40;
|
||||
curve25519_scalarmult_donna(mypublic, e, basepoint);
|
||||
}
|
||||
|
||||
void
|
||||
CURVE25519_FN(curve25519_donna_basepoint) (curve25519_key mypublic, const curve25519_key secret) {
|
||||
static const curve25519_key basepoint = {9};
|
||||
CURVE25519_FN(curve25519_donna)(mypublic, secret, basepoint);
|
||||
}
|
||||
Reference in New Issue
Block a user