diff --git a/lib/curve25519-donna.h b/lib/curve25519-donna.h new file mode 100644 index 0000000..3c53d4a --- /dev/null +++ b/lib/curve25519-donna.h @@ -0,0 +1,18 @@ +/* header file for the curve25519-donna implementation, because the + * authors of that project don't supply one. + */ +#ifndef CURVE25519_DONNA_H +#define CURVE25519_DONNA_H + +#ifdef __cplusplus +extern "C" { +#endif + +extern int curve25519_donna(unsigned char *output, const unsigned char *a, + const unsigned char *b); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/lib/ed25519_additions.h b/lib/ed25519_additions.h new file mode 100644 index 0000000..e5f93a1 --- /dev/null +++ b/lib/ed25519_additions.h @@ -0,0 +1,24 @@ +#ifndef ED25519_ADDITIONS_H +#define ED25519_ADDITIONS_H + +#ifdef __cplusplus +extern "C" { +#endif + +void convert_curve25519_to_ed25519( + unsigned char * public_key, + unsigned char * signature); + +void convert_ed25519_to_curve25519( + unsigned char const * public_key, + unsigned char * signature); + +void ed25519_keypair( + unsigned char * private_key, + unsigned char * public_key); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/crypto.cpp b/src/crypto.cpp index 8024355..8867688 100644 --- a/src/crypto.cpp +++ b/src/crypto.cpp @@ -19,49 +19,14 @@ extern "C" { -int curve25519_donna( - uint8_t * output, - const uint8_t * secret, - const uint8_t * basepoint -); - #include "crypto-algorithms/aes.h" #include "crypto-algorithms/sha256.h" -int ed25519_sign( - unsigned char *signature, - const unsigned char *message, size_t message_len, - const unsigned char *public_key, - const unsigned char *private_key -); - - -int ed25519_verify( - const unsigned char *signature, - const unsigned char *message, size_t message_len, - const unsigned char *public_key -); - - -void convert_curve25519_to_ed25519( - unsigned char * public_key, - unsigned char * signature -); - - -void convert_ed25519_to_curve25519( - unsigned char const * public_key, - unsigned char * signature -); - - -void ed25519_keypair( - unsigned char * private_key, - unsigned char * public_key -); - } +#include "ed25519/src/ed25519.h" +#include "ed25519_additions.h" +#include "curve25519-donna.h" namespace {