libsignal-protocol-c  master
session_cipher.h
1 #ifndef SESSION_CIPHER_H
2 #define SESSION_CIPHER_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 
36 int session_cipher_create(session_cipher **cipher,
37  signal_protocol_store_context *store, const signal_protocol_address *remote_address,
38  signal_context *global_context);
39 
46 void session_cipher_set_user_data(session_cipher *cipher, void *user_data);
47 
54 void *session_cipher_get_user_data(session_cipher *cipher);
55 
73 void session_cipher_set_decryption_callback(session_cipher *cipher,
74  int (*callback)(session_cipher *cipher, signal_buffer *plaintext, void *decrypt_context));
75 
85 int session_cipher_encrypt(session_cipher *cipher,
86  const uint8_t *padded_message, size_t padded_message_len,
87  ciphertext_message **encrypted_message);
88 
107 int session_cipher_decrypt_pre_key_signal_message(session_cipher *cipher,
108  pre_key_signal_message *ciphertext, void *decrypt_context,
109  signal_buffer **plaintext);
110 
126 int session_cipher_decrypt_signal_message(session_cipher *cipher,
127  signal_message *ciphertext, void *decrypt_context,
128  signal_buffer **plaintext);
129 
137 int session_cipher_get_remote_registration_id(session_cipher *cipher, uint32_t *remote_id);
138 
147 int session_cipher_get_session_version(session_cipher *cipher, uint32_t *version);
148 
149 void session_cipher_free(session_cipher *cipher);
150 
151 #ifdef __cplusplus
152 }
153 #endif
154 
155 #endif /* SESSION_CIPHER_H */
Definition: signal_protocol.c:25
Definition: signal_protocol_internal.h:23
Definition: signal_protocol_internal.h:18
Definition: protocol.c:21
Definition: protocol.c:13
Definition: signal_protocol_types.h:39
Definition: protocol.c:31
Definition: session_cipher.c:13