25 #include "crypto_engine.h" 27 #include "stream_ctx.h" 52 TRANSPORT_STATUS_NONE,
53 TRANSPORT_STATUS_SEEDED,
54 TRANSPORT_STATUS_TX_INIT,
55 TRANSPORT_STATUS_ACTIVE,
56 TRANSPORT_STATUS_ERROR
57 } wickr_transport_status;
60 TRANSPORT_DATA_FLOW_BIDIRECTIONAL,
61 TRANSPORT_DATA_FLOW_READ_ONLY,
62 TRANSPORT_DATA_FLOW_WRITE_ONLY
63 } wickr_transport_data_flow;
66 TRANSPORT_PAYLOAD_TYPE_HANDSHAKE,
67 TRANSPORT_PAYLOAD_TYPE_CIPHERTEXT
68 } wickr_transport_payload_type;
73 typedef void (*wickr_transport_state_change_func)(
const wickr_transport_ctx_t *ctx, wickr_transport_status status,
void *user);
99 wickr_transport_tx_func
tx;
100 wickr_transport_rx_func
rx;
wickr_transport_rx_func rx
Definition: transport_ctx.h:100
void wickr_transport_ctx_set_data_flow_mode(wickr_transport_ctx_t *ctx, wickr_transport_data_flow flow_mode)
const wickr_buffer_t * wickr_transport_ctx_get_user_psk(const wickr_transport_ctx_t *ctx)
Represents an array of bytes and the length of the allocation associated with those bytes.
Definition: buffer.h:51
const wickr_node_t * wickr_transport_ctx_get_remote_node_ptr(const wickr_transport_ctx_t *ctx)
A context that is used for encrypting or decrypting a sequenced stream of data packets The stream con...
Definition: stream_ctx.h:67
Represents a message destination at a point in time.
Definition: node.h:85
wickr_transport_psk_func on_psk_required
Definition: transport_ctx.h:103
void wickr_transport_ctx_destroy(wickr_transport_ctx_t **ctx)
wickr_transport_status wickr_transport_ctx_get_status(const wickr_transport_ctx_t *ctx)
void wickr_transport_ctx_set_callbacks(wickr_transport_ctx_t *ctx, const wickr_transport_callbacks_t *callbacks)
wickr_transport_ctx_t * wickr_transport_ctx_copy(const wickr_transport_ctx_t *ctx)
const void * wickr_transport_ctx_get_user_ctx(const wickr_transport_ctx_t *ctx)
wickr_transport_tx_stream_func on_tx_stream_gen
Definition: transport_ctx.h:104
wickr_transport_ctx_t * wickr_transport_ctx_create(const wickr_crypto_engine_t engine, wickr_node_t *local_identity, wickr_node_t *remote_identity, uint32_t evo_count, wickr_transport_callbacks_t callbacks, void *user)
wickr_transport_data_flow wickr_transport_ctx_get_data_flow_mode(const wickr_transport_ctx_t *ctx)
wickr_buffer_t * wickr_transport_ctx_process_tx_buffer(wickr_transport_ctx_t *ctx, const wickr_buffer_t *buffer)
wickr_transport_state_change_func on_state
Definition: transport_ctx.h:101
Transport context to manage the state machine of a point to point connection using fundamentals of th...
void wickr_transport_ctx_set_user_ctx(wickr_transport_ctx_t *ctx, void *user)
wickr_buffer_t * wickr_transport_ctx_process_rx_buffer(wickr_transport_ctx_t *ctx, const wickr_buffer_t *buffer)
void wickr_transport_ctx_start(wickr_transport_ctx_t *ctx)
Represents a root -> node relationship as well as it's signature status.
Definition: identity.h:110
Interface to a set of cryptographic operations used throughout the library. Currently the default imp...
Definition: crypto_engine.h:53
const wickr_transport_callbacks_t * wickr_transport_ctx_get_callbacks(const wickr_transport_ctx_t *ctx)
const wickr_buffer_t * wickr_transport_ctx_get_rxstream_user_data(const wickr_transport_ctx_t *ctx)
wickr_transport_tx_func tx
Definition: transport_ctx.h:99
callbacks to notify the user of events within the transport
Definition: transport_ctx.h:98
const wickr_node_t * wickr_transport_ctx_get_local_node_ptr(const wickr_transport_ctx_t *ctx)
bool wickr_transport_ctx_force_tx_key_evo(wickr_transport_ctx_t *ctx)
wickr_transport_validate_identity_func on_identity_verify
Definition: transport_ctx.h:102