From 81b38e86e4e073aa3aa590cbea39852972242a41 Mon Sep 17 00:00:00 2001 From: Dennis Brentjes Date: Fri, 18 Nov 2016 12:40:47 +0100 Subject: Adds api call to convert public key to an (string) id --- libcmix/cmix.c | 19 +++++++++++++++++++ libcmix/cmix.h | 2 ++ 2 files changed, 21 insertions(+) (limited to 'libcmix') diff --git a/libcmix/cmix.c b/libcmix/cmix.c index 9db4dbb..f6eb2e8 100644 --- a/libcmix/cmix.c +++ b/libcmix/cmix.c @@ -3,6 +3,7 @@ #include #include +#include enum cmix_error permutation(struct CMixBuffer b) { return no_error; @@ -336,3 +337,21 @@ enum cmix_error remove_r_and_s(struct CMixContext const* ctx, char* out_buffer, ctx->api.free_group_element(inv_pirs); ctx->api.free_group_element(mult); } + +enum cmix_error get_pub_key_hash(struct CMixContext const* ctx, char** buffer) +{ + char* buffer2; + size_t len; + ctx->api.get_pub_key_hash(&buffer2, &len, ctx->keypair.pub); + + size_t hex_len = len*2+1; + *buffer = (char*) calloc(hex_len, sizeof(char)); + + for(size_t i = 0; i < len; i++) { + sprintf(&(*buffer)[i*2],"%hhX",buffer2[i]); + } + + ctx->api.free_buffer(buffer2); + + return no_error; +} diff --git a/libcmix/cmix.h b/libcmix/cmix.h index ba0b826..89a6ad3 100644 --- a/libcmix/cmix.h +++ b/libcmix/cmix.h @@ -94,6 +94,8 @@ enum cmix_error get_public_key(struct CMixContext const* ctx, char* buffer); enum cmix_error add_public_share(struct CMixContext const* ctx, char* buffer, char const* share); +enum cmix_error get_pub_key_hash(struct CMixContext const* ctx, char** buffer); + enum cmix_error start_mix(struct CMixContext* ctx, size_t nr_participants); enum cmix_error initialize_mix_randomness(struct CMixContext* ctx); -- cgit v1.2.3-70-g09d2