aboutsummaryrefslogtreecommitdiff
path: root/libcmix-crypto/elgamal/elgamal.h
diff options
context:
space:
mode:
authorDennis Brentjes <d.brentjes@gmail.com>2016-10-30 13:38:49 +0100
committerDennis Brentjes <d.brentjes@gmail.com>2016-10-30 16:37:03 +0100
commita3e62d3bc6e7f75949726f9a8dafe03e757e869b (patch)
tree49e59076a7ffd7ea757f650a64aaba2b16be1886 /libcmix-crypto/elgamal/elgamal.h
parent158bf81343054982800d44d507e8e50f2eeb6dd4 (diff)
downloadcmix-a3e62d3bc6e7f75949726f9a8dafe03e757e869b.tar.gz
cmix-a3e62d3bc6e7f75949726f9a8dafe03e757e869b.tar.bz2
cmix-a3e62d3bc6e7f75949726f9a8dafe03e757e869b.zip
Added the Preprocessing step for the Precomputation of CMix.
Diffstat (limited to 'libcmix-crypto/elgamal/elgamal.h')
-rw-r--r--libcmix-crypto/elgamal/elgamal.h80
1 files changed, 17 insertions, 63 deletions
diff --git a/libcmix-crypto/elgamal/elgamal.h b/libcmix-crypto/elgamal/elgamal.h
index dc2dd6f..746b726 100644
--- a/libcmix-crypto/elgamal/elgamal.h
+++ b/libcmix-crypto/elgamal/elgamal.h
@@ -10,79 +10,33 @@ extern "C" {
#include "api.h"
-/*!
- * \brief elgamal_initialize initializes the elgamal library
- */
-extern void elgamal_initialize(void);
+extern Initializer elgamal_initialize;
-/*!
- * \brief elgamal_create_keypair
- * \return The new keypair
- */
-extern struct KeyPair elgamal_create_keypair(void);
+extern KeyPairCreator elgamal_create_keypair;
-/*!
- * \brief elgamal_keypair_deleter
- * \param p the keypair to be freed
- */
-extern void elgamal_keypair_deleter(struct KeyPair* p);
+extern KeyPairDeleter elgamal_delete_keypair;
-/*!
- * \brief elgamal_get_pubkey_array
- * \param buffer
- * \param len
- * \param pubkey
- */
-extern void elgamal_get_key_array(char** buffer, size_t* len, void* pubkey);
+extern ElementToArray elgamal_element_to_array;
-/*!
- * \brief get_group_element
- * \param secure
- * \return
- */
-extern void* elgamal_get_group_element(bool secure);
+extern ArrayToElement elgamal_array_to_element;
-/*!
- * \brief get_key_exchange_value
- * \param group_el
- * \return
- */
-extern void* elgamal_get_key_exchange_value(void* group_el);
+extern GroupElementGetter elgamal_get_group_element;
-/*!
- * \brief elgamal_free_group_element
- */
-extern void elgamal_free_group_element(void*);
+extern GroupElementDeleter elgamal_delete_group_element;
-/*!
- * \brief elgamal_add_public_share
- * \param buffer
- * \param in_len
- * \param share
- * \param in_len
- * \param pubkey
- */
-void elgamal_add_public_share(char** buffer, size_t* out_len, char const* share, size_t in_len, void* pubkey);
+extern KeyExchangeValueGetter elgamal_get_key_exchange_value;
-/*!
- * \brief elgamal_derive_shared_key
- * \param pair Our keypair.
- * \param pub_key The public key of the other party.
- * \param swap_pub_order Should we swap the order in which we feed the public keys to the hash function.
- * \return A Shared key
- */
-extern struct SharedKey elgamal_derive_shared_key(struct KeyPair keypair, unsigned char const* other_pub, size_t pub_len, unsigned char const* value, size_t value_len, void* priv_value, bool swap);
+extern GroupElementMultiplier elgamal_multiply;
-/*!
- * \brief elgamal_shared_key_deleter
- * \param s The shared key to be freed.
- */
-extern void elgamal_shared_key_deleter(struct SharedKey* s);
+extern PublicShareAdder elgamal_add_public_share;
-/*!
- * \brief elgamal_deinitialize deinitializes the elgamal_library
- */
-void elgamal_deinitialize(void);
+extern SharedKeyDeriver elgamal_derive_shared_key;
+
+extern SharedKeyDeleter elgamal_delete_shared_key;
+
+extern Encrypter elgamal_encrypt;
+
+extern Deinitializer elgamal_deinitialize;
/*!
* \brief get_elgamal_implementation