summaryrefslogtreecommitdiff
path: root/appendices/elgamal.h
diff options
context:
space:
mode:
Diffstat (limited to 'appendices/elgamal.h')
-rw-r--r--appendices/elgamal.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/appendices/elgamal.h b/appendices/elgamal.h
new file mode 100644
index 0000000..833047e
--- /dev/null
+++ b/appendices/elgamal.h
@@ -0,0 +1,47 @@
+#pragma once
+
+/*!
+ * \file
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "api.h"
+
+extern Initializer elgamal_initialize;
+extern KeyPairCreator elgamal_create_keypair;
+extern KeyPairDeleter elgamal_delete_keypair;
+extern ElementToArray elgamal_element_to_array;
+extern BufferDeleter elgamal_free_buffer;
+extern ArrayToElement elgamal_array_to_element;
+extern MessageToElement elgamal_message_to_element;
+extern ElementToMessage elgamal_element_to_message;
+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;
+extern KeyExchangeValueGetter elgamal_get_key_exchange_value;
+extern GroupElementCombiner elgamal_combine;
+extern GroupElementUncombiner elgamal_uncombine;
+extern DecryptionShareGetter elgamal_get_decryption_share;
+extern GroupElementArraySizeGetter elgamal_get_group_element_array_size;
+extern MessageSizeGetter elgamal_get_message_size;
+extern PublicShareAdder elgamal_add_public_share;
+extern SharedKeyDeriver elgamal_derive_shared_key;
+extern SharedKeyDeleter elgamal_delete_shared_key;
+extern Encrypter elgamal_encrypt;
+extern Inverter elgamal_invert;
+extern UniformIntGetter elgamal_get_uniform_int;
+extern Deinitializer elgamal_deinitialize;
+
+/*!
+ * \brief get_elgamal_implementation
+ * \return
+ */
+struct Api get_elgamal_implementation();
+
+#ifdef __cplusplus
+}
+#endif