#include "curve25519.h" struct Api get_curve25519_implementation() { curve25519_initialize(); return (struct Api) { .initialize = curve25519_initialize, .create_keypair = curve25519_create_keypair, .free_keypair = curve25519_delete_keypair, .element_to_array = curve25519_element_to_array, .free_buffer = curve25519_free_buffer, .array_to_element = curve25519_array_to_element, .message_to_element = curve25519_message_to_element, .get_pub_key_hash = curve25519_get_pub_key_hash, .get_pub_key_hash_length = curve25519_get_pub_key_hash_length, .get_group_element = curve25519_get_group_element, .get_group_element_array_size = curve25519_get_group_element_array_size, .free_group_element = curve25519_delete_group_element, .get_key_exchange_value = curve25519_get_key_exchange_value, .combine = curve25519_combine, .uncombine = curve25519_uncombine, .get_decryption_share = curve25519_get_decryption_share, .add_public_share = curve25519_add_public_share, .derive_shared_key = curve25519_derive_shared_key, .free_shared_key = curve25519_delete_shared_key, .encrypt = curve25519_encrypt, .invert = curve25519_invert, .get_uniform_int = curve25519_get_uniform_int, .deinitialize = curve25519_deinitialize }; } ImplementationGetter get_implementation = &get_curve25519_implementation;