22 #ifndef key_exchange_h
23 #define key_exchange_h
27 #include "crypto_engine.h"
98 typedef wickr_array_t wickr_exchange_array_t;
A collection of key exchanges for a set of recipients. The data protected inside 'exchange_ciphertext...
Definition: key_exchange.h:169
wickr_key_exchange_t * wickr_key_exchange_copy(const wickr_key_exchange_t *source)
wickr_buffer_t * exchange_id
Definition: key_exchange.h:54
Public key exchange protected data. After a shared secret is generated using a public key with identi...
Definition: key_exchange.h:53
wickr_key_exchange_set_t * wickr_key_exchange_set_create_from_cipher(const wickr_crypto_engine_t *engine, const wickr_cipher_result_t *cipher_result, const wickr_cipher_key_t *header_key)
wickr_key_exchange_set_t * wickr_key_exchange_set_create(wickr_ec_key_t *sender_pub, wickr_exchange_array_t *exchanges)
Interface to a set of cryptographic operations used throughout the library. Currently the default imp...
Definition: crypto_engine.h:53
wickr_exchange_array_t * exchanges
Definition: key_exchange.h:171
bool wickr_exchange_array_set_item(wickr_exchange_array_t *array, uint32_t index, wickr_key_exchange_t *exchange)
wickr_key_exchange_set_t * wickr_key_exchange_set_copy(const wickr_key_exchange_set_t *source)
wickr_key_exchange_t * wickr_key_exchange_set_find(const wickr_key_exchange_set_t *exchange_set, const wickr_buffer_t *identifier)
wickr_cipher_result_t * exchange_ciphertext
Definition: key_exchange.h:56
void wickr_key_exchange_destroy(wickr_key_exchange_t **exchange)
wickr_key_exchange_set_t * wickr_key_exchange_set_create_from_buffer(const wickr_crypto_engine_t *engine, const wickr_buffer_t *buffer)
void wickr_exchange_array_destroy(wickr_exchange_array_t **array)
wickr_array_t * wickr_exchange_array_copy(wickr_exchange_array_t *array)
wickr_key_exchange_t * wickr_key_exchange_create(wickr_buffer_t *exchange_id, uint64_t key_id, wickr_cipher_result_t *exchange_ciphertext)
wickr_key_exchange_t * wickr_exchange_array_fetch_item(wickr_exchange_array_t *array, uint32_t index)
wickr_ec_key_t * sender_pub
Definition: key_exchange.h:170
Represents an array of bytes and the length of the allocation associated with those bytes.
Definition: buffer.h:51
uint64_t key_id
Definition: key_exchange.h:55
wickr_cipher_result_t * wickr_key_exchange_set_encrypt(const wickr_key_exchange_set_t *exchange_set, const wickr_crypto_engine_t *engine, const wickr_cipher_key_t *header_key)
void wickr_key_exchange_set_destroy(wickr_key_exchange_set_t **exchange_set)
wickr_exchange_array_t * wickr_exchange_array_new(uint32_t exchange_count)
wickr_buffer_t * wickr_key_exchange_set_serialize(const wickr_key_exchange_set_t *exchange_set)
Representation of public and private Elliptic Curve Keypair information as buffers.
Definition: eckey.h:92