ed25519_donna_tor.h (1514B)
1 /* Added for Tor. */ 2 #ifndef SRC_EXT_ED25519_DONNA_H_INCLUDED_ 3 #define SRC_EXT_ED25519_DONNA_H_INCLUDED_ 4 #include "lib/cc/torint.h" 5 6 typedef unsigned char curved25519_key[32]; 7 8 int ed25519_sign_open_batch_donna(const unsigned char **m, size_t *mlen, const unsigned char **pk, const unsigned char **RS, size_t num, int *valid); 9 void curved25519_scalarmult_basepoint_donna(curved25519_key pk, const curved25519_key e); 10 11 /* Tor specific interface to match the `ref10` glue code. */ 12 int ed25519_donna_selftest(void); 13 int ed25519_donna_seckey(unsigned char *sk); 14 int ed25519_donna_seckey_expand(unsigned char *sk, const unsigned char *sk_seed); 15 int ed25519_donna_pubkey(unsigned char *pk, const unsigned char *sk); 16 int ed25519_donna_keygen(unsigned char *pk, unsigned char *sk); 17 18 int ed25519_donna_open(const unsigned char *signature, const unsigned char *m, 19 size_t mlen, const unsigned char *pk); 20 21 int ed25519_donna_sign(unsigned char *sig, const unsigned char *m, size_t mlen, 22 const unsigned char *sk, const unsigned char *pk); 23 24 int ed25519_donna_blind_secret_key(unsigned char *out, const unsigned char *inp, 25 const unsigned char *param); 26 27 int ed25519_donna_blind_public_key(unsigned char *out, const unsigned char *inp, 28 const unsigned char *param); 29 30 int ed25519_donna_pubkey_from_curve25519_pubkey(unsigned char *out, 31 const unsigned char *inp, int signbit); 32 33 34 int 35 ed25519_donna_scalarmult_with_group_order(unsigned char *out, 36 const unsigned char *pubkey); 37 38 #endif