|
wickr-crypto-c
|
Data Structures | |
| struct | wickr_transport_root_key |
| A root key for the wickr_transport_ctx that is used to communicate the master secret for the transport communication. The root key can be converted to a set of stream keys based on direction for use in a transport. More... | |
Functions | |
| wickr_transport_root_key_t * | wickr_transport_root_key_create_random (const wickr_crypto_engine_t *engine, wickr_cipher_t cipher, uint32_t packets_per_evo_send, uint32_t packets_per_evo_recv) |
| wickr_transport_root_key_t * | wickr_transport_root_key_create (wickr_buffer_t *secret, wickr_cipher_t cipher, uint32_t packets_per_evo_send, uint32_t packets_per_evo_recv) |
| wickr_transport_root_key_t * | wickr_transport_root_key_copy (const wickr_transport_root_key_t *root_key) |
| void | wickr_transport_root_key_destroy (wickr_transport_root_key_t **root_key) |
| wickr_stream_key_t * | wickr_transport_root_key_to_stream_key (const wickr_transport_root_key_t *root_key, const wickr_crypto_engine_t *engine, const wickr_buffer_t *salt, const wickr_buffer_t *stream_id, wickr_stream_direction direction) |
| wickr_transport_root_key_t* wickr_transport_root_key_copy | ( | const wickr_transport_root_key_t * | root_key | ) |
Copy a transport root key
| root_key | the transport root key to copy |
root_key | wickr_transport_root_key_t* wickr_transport_root_key_create | ( | wickr_buffer_t * | secret, |
| wickr_cipher_t | cipher, | ||
| uint32_t | packets_per_evo_send, | ||
| uint32_t | packets_per_evo_recv | ||
| ) |
Create a root key using a random secret of length cipher.key_key
| secret | a secret of length cipher.key_len |
| cipher | the cipher to use for generating stream keys |
| packets_per_evo_send | the value to set for packets_per_evolution when creating a stream key in the ENCODE direction |
| packets_per_evo_recv | the value to set for packets_per_evolution when creating a stream key in the DECODE direction |
secret or NULL if allocation fails | wickr_transport_root_key_t* wickr_transport_root_key_create_random | ( | const wickr_crypto_engine_t * | engine, |
| wickr_cipher_t | cipher, | ||
| uint32_t | packets_per_evo_send, | ||
| uint32_t | packets_per_evo_recv | ||
| ) |
Create a root key using a random secret of length cipher.key_key
| engine | a pointer to a crypto engine that can generate random bytes |
| cipher | the cipher to use for generating stream keys |
| packets_per_evo_send | the value to set for packets_per_evolution when creating a stream key in the ENCODE direction |
| packets_per_evo_recv | the value to set for packets_per_evolution when creating a stream key in the DECODE direction |
| void wickr_transport_root_key_destroy | ( | wickr_transport_root_key_t ** | root_key | ) |
Destroy a transport root key
| root_key | a pointer to the transport root key to destroy. All properties of *root_key will also be destroyed |
| wickr_stream_key_t* wickr_transport_root_key_to_stream_key | ( | const wickr_transport_root_key_t * | root_key, |
| const wickr_crypto_engine_t * | engine, | ||
| const wickr_buffer_t * | salt, | ||
| const wickr_buffer_t * | stream_id, | ||
| wickr_stream_direction | direction | ||
| ) |
Convert a transport root key into a stream key
| root_key | the transport root key to convert into a stream key |
| engine | a pointer to a crypto engine that supports HKDF functionality |
| salt | the salt to use for the HKDF function |
| stream_id | a stream id that will differentiate the stream between the ENCODE and DECODE directions |
| direction | the direction to set on the resulting stream key |