#include "elgamal.h" struct Api get_elgamal_implementation() { elgamal_initialize(); return (struct Api) { .initialize = elgamal_initialize, .create_keypair = elgamal_create_keypair, .free_keypair = elgamal_delete_keypair, .element_to_array = elgamal_element_to_array, .free_buffer = elgamal_free_buffer, .array_to_element = elgamal_array_to_element, .get_pub_key_hash = elgamal_get_pub_key_hash, .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, .get_key_exchange_value = elgamal_get_key_exchange_value, .multiply = elgamal_multiply, .get_decryption_share = elgamal_get_decryption_share, .add_public_share = elgamal_add_public_share, .derive_shared_key = elgamal_derive_shared_key, .free_shared_key = elgamal_delete_shared_key, .encrypt = elgamal_encrypt, .invert = elgamal_invert, .deinitialize = elgamal_deinitialize }; } ImplementationGetter get_implementation = &get_elgamal_implementation;