libsignal-protocol-c  master
session_record.h
1 #ifndef SESSION_RECORD_H
2 #define SESSION_RECORD_H
3 
4 #include <stdint.h>
5 #include <stddef.h>
6 #include "signal_protocol_types.h"
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
12 int session_record_create(session_record **record, session_state *state, signal_context *global_context);
13 int session_record_serialize(signal_buffer **buffer, const session_record *record);
14 int session_record_deserialize(session_record **record, const uint8_t *data, size_t len, signal_context *global_context);
15 int session_record_copy(session_record **record, session_record *other_record, signal_context *global_context);
16 
17 int session_record_has_session_state(session_record *record, uint32_t version, const ec_public_key *alice_base_key);
18 session_state *session_record_get_state(session_record *record);
19 void session_record_set_state(session_record *record, session_state *state);
20 
21 session_record_state_node *session_record_get_previous_states_head(const session_record *record);
22 session_state *session_record_get_previous_states_element(const session_record_state_node *node);
23 session_record_state_node *session_record_get_previous_states_next(const session_record_state_node *node);
24 
30 session_record_state_node *session_record_get_previous_states_remove(session_record *record, session_record_state_node *node);
31 
32 int session_record_is_fresh(session_record *record);
33 
40 int session_record_archive_current_state(session_record *record);
41 
42 int session_record_promote_state(session_record *record, session_state *promoted_state);
43 
44 signal_buffer *session_record_get_user_record(const session_record *record);
45 void session_record_set_user_record(session_record *record, signal_buffer *user_record);
46 
47 void session_record_destroy(signal_type_base *type);
48 
49 #ifdef __cplusplus
50 }
51 #endif
52 
53 #endif /* SESSION_RECORD_H */
Definition: session_record.c:14
Definition: curve.c:19
Definition: signal_protocol_internal.h:8
Definition: session_record.c:20
Definition: signal_protocol_internal.h:23
Definition: signal_protocol_internal.h:18
Definition: session_state.c:53