aboutsummaryrefslogtreecommitdiff
path: root/libcmix
diff options
context:
space:
mode:
authorDennis Brentjes <d.brentjes@gmail.com>2016-11-18 12:40:47 +0100
committerDennis Brentjes <d.brentjes@gmail.com>2016-11-18 12:44:11 +0100
commit81b38e86e4e073aa3aa590cbea39852972242a41 (patch)
tree929074d99422f094ee9d02a99ab244578d57b4ca /libcmix
parent6ae607cc84b671810fca9c24b1c131ca12d922e7 (diff)
downloadcmix-81b38e86e4e073aa3aa590cbea39852972242a41.tar.gz
cmix-81b38e86e4e073aa3aa590cbea39852972242a41.tar.bz2
cmix-81b38e86e4e073aa3aa590cbea39852972242a41.zip
Adds api call to convert public key to an (string) id
Diffstat (limited to 'libcmix')
-rw-r--r--libcmix/cmix.c19
-rw-r--r--libcmix/cmix.h2
2 files changed, 21 insertions, 0 deletions
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 <string.h>
#include <stdlib.h>
+#include <stdio.h>
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);