diff options
| author | Dennis Brentjes <d.brentjes@gmail.com> | 2016-10-30 13:38:49 +0100 |
|---|---|---|
| committer | Dennis Brentjes <d.brentjes@gmail.com> | 2016-10-30 16:37:03 +0100 |
| commit | a3e62d3bc6e7f75949726f9a8dafe03e757e869b (patch) | |
| tree | 49e59076a7ffd7ea757f650a64aaba2b16be1886 /libcmix-crypto/elgamal/elgamal.h | |
| parent | 158bf81343054982800d44d507e8e50f2eeb6dd4 (diff) | |
| download | cmix-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.h | 80 |
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 |
