#include "ed25519.h" struct Api get_ed25519_implementation() { ed25519_initialize(); return (struct Api) { .initialize = ed25519_initialize, .create_keypair = ed25519_create_keypair, .free_keypair = ed25519_delete_keypair, .element_to_array = ed25519_element_to_array, .free_buffer = ed25519_free_buffer, .array_to_element = ed25519_array_to_element, .message_to_element = ed25519_message_to_element, .element_to_message = ed25519_element_to_message, .get_pub_key_hash = ed25519_get_pub_key_hash, .get_pub_key_hash_length = ed25519_get_pub_key_hash_length, .get_group_element = ed25519_get_group_element, .get_group_element_array_size = ed25519_get_group_element_array_size, .get_message_size = ed25519_get_message_size, .free_group_element = ed25519_delete_group_element, .get_key_exchange_value = ed25519_get_key_exchange_value, .combine = ed25519_combine, .uncombine = ed25519_uncombine, .get_decryption_share = ed25519_get_decryption_share, .add_public_share = ed25519_add_public_share, .derive_shared_key = ed25519_derive_shared_key, .free_shared_key = ed25519_delete_shared_key, .encrypt = ed25519_encrypt, .invert = ed25519_invert, .get_uniform_int = ed25519_get_uniform_int, .deinitialize = ed25519_deinitialize }; } ImplementationGetter get_implementation = &get_ed25519_implementation;