diff options
Diffstat (limited to 'libcmix-bignum/bignum.h')
| -rw-r--r-- | libcmix-bignum/bignum.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/libcmix-bignum/bignum.h b/libcmix-bignum/bignum.h new file mode 100644 index 0000000..02efcf7 --- /dev/null +++ b/libcmix-bignum/bignum.h @@ -0,0 +1,40 @@ +#pragma once + +#include <stddef.h> +#include <stdlib.h> + +#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
\ No newline at end of file |
