#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