#include "elgamal.h" #include #include void null_elgamal_initialize(void) {} void null_elgamal_keypair_deleter(struct KeyPair p) {} struct KeyPair null_elgamal_create_keypair() { return (struct KeyPair){ NULL, NULL, }; } void null_elgamal_get_key_array(char** buffer, size_t* len, void* pubkey) {} void null_elgamal_add_public_share(char** buffer, size_t* out_len, char const* share, size_t in_len, void* pubkey) {} GroupElement null_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) { return NULL; } void null_elgamal_shared_key_deleter(struct SharedKey* s) {} void null_elgamal_deinitialize(void) {} Initializer elgamal_initialize = &null_elgamal_initialize; KeyPairCreator elgamal_create_keypair = &null_elgamal_create_keypair; KeyPairDeleter elgamal_delete_keypair = NULL;//&null_elgamal_delete_keypair; ElementToArray elgamal_element_to_array = NULL;//&null_elgamal_element_to_array; BufferDeleter elgamal_free_buffer = NULL;//&null_elgamal_free_buffer; ArrayToElement elgamal_array_to_element = NULL;//&null_elgamal_array_to_element; GroupElementGetter elgamal_get_group_element = NULL;//&null_elgamal_get_group_element; GroupElementDeleter elgamal_delete_group_element = NULL;//&null_elgamal_delete_group_element; KeyExchangeValueGetter elgamal_get_key_exchange_value = NULL;//&null_elgamal_get_key_exchange_value; GroupElementMultiplier elgamal_multiply = NULL;//&null_elgamal_multiply; DecryptionShareGetter elgamal_get_decryption_share = NULL;//&null_elgamal_get_decryption_share; GroupElementArraySizeGetter elgamal_get_group_element_array_size = NULL;//&null_elgamal_get_group_element_array_size; PublicShareAdder elgamal_add_public_share = NULL;//&null_elgamal_add_public_share; SharedKeyDeriver elgamal_derive_shared_key = &null_elgamal_derive_shared_key; SharedKeyDeleter elgamal_delete_shared_key = NULL;//&null_elgamal_delete_shared_key; Encrypter elgamal_encrypt = NULL;//&null_elgamal_encrypt; Deinitializer elgamal_deinitialize = &null_elgamal_deinitialize;