about summary refs log tree commit diff stats
path: root/src/omemo/omemo.h
diff options
context:
space:
mode:
authorPaul Fariello <paul@fariello.eu>2019-02-26 20:33:06 +0140
committerPaul Fariello <paul@fariello.eu>2019-04-10 16:03:50 +0200
commit0fb27dc4961608eb9b088ca659eb087dd2c1cae7 (patch)
treecaf8fd8ac5d330e98376b98f471115303b8cc523 /src/omemo/omemo.h
parentb1ae220aa47ff503fe368e4802061be159dfb42b (diff)
downloadprofani-tty-0fb27dc4961608eb9b088ca659eb087dd2c1cae7.tar.gz
Add OMEMO message encryption and decryption
Diffstat (limited to 'src/omemo/omemo.h')
-rw-r--r--src/omemo/omemo.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/omemo/omemo.h b/src/omemo/omemo.h
index bf42b3e3..eb9569a3 100644
--- a/src/omemo/omemo.h
+++ b/src/omemo/omemo.h
@@ -1,9 +1,19 @@
 #include <glib.h>
 
+#include "ui/ui.h"
 #include "config/account.h"
 
+#define OMEMO_ERR_UNSUPPORTED_CRYPTO -10000
+
 typedef struct omemo_context_t omemo_context;
 
+typedef struct omemo_key {
+    const unsigned char *data;
+    size_t length;
+    gboolean prekey;
+    uint32_t device_id;
+} omemo_key_t;
+
 void omemo_init(void);
 void omemo_generate_crypto_materials(ProfAccount *account);
 
@@ -18,3 +28,5 @@ void omemo_start_session(const char *const barejid);
 void omemo_start_device_session(const char *const jid, uint32_t device_id, uint32_t prekey_id, const unsigned char *const prekey, size_t prekey_len, uint32_t signed_prekey_id, const unsigned char *const signed_prekey, size_t signed_prekey_len, const unsigned char *const signature, size_t signature_len, const unsigned char *const identity_key, size_t identity_key_len);
 
 gboolean omemo_loaded(void);
+gboolean omemo_on_message_send(ProfChatWin *chatwin, const char *const message, gboolean request_receipt);
+char * omemo_on_message_recv(const char *const from, uint32_t sid, const unsigned char *const iv, size_t iv_len, GList *keys, const unsigned char *const payload, size_t payload_len);