#pragma once #include #include #ifdef __cplusplus extern "C" { #endif enum bignum_error { NoError = 0, error = -1 }; struct Bignum { unsigned char* data; size_t len; }; struct Bignum allocate_bignum(size_t len) { return (struct Bignum){ (unsigned char*) malloc(len), len }; } void free_bignum(struct Bignum* b) { free(b->data); b->data = 0; b->len = 0; } extern enum bignum_error get_curve25519_mod(struct Bignum* result); extern enum bignum_error multiply_mod(struct Bignum* result, struct Bignum const lh, struct Bignum const rh, struct Bignum const mod); #ifdef __cplusplus } #endif