aboutsummaryrefslogtreecommitdiff
path: root/libcmix-crypto/elgamal
diff options
context:
space:
mode:
authorDennis Brentjes <d.brentjes@gmail.com>2016-11-27 10:08:19 +0100
committerDennis Brentjes <d.brentjes@gmail.com>2016-11-27 10:08:19 +0100
commit74cea534fd189a2db423ae60997447e66265922b (patch)
treedecc06fa5da1f3f42612d527462d22ee487bf2db /libcmix-crypto/elgamal
parentfa7a48172a3c9d9c2f96d6f9c05d80f497bc304d (diff)
downloadcmix-74cea534fd189a2db423ae60997447e66265922b.tar.gz
cmix-74cea534fd189a2db423ae60997447e66265922b.tar.bz2
cmix-74cea534fd189a2db423ae60997447e66265922b.zip
Implements message delivery.
Adds a minimum number of messages per mix. Embeds the destination in the message. Clients now send messages to themselves.
Diffstat (limited to 'libcmix-crypto/elgamal')
-rw-r--r--libcmix-crypto/elgamal/elgamal.c1
-rw-r--r--libcmix-crypto/elgamal/elgamal.h2
-rw-r--r--libcmix-crypto/elgamal/gcrypt/gcrypt_elgamal.c5
3 files changed, 8 insertions, 0 deletions
diff --git a/libcmix-crypto/elgamal/elgamal.c b/libcmix-crypto/elgamal/elgamal.c
index 8f26a3c..399d952 100644
--- a/libcmix-crypto/elgamal/elgamal.c
+++ b/libcmix-crypto/elgamal/elgamal.c
@@ -11,6 +11,7 @@ struct Api get_elgamal_implementation()
.free_buffer = elgamal_free_buffer,
.array_to_element = elgamal_array_to_element,
.get_pub_key_hash = elgamal_get_pub_key_hash,
+ .get_pub_key_hash_length = elgamal_get_pub_key_hash_length,
.get_group_element = elgamal_get_group_element,
.get_group_element_array_size = elgamal_get_group_element_array_size,
.free_group_element = elgamal_delete_group_element,
diff --git a/libcmix-crypto/elgamal/elgamal.h b/libcmix-crypto/elgamal/elgamal.h
index f937899..1fe4447 100644
--- a/libcmix-crypto/elgamal/elgamal.h
+++ b/libcmix-crypto/elgamal/elgamal.h
@@ -24,6 +24,8 @@ extern ArrayToElement elgamal_array_to_element;
extern PubKeyHashGetter elgamal_get_pub_key_hash;
+extern PubKeyHashLengthGetter elgamal_get_pub_key_hash_length;
+
extern GroupElementGetter elgamal_get_group_element;
extern GroupElementDeleter elgamal_delete_group_element;
diff --git a/libcmix-crypto/elgamal/gcrypt/gcrypt_elgamal.c b/libcmix-crypto/elgamal/gcrypt/gcrypt_elgamal.c
index c9db28c..28c61c3 100644
--- a/libcmix-crypto/elgamal/gcrypt/gcrypt_elgamal.c
+++ b/libcmix-crypto/elgamal/gcrypt/gcrypt_elgamal.c
@@ -158,6 +158,10 @@ void gcrypt_elgamal_get_pub_key_hash(char** buffer, size_t* len, GroupElement co
gcry_sexp_release(pubkey);
}
+size_t gcrypt_elgamal_get_pub_key_hash_length() {
+ return 20u;
+}
+
void* gcrypt_elgamal_get_group_element(bool secure) {
size_t parse_error_offset;
gcry_error_t error;
@@ -337,6 +341,7 @@ ElementToArray elgamal_element_to_array = &gcrypt_elgamal_element_to_array;
BufferDeleter elgamal_free_buffer = &gcrypt_elgamal_free_buffer;
ArrayToElement elgamal_array_to_element = &gcrypt_elgamal_array_to_element;
PubKeyHashGetter elgamal_get_pub_key_hash = &gcrypt_elgamal_get_pub_key_hash;
+PubKeyHashLengthGetter elgamal_get_pub_key_hash_length = &gcrypt_elgamal_get_pub_key_hash_length;
GroupElementGetter elgamal_get_group_element = &gcrypt_elgamal_get_group_element;
GroupElementDeleter elgamal_delete_group_element = &gcrypt_elgamal_delete_group_element;
KeyExchangeValueGetter elgamal_get_key_exchange_value = &gcrypt_elgamal_get_key_exchange_value;