27 #include "root_keys.h"
28 #include "ephemeral_keypair.h"
32 #include "encoder_result.h"
84 #define DEFAULT_PKT_ENC_VERSION 4
500 const wickr_node_array_t *nodes);
uint8_t pkt_enc_version
Definition: wickr_ctx.h:79
wickr_encoder_result_t * wickr_ctx_encode_packet(const wickr_ctx_t *ctx, const wickr_payload_t *payload, const wickr_node_array_t *nodes)
wickr_ctx_gen_result_t * wickr_ctx_gen_with_recovery(const wickr_crypto_engine_t engine, wickr_dev_info_t *dev_info, wickr_buffer_t *recovery_data, wickr_cipher_key_t *recovery_key, wickr_buffer_t *identifier)
wickr_cipher_result_t * wickr_ctx_cipher_remote(const wickr_ctx_t *ctx, const wickr_buffer_t *plaintext)
Represents a root -> node relationship as well as it's signature status.
Definition: identity.h:116
wickr_buffer_t * wickr_ctx_serialize(const wickr_ctx_t *ctx)
An encrypted packet made with the Wickr protocol.
Definition: protocol.h:188
the output of a context generation
Definition: wickr_ctx.h:98
wickr_ctx_t * wickr_ctx_create(const wickr_crypto_engine_t engine, wickr_dev_info_t *dev_info, wickr_identity_chain_t *id_chain, wickr_storage_keys_t *storage_keys)
Interface to a set of cryptographic operations used throughout the library. Currently the default imp...
Definition: crypto_engine.h:53
Key's used for the client to encrypt data meant for itself, and not for other clients.
Definition: storage.h:48
void wickr_ctx_destroy(wickr_ctx_t **ctx)
wickr_root_keys_t * root_keys
Definition: wickr_ctx.h:101
wickr_buffer_t * wickr_ctx_export(const wickr_ctx_t *ctx, const wickr_buffer_t *passphrase)
wickr_ctx_t * wickr_ctx_create_from_buffer(const wickr_crypto_engine_t engine, wickr_dev_info_t *dev_info, const wickr_buffer_t *buffer)
result from parsing an inbound packet
Definition: protocol.h:266
wickr_packet_t * packet
Definition: wickr_ctx.h:456
the result of a packet encoding operation
Definition: encoder_result.h:45
wickr_ctx_t * wickr_ctx_copy(const wickr_ctx_t *ctx)
a parsed inbound wickr packet that has yet to be decoded by this context
Definition: wickr_ctx.h:455
wickr_cipher_key_t * packet_header_key
Definition: wickr_ctx.h:78
wickr_ctx_gen_result_t * wickr_ctx_gen_with_root_keys(const wickr_crypto_engine_t engine, wickr_dev_info_t *dev_info, wickr_root_keys_t *root_keys, wickr_buffer_t *identifier)
wickr_ctx_gen_result_t * wickr_ctx_gen_new(const wickr_crypto_engine_t engine, wickr_dev_info_t *dev_info, wickr_buffer_t *identifier)
Wickr encryption context for high level management of sending / receiving packets using the Wickr pro...
Definition: wickr_ctx.h:73
wickr_buffer_t * wickr_ctx_gen_export_recovery_key_passphrase(const wickr_ctx_gen_result_t *result, const wickr_buffer_t *passphrase)
wickr_parse_result_t * parse_result
Definition: wickr_ctx.h:458
void wickr_ctx_gen_result_destroy(wickr_ctx_gen_result_t **result)
wickr_root_keys_t * wickr_ctx_gen_import_recovery(const wickr_crypto_engine_t engine, const wickr_buffer_t *recovery_data, const wickr_cipher_key_t *recovery_key)
Root level crypto keys for signatures, local encryption, and remote encryption.
Definition: root_keys.h:50
wickr_cipher_result_t * wickr_ctx_cipher_local(const wickr_ctx_t *ctx, const wickr_buffer_t *plaintext)
wickr_buffer_t * wickr_ctx_export_storage_keys(const wickr_ctx_t *ctx, const wickr_buffer_t *passphrase)
wickr_storage_keys_t * wickr_ctx_import_storage_keys(const wickr_crypto_engine_t engine, const wickr_buffer_t *exported, const wickr_buffer_t *passphrase)
wickr_buffer_t * wickr_ctx_gen_result_make_recovery(const wickr_ctx_gen_result_t *result)
Represents a key pair used for message key exchanges within the Wickr Messaging Protocol.
Definition: ephemeral_keypair.h:62
wickr_ctx_gen_result_t * wickr_ctx_gen_result_copy(const wickr_ctx_gen_result_t *source)
The encrypted body content of a Wickr packet.
Definition: payload.h:46
Represents an array of bytes and the length of the allocation associated with those bytes.
Definition: buffer.h:51
wickr_identity_chain_t * sender
Definition: wickr_ctx.h:457
wickr_cipher_key_t * recovery_key
Definition: wickr_ctx.h:100
wickr_ctx_packet_t * wickr_ctx_parse_packet(const wickr_ctx_t *ctx, const wickr_buffer_t *packet_buffer, const wickr_identity_chain_t *sender)
wickr_ephemeral_keypair_t * wickr_ctx_ephemeral_keypair_gen(const wickr_ctx_t *ctx, uint64_t key_id)
wickr_ctx_gen_result_t * wickr_ctx_gen_new_with_sig_key(const wickr_crypto_engine_t engine, wickr_dev_info_t *dev_info, wickr_ec_key_t *sig_key, wickr_buffer_t *identifier)
wickr_buffer_t * wickr_ctx_decipher_remote(const wickr_ctx_t *ctx, const wickr_cipher_result_t *cipher_text)
wickr_dev_info_t * dev_info
Definition: wickr_ctx.h:75
wickr_ctx_t * ctx
Definition: wickr_ctx.h:99
a packet decoding result
Definition: protocol.h:334
wickr_crypto_engine_t engine
Definition: wickr_ctx.h:74
wickr_ctx_packet_t * wickr_ctx_packet_create(wickr_packet_t *packet, wickr_identity_chain_t *sender, wickr_parse_result_t *parse_result)
wickr_storage_keys_t * storage_keys
Definition: wickr_ctx.h:77
wickr_ctx_gen_result_t * wickr_ctx_gen_with_passphrase(const wickr_crypto_engine_t engine, wickr_dev_info_t *dev_info, wickr_buffer_t *exported_recovery_key, wickr_buffer_t *passphrase, wickr_buffer_t *recovery_data, wickr_buffer_t *identifier)
wickr_ctx_t * wickr_ctx_import(const wickr_crypto_engine_t engine, wickr_dev_info_t *dev_info, const wickr_buffer_t *exported, const wickr_buffer_t *passphrase)
Device Information used to make a uniquely identifying set of data for each context running the Wickr...
Definition: devinfo.h:58
wickr_identity_chain_t * id_chain
Definition: wickr_ctx.h:76
Representation of public and private Elliptic Curve Keypair information as buffers.
Definition: eckey.h:92
void wickr_ctx_packet_destroy(wickr_ctx_packet_t **packet)