diff options
Diffstat (limited to '3rd_party/ed25519/keypair.c')
-rw-r--r-- | 3rd_party/ed25519/keypair.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/3rd_party/ed25519/keypair.c b/3rd_party/ed25519/keypair.c new file mode 100644 index 0000000..dc1b8ec --- /dev/null +++ b/3rd_party/ed25519/keypair.c | |||
@@ -0,0 +1,16 @@ | |||
1 | #include "ed25519.h" | ||
2 | #include "sha512.h" | ||
3 | #include "ge.h" | ||
4 | |||
5 | |||
6 | void ed25519_create_keypair(unsigned char *public_key, unsigned char *private_key, const unsigned char *seed) { | ||
7 | ge_p3 A; | ||
8 | |||
9 | sha512(seed, 32, private_key); | ||
10 | private_key[0] &= 248; | ||
11 | private_key[31] &= 63; | ||
12 | private_key[31] |= 64; | ||
13 | |||
14 | ge_scalarmult_base(&A, private_key); | ||
15 | ge_p3_tobytes(public_key, &A); | ||
16 | } | ||