X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fed25519%2Fecdh.c;h=cfb2077b3f59a41e0ba421bf853814628bdc7838;hb=c789d94e0508c8d61219b2b042954209166b84a1;hp=d0cd7e0aae80168b03940a13c880513f9599ef89;hpb=49e3baec20ddad9cc297c3eeb1d13f0e421f69c8;p=tinc diff --git a/src/ed25519/ecdh.c b/src/ed25519/ecdh.c index d0cd7e0a..cfb2077b 100644 --- a/src/ed25519/ecdh.c +++ b/src/ed25519/ecdh.c @@ -18,34 +18,35 @@ */ #include "../system.h" +#include "../random.h" #include "ed25519.h" -#define __TINC_ECDH_INTERNAL__ +#define TINC_ECDH_INTERNAL typedef struct ecdh_t { uint8_t private[64]; } ecdh_t; -#include "../crypto.h" #include "../ecdh.h" #include "../xalloc.h" ecdh_t *ecdh_generate_public(void *pubkey) { - ecdh_t *ecdh = xzalloc(sizeof *ecdh); + ecdh_t *ecdh = xzalloc(sizeof(*ecdh)); uint8_t seed[32]; - randomize(seed, sizeof seed); + randomize(seed, sizeof(seed)); ed25519_create_keypair(pubkey, ecdh->private, seed); + memzero(seed, sizeof(seed)); return ecdh; } bool ecdh_compute_shared(ecdh_t *ecdh, const void *pubkey, void *shared) { ed25519_key_exchange(shared, pubkey, ecdh->private); - free(ecdh); + ecdh_free(ecdh); return true; } void ecdh_free(ecdh_t *ecdh) { - free(ecdh); + xzfree(ecdh, sizeof(ecdh_t)); }