/* omemo.h generated by valac 0.56.19, the Vala compiler, do not modify */

#ifndef ___BUILD_DINO_SRC_BUILD_PLUGINS_OMEMO_OMEMO_H__
#define ___BUILD_DINO_SRC_BUILD_PLUGINS_OMEMO_OMEMO_H__

#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include "xmpp-vala.h"
#include <glib-object.h>
#include <gio/gio.h>
#include "libdino.h"
#include "qlite.h"
#include <gee.h>
#include <omemo/curve.h>
#include <native/helper.h>
#include <omemo/session_pre_key.h>
#include <omemo/ratchet.h>
#include <gmodule.h>
#include <omemo/signal_protocol.h>
#include <omemo/protocol.h>
#include <omemo/signal_protocol_types.h>
#include <omemo/session_builder.h>
#include <omemo/session_cipher.h>
#include <gtk/gtk.h>
#include <adwaita.h>

G_BEGIN_DECLS

#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_NS_URI "http://gultsch.de/xmpp/drafts/omemo/dlts-srtp-verification"
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif
#define DINO_PLUGINS_OMEMO_PLUGIN_DEBUG FALSE
#define DINO_PLUGINS_OMEMO_MESSAGE_FLAG_id "omemo"

#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_TYPE_STREAM_MODULE (dino_plugins_omemo_dtls_srtp_verification_draft_stream_module_get_type ())
#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_STREAM_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_TYPE_STREAM_MODULE, DinoPluginsOmemoDtlsSrtpVerificationDraftStreamModule))
#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_STREAM_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_TYPE_STREAM_MODULE, DinoPluginsOmemoDtlsSrtpVerificationDraftStreamModuleClass))
#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_IS_STREAM_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_TYPE_STREAM_MODULE))
#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_IS_STREAM_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_TYPE_STREAM_MODULE))
#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_STREAM_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_TYPE_STREAM_MODULE, DinoPluginsOmemoDtlsSrtpVerificationDraftStreamModuleClass))

typedef struct _DinoPluginsOmemoDtlsSrtpVerificationDraftStreamModule DinoPluginsOmemoDtlsSrtpVerificationDraftStreamModule;
typedef struct _DinoPluginsOmemoDtlsSrtpVerificationDraftStreamModuleClass DinoPluginsOmemoDtlsSrtpVerificationDraftStreamModuleClass;
typedef struct _DinoPluginsOmemoDtlsSrtpVerificationDraftStreamModulePrivate DinoPluginsOmemoDtlsSrtpVerificationDraftStreamModulePrivate;

#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_TYPE_VERIFICATION_SEND_LISTENER (dino_plugins_omemo_dtls_srtp_verification_draft_verification_send_listener_get_type ())
#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_VERIFICATION_SEND_LISTENER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_TYPE_VERIFICATION_SEND_LISTENER, DinoPluginsOmemoDtlsSrtpVerificationDraftVerificationSendListener))
#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_VERIFICATION_SEND_LISTENER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_TYPE_VERIFICATION_SEND_LISTENER, DinoPluginsOmemoDtlsSrtpVerificationDraftVerificationSendListenerClass))
#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_IS_VERIFICATION_SEND_LISTENER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_TYPE_VERIFICATION_SEND_LISTENER))
#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_IS_VERIFICATION_SEND_LISTENER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_TYPE_VERIFICATION_SEND_LISTENER))
#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_VERIFICATION_SEND_LISTENER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_TYPE_VERIFICATION_SEND_LISTENER, DinoPluginsOmemoDtlsSrtpVerificationDraftVerificationSendListenerClass))

typedef struct _DinoPluginsOmemoDtlsSrtpVerificationDraftVerificationSendListener DinoPluginsOmemoDtlsSrtpVerificationDraftVerificationSendListener;
typedef struct _DinoPluginsOmemoDtlsSrtpVerificationDraftVerificationSendListenerClass DinoPluginsOmemoDtlsSrtpVerificationDraftVerificationSendListenerClass;
typedef struct _DinoPluginsOmemoDtlsSrtpVerificationDraftVerificationSendListenerPrivate DinoPluginsOmemoDtlsSrtpVerificationDraftVerificationSendListenerPrivate;

#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_TYPE_OMEMO_CONTENT_ENCRYPTION (dino_plugins_omemo_dtls_srtp_verification_draft_omemo_content_encryption_get_type ())
#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_OMEMO_CONTENT_ENCRYPTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_TYPE_OMEMO_CONTENT_ENCRYPTION, DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryption))
#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_OMEMO_CONTENT_ENCRYPTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_TYPE_OMEMO_CONTENT_ENCRYPTION, DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryptionClass))
#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_IS_OMEMO_CONTENT_ENCRYPTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_TYPE_OMEMO_CONTENT_ENCRYPTION))
#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_IS_OMEMO_CONTENT_ENCRYPTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_TYPE_OMEMO_CONTENT_ENCRYPTION))
#define DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_OMEMO_CONTENT_ENCRYPTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_DTLS_SRTP_VERIFICATION_DRAFT_TYPE_OMEMO_CONTENT_ENCRYPTION, DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryptionClass))

typedef struct _DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryption DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryption;
typedef struct _DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryptionClass DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryptionClass;
typedef struct _DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryptionPrivate DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryptionPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_OMEMO_HTTP_FILE_RECEIVE_DATA (dino_plugins_omemo_omemo_http_file_receive_data_get_type ())
#define DINO_PLUGINS_OMEMO_OMEMO_HTTP_FILE_RECEIVE_DATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_HTTP_FILE_RECEIVE_DATA, DinoPluginsOmemoOmemoHttpFileReceiveData))
#define DINO_PLUGINS_OMEMO_OMEMO_HTTP_FILE_RECEIVE_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_OMEMO_HTTP_FILE_RECEIVE_DATA, DinoPluginsOmemoOmemoHttpFileReceiveDataClass))
#define DINO_PLUGINS_OMEMO_IS_OMEMO_HTTP_FILE_RECEIVE_DATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_HTTP_FILE_RECEIVE_DATA))
#define DINO_PLUGINS_OMEMO_IS_OMEMO_HTTP_FILE_RECEIVE_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_OMEMO_HTTP_FILE_RECEIVE_DATA))
#define DINO_PLUGINS_OMEMO_OMEMO_HTTP_FILE_RECEIVE_DATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_HTTP_FILE_RECEIVE_DATA, DinoPluginsOmemoOmemoHttpFileReceiveDataClass))

typedef struct _DinoPluginsOmemoOmemoHttpFileReceiveData DinoPluginsOmemoOmemoHttpFileReceiveData;
typedef struct _DinoPluginsOmemoOmemoHttpFileReceiveDataClass DinoPluginsOmemoOmemoHttpFileReceiveDataClass;
typedef struct _DinoPluginsOmemoOmemoHttpFileReceiveDataPrivate DinoPluginsOmemoOmemoHttpFileReceiveDataPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_OMEMO_FILE_DECRYPTOR (dino_plugins_omemo_omemo_file_decryptor_get_type ())
#define DINO_PLUGINS_OMEMO_OMEMO_FILE_DECRYPTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_FILE_DECRYPTOR, DinoPluginsOmemoOmemoFileDecryptor))
#define DINO_PLUGINS_OMEMO_OMEMO_FILE_DECRYPTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_OMEMO_FILE_DECRYPTOR, DinoPluginsOmemoOmemoFileDecryptorClass))
#define DINO_PLUGINS_OMEMO_IS_OMEMO_FILE_DECRYPTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_FILE_DECRYPTOR))
#define DINO_PLUGINS_OMEMO_IS_OMEMO_FILE_DECRYPTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_OMEMO_FILE_DECRYPTOR))
#define DINO_PLUGINS_OMEMO_OMEMO_FILE_DECRYPTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_FILE_DECRYPTOR, DinoPluginsOmemoOmemoFileDecryptorClass))

typedef struct _DinoPluginsOmemoOmemoFileDecryptor DinoPluginsOmemoOmemoFileDecryptor;
typedef struct _DinoPluginsOmemoOmemoFileDecryptorClass DinoPluginsOmemoOmemoFileDecryptorClass;
typedef struct _DinoPluginsOmemoOmemoFileDecryptorPrivate DinoPluginsOmemoOmemoFileDecryptorPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_OMEMO_HTTP_FILE_META (dino_plugins_omemo_omemo_http_file_meta_get_type ())
#define DINO_PLUGINS_OMEMO_OMEMO_HTTP_FILE_META(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_HTTP_FILE_META, DinoPluginsOmemoOmemoHttpFileMeta))
#define DINO_PLUGINS_OMEMO_OMEMO_HTTP_FILE_META_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_OMEMO_HTTP_FILE_META, DinoPluginsOmemoOmemoHttpFileMetaClass))
#define DINO_PLUGINS_OMEMO_IS_OMEMO_HTTP_FILE_META(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_HTTP_FILE_META))
#define DINO_PLUGINS_OMEMO_IS_OMEMO_HTTP_FILE_META_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_OMEMO_HTTP_FILE_META))
#define DINO_PLUGINS_OMEMO_OMEMO_HTTP_FILE_META_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_HTTP_FILE_META, DinoPluginsOmemoOmemoHttpFileMetaClass))

typedef struct _DinoPluginsOmemoOmemoHttpFileMeta DinoPluginsOmemoOmemoHttpFileMeta;
typedef struct _DinoPluginsOmemoOmemoHttpFileMetaClass DinoPluginsOmemoOmemoHttpFileMetaClass;
typedef struct _DinoPluginsOmemoOmemoHttpFileMetaPrivate DinoPluginsOmemoOmemoHttpFileMetaPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_OMEMO_FILE_ENCRYPTOR (dino_plugins_omemo_omemo_file_encryptor_get_type ())
#define DINO_PLUGINS_OMEMO_OMEMO_FILE_ENCRYPTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_FILE_ENCRYPTOR, DinoPluginsOmemoOmemoFileEncryptor))
#define DINO_PLUGINS_OMEMO_OMEMO_FILE_ENCRYPTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_OMEMO_FILE_ENCRYPTOR, DinoPluginsOmemoOmemoFileEncryptorClass))
#define DINO_PLUGINS_OMEMO_IS_OMEMO_FILE_ENCRYPTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_FILE_ENCRYPTOR))
#define DINO_PLUGINS_OMEMO_IS_OMEMO_FILE_ENCRYPTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_OMEMO_FILE_ENCRYPTOR))
#define DINO_PLUGINS_OMEMO_OMEMO_FILE_ENCRYPTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_FILE_ENCRYPTOR, DinoPluginsOmemoOmemoFileEncryptorClass))

typedef struct _DinoPluginsOmemoOmemoFileEncryptor DinoPluginsOmemoOmemoFileEncryptor;
typedef struct _DinoPluginsOmemoOmemoFileEncryptorClass DinoPluginsOmemoOmemoFileEncryptorClass;
typedef struct _DinoPluginsOmemoOmemoFileEncryptorPrivate DinoPluginsOmemoOmemoFileEncryptorPrivate;

#define DINO_PLUGINS_JET_OMEMO_TYPE_MODULE (dino_plugins_jet_omemo_module_get_type ())
#define DINO_PLUGINS_JET_OMEMO_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_JET_OMEMO_TYPE_MODULE, DinoPluginsJetOmemoModule))
#define DINO_PLUGINS_JET_OMEMO_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_JET_OMEMO_TYPE_MODULE, DinoPluginsJetOmemoModuleClass))
#define DINO_PLUGINS_JET_OMEMO_IS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_JET_OMEMO_TYPE_MODULE))
#define DINO_PLUGINS_JET_OMEMO_IS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_JET_OMEMO_TYPE_MODULE))
#define DINO_PLUGINS_JET_OMEMO_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_JET_OMEMO_TYPE_MODULE, DinoPluginsJetOmemoModuleClass))

typedef struct _DinoPluginsJetOmemoModule DinoPluginsJetOmemoModule;
typedef struct _DinoPluginsJetOmemoModuleClass DinoPluginsJetOmemoModuleClass;
typedef struct _DinoPluginsJetOmemoModulePrivate DinoPluginsJetOmemoModulePrivate;

#define DINO_PLUGINS_JET_OMEMO_TYPE_AES_GCM_CIPHER (dino_plugins_jet_omemo_aes_gcm_cipher_get_type ())
#define DINO_PLUGINS_JET_OMEMO_AES_GCM_CIPHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_JET_OMEMO_TYPE_AES_GCM_CIPHER, DinoPluginsJetOmemoAesGcmCipher))
#define DINO_PLUGINS_JET_OMEMO_AES_GCM_CIPHER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_JET_OMEMO_TYPE_AES_GCM_CIPHER, DinoPluginsJetOmemoAesGcmCipherClass))
#define DINO_PLUGINS_JET_OMEMO_IS_AES_GCM_CIPHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_JET_OMEMO_TYPE_AES_GCM_CIPHER))
#define DINO_PLUGINS_JET_OMEMO_IS_AES_GCM_CIPHER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_JET_OMEMO_TYPE_AES_GCM_CIPHER))
#define DINO_PLUGINS_JET_OMEMO_AES_GCM_CIPHER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_JET_OMEMO_TYPE_AES_GCM_CIPHER, DinoPluginsJetOmemoAesGcmCipherClass))

typedef struct _DinoPluginsJetOmemoAesGcmCipher DinoPluginsJetOmemoAesGcmCipher;
typedef struct _DinoPluginsJetOmemoAesGcmCipherClass DinoPluginsJetOmemoAesGcmCipherClass;
typedef struct _DinoPluginsJetOmemoAesGcmCipherPrivate DinoPluginsJetOmemoAesGcmCipherPrivate;

#define DINO_PLUGINS_JET_OMEMO_TYPE_ENCRYPTION_HELPER (dino_plugins_jet_omemo_encryption_helper_get_type ())
#define DINO_PLUGINS_JET_OMEMO_ENCRYPTION_HELPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_JET_OMEMO_TYPE_ENCRYPTION_HELPER, DinoPluginsJetOmemoEncryptionHelper))
#define DINO_PLUGINS_JET_OMEMO_ENCRYPTION_HELPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_JET_OMEMO_TYPE_ENCRYPTION_HELPER, DinoPluginsJetOmemoEncryptionHelperClass))
#define DINO_PLUGINS_JET_OMEMO_IS_ENCRYPTION_HELPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_JET_OMEMO_TYPE_ENCRYPTION_HELPER))
#define DINO_PLUGINS_JET_OMEMO_IS_ENCRYPTION_HELPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_JET_OMEMO_TYPE_ENCRYPTION_HELPER))
#define DINO_PLUGINS_JET_OMEMO_ENCRYPTION_HELPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_JET_OMEMO_TYPE_ENCRYPTION_HELPER, DinoPluginsJetOmemoEncryptionHelperClass))

typedef struct _DinoPluginsJetOmemoEncryptionHelper DinoPluginsJetOmemoEncryptionHelper;
typedef struct _DinoPluginsJetOmemoEncryptionHelperClass DinoPluginsJetOmemoEncryptionHelperClass;
typedef struct _DinoPluginsJetOmemoEncryptionHelperPrivate DinoPluginsJetOmemoEncryptionHelperPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_DATABASE (dino_plugins_omemo_database_get_type ())
#define DINO_PLUGINS_OMEMO_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_DATABASE, DinoPluginsOmemoDatabase))
#define DINO_PLUGINS_OMEMO_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_DATABASE, DinoPluginsOmemoDatabaseClass))
#define DINO_PLUGINS_OMEMO_IS_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_DATABASE))
#define DINO_PLUGINS_OMEMO_IS_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_DATABASE))
#define DINO_PLUGINS_OMEMO_DATABASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_DATABASE, DinoPluginsOmemoDatabaseClass))

typedef struct _DinoPluginsOmemoDatabase DinoPluginsOmemoDatabase;
typedef struct _DinoPluginsOmemoDatabaseClass DinoPluginsOmemoDatabaseClass;
typedef struct _DinoPluginsOmemoDatabasePrivate DinoPluginsOmemoDatabasePrivate;

#define DINO_PLUGINS_OMEMO_DATABASE_TYPE_IDENTITY_META_TABLE (dino_plugins_omemo_database_identity_meta_table_get_type ())
#define DINO_PLUGINS_OMEMO_DATABASE_IDENTITY_META_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_IDENTITY_META_TABLE, DinoPluginsOmemoDatabaseIdentityMetaTable))
#define DINO_PLUGINS_OMEMO_DATABASE_IDENTITY_META_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_DATABASE_TYPE_IDENTITY_META_TABLE, DinoPluginsOmemoDatabaseIdentityMetaTableClass))
#define DINO_PLUGINS_OMEMO_DATABASE_IS_IDENTITY_META_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_IDENTITY_META_TABLE))
#define DINO_PLUGINS_OMEMO_DATABASE_IS_IDENTITY_META_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_DATABASE_TYPE_IDENTITY_META_TABLE))
#define DINO_PLUGINS_OMEMO_DATABASE_IDENTITY_META_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_IDENTITY_META_TABLE, DinoPluginsOmemoDatabaseIdentityMetaTableClass))

typedef struct _DinoPluginsOmemoDatabaseIdentityMetaTable DinoPluginsOmemoDatabaseIdentityMetaTable;
typedef struct _DinoPluginsOmemoDatabaseIdentityMetaTableClass DinoPluginsOmemoDatabaseIdentityMetaTableClass;

#define DINO_PLUGINS_OMEMO_DATABASE_TYPE_TRUST_TABLE (dino_plugins_omemo_database_trust_table_get_type ())
#define DINO_PLUGINS_OMEMO_DATABASE_TRUST_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_TRUST_TABLE, DinoPluginsOmemoDatabaseTrustTable))
#define DINO_PLUGINS_OMEMO_DATABASE_TRUST_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_DATABASE_TYPE_TRUST_TABLE, DinoPluginsOmemoDatabaseTrustTableClass))
#define DINO_PLUGINS_OMEMO_DATABASE_IS_TRUST_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_TRUST_TABLE))
#define DINO_PLUGINS_OMEMO_DATABASE_IS_TRUST_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_DATABASE_TYPE_TRUST_TABLE))
#define DINO_PLUGINS_OMEMO_DATABASE_TRUST_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_TRUST_TABLE, DinoPluginsOmemoDatabaseTrustTableClass))

typedef struct _DinoPluginsOmemoDatabaseTrustTable DinoPluginsOmemoDatabaseTrustTable;
typedef struct _DinoPluginsOmemoDatabaseTrustTableClass DinoPluginsOmemoDatabaseTrustTableClass;

#define DINO_PLUGINS_OMEMO_DATABASE_TYPE_IDENTITY_TABLE (dino_plugins_omemo_database_identity_table_get_type ())
#define DINO_PLUGINS_OMEMO_DATABASE_IDENTITY_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_IDENTITY_TABLE, DinoPluginsOmemoDatabaseIdentityTable))
#define DINO_PLUGINS_OMEMO_DATABASE_IDENTITY_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_DATABASE_TYPE_IDENTITY_TABLE, DinoPluginsOmemoDatabaseIdentityTableClass))
#define DINO_PLUGINS_OMEMO_DATABASE_IS_IDENTITY_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_IDENTITY_TABLE))
#define DINO_PLUGINS_OMEMO_DATABASE_IS_IDENTITY_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_DATABASE_TYPE_IDENTITY_TABLE))
#define DINO_PLUGINS_OMEMO_DATABASE_IDENTITY_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_IDENTITY_TABLE, DinoPluginsOmemoDatabaseIdentityTableClass))

typedef struct _DinoPluginsOmemoDatabaseIdentityTable DinoPluginsOmemoDatabaseIdentityTable;
typedef struct _DinoPluginsOmemoDatabaseIdentityTableClass DinoPluginsOmemoDatabaseIdentityTableClass;

#define DINO_PLUGINS_OMEMO_DATABASE_TYPE_SIGNED_PRE_KEY_TABLE (dino_plugins_omemo_database_signed_pre_key_table_get_type ())
#define DINO_PLUGINS_OMEMO_DATABASE_SIGNED_PRE_KEY_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_SIGNED_PRE_KEY_TABLE, DinoPluginsOmemoDatabaseSignedPreKeyTable))
#define DINO_PLUGINS_OMEMO_DATABASE_SIGNED_PRE_KEY_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_DATABASE_TYPE_SIGNED_PRE_KEY_TABLE, DinoPluginsOmemoDatabaseSignedPreKeyTableClass))
#define DINO_PLUGINS_OMEMO_DATABASE_IS_SIGNED_PRE_KEY_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_SIGNED_PRE_KEY_TABLE))
#define DINO_PLUGINS_OMEMO_DATABASE_IS_SIGNED_PRE_KEY_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_DATABASE_TYPE_SIGNED_PRE_KEY_TABLE))
#define DINO_PLUGINS_OMEMO_DATABASE_SIGNED_PRE_KEY_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_SIGNED_PRE_KEY_TABLE, DinoPluginsOmemoDatabaseSignedPreKeyTableClass))

typedef struct _DinoPluginsOmemoDatabaseSignedPreKeyTable DinoPluginsOmemoDatabaseSignedPreKeyTable;
typedef struct _DinoPluginsOmemoDatabaseSignedPreKeyTableClass DinoPluginsOmemoDatabaseSignedPreKeyTableClass;

#define DINO_PLUGINS_OMEMO_DATABASE_TYPE_PRE_KEY_TABLE (dino_plugins_omemo_database_pre_key_table_get_type ())
#define DINO_PLUGINS_OMEMO_DATABASE_PRE_KEY_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_PRE_KEY_TABLE, DinoPluginsOmemoDatabasePreKeyTable))
#define DINO_PLUGINS_OMEMO_DATABASE_PRE_KEY_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_DATABASE_TYPE_PRE_KEY_TABLE, DinoPluginsOmemoDatabasePreKeyTableClass))
#define DINO_PLUGINS_OMEMO_DATABASE_IS_PRE_KEY_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_PRE_KEY_TABLE))
#define DINO_PLUGINS_OMEMO_DATABASE_IS_PRE_KEY_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_DATABASE_TYPE_PRE_KEY_TABLE))
#define DINO_PLUGINS_OMEMO_DATABASE_PRE_KEY_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_PRE_KEY_TABLE, DinoPluginsOmemoDatabasePreKeyTableClass))

typedef struct _DinoPluginsOmemoDatabasePreKeyTable DinoPluginsOmemoDatabasePreKeyTable;
typedef struct _DinoPluginsOmemoDatabasePreKeyTableClass DinoPluginsOmemoDatabasePreKeyTableClass;

#define DINO_PLUGINS_OMEMO_DATABASE_TYPE_SESSION_TABLE (dino_plugins_omemo_database_session_table_get_type ())
#define DINO_PLUGINS_OMEMO_DATABASE_SESSION_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_SESSION_TABLE, DinoPluginsOmemoDatabaseSessionTable))
#define DINO_PLUGINS_OMEMO_DATABASE_SESSION_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_DATABASE_TYPE_SESSION_TABLE, DinoPluginsOmemoDatabaseSessionTableClass))
#define DINO_PLUGINS_OMEMO_DATABASE_IS_SESSION_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_SESSION_TABLE))
#define DINO_PLUGINS_OMEMO_DATABASE_IS_SESSION_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_DATABASE_TYPE_SESSION_TABLE))
#define DINO_PLUGINS_OMEMO_DATABASE_SESSION_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_SESSION_TABLE, DinoPluginsOmemoDatabaseSessionTableClass))

typedef struct _DinoPluginsOmemoDatabaseSessionTable DinoPluginsOmemoDatabaseSessionTable;
typedef struct _DinoPluginsOmemoDatabaseSessionTableClass DinoPluginsOmemoDatabaseSessionTableClass;

#define DINO_PLUGINS_OMEMO_DATABASE_TYPE_CONTENT_ITEM_META_TABLE (dino_plugins_omemo_database_content_item_meta_table_get_type ())
#define DINO_PLUGINS_OMEMO_DATABASE_CONTENT_ITEM_META_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_CONTENT_ITEM_META_TABLE, DinoPluginsOmemoDatabaseContentItemMetaTable))
#define DINO_PLUGINS_OMEMO_DATABASE_CONTENT_ITEM_META_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_DATABASE_TYPE_CONTENT_ITEM_META_TABLE, DinoPluginsOmemoDatabaseContentItemMetaTableClass))
#define DINO_PLUGINS_OMEMO_DATABASE_IS_CONTENT_ITEM_META_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_CONTENT_ITEM_META_TABLE))
#define DINO_PLUGINS_OMEMO_DATABASE_IS_CONTENT_ITEM_META_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_DATABASE_TYPE_CONTENT_ITEM_META_TABLE))
#define DINO_PLUGINS_OMEMO_DATABASE_CONTENT_ITEM_META_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_DATABASE_TYPE_CONTENT_ITEM_META_TABLE, DinoPluginsOmemoDatabaseContentItemMetaTableClass))

typedef struct _DinoPluginsOmemoDatabaseContentItemMetaTable DinoPluginsOmemoDatabaseContentItemMetaTable;
typedef struct _DinoPluginsOmemoDatabaseContentItemMetaTableClass DinoPluginsOmemoDatabaseContentItemMetaTableClass;
typedef struct _DinoPluginsOmemoDatabaseIdentityMetaTablePrivate DinoPluginsOmemoDatabaseIdentityMetaTablePrivate;

#define DINO_PLUGINS_OMEMO_TYPE_BUNDLE (dino_plugins_omemo_bundle_get_type ())
#define DINO_PLUGINS_OMEMO_BUNDLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_BUNDLE, DinoPluginsOmemoBundle))
#define DINO_PLUGINS_OMEMO_BUNDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_BUNDLE, DinoPluginsOmemoBundleClass))
#define DINO_PLUGINS_OMEMO_IS_BUNDLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_BUNDLE))
#define DINO_PLUGINS_OMEMO_IS_BUNDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_BUNDLE))
#define DINO_PLUGINS_OMEMO_BUNDLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_BUNDLE, DinoPluginsOmemoBundleClass))

typedef struct _DinoPluginsOmemoBundle DinoPluginsOmemoBundle;
typedef struct _DinoPluginsOmemoBundleClass DinoPluginsOmemoBundleClass;
typedef enum  {
	DINO_PLUGINS_OMEMO_TRUST_LEVEL_VERIFIED,
	DINO_PLUGINS_OMEMO_TRUST_LEVEL_TRUSTED,
	DINO_PLUGINS_OMEMO_TRUST_LEVEL_UNTRUSTED,
	DINO_PLUGINS_OMEMO_TRUST_LEVEL_UNKNOWN
} DinoPluginsOmemoTrustLevel;

#define DINO_PLUGINS_OMEMO_TYPE_TRUST_LEVEL (dino_plugins_omemo_trust_level_get_type ())
typedef struct _DinoPluginsOmemoDatabaseTrustTablePrivate DinoPluginsOmemoDatabaseTrustTablePrivate;
typedef struct _DinoPluginsOmemoDatabaseIdentityTablePrivate DinoPluginsOmemoDatabaseIdentityTablePrivate;
typedef struct _DinoPluginsOmemoDatabaseSignedPreKeyTablePrivate DinoPluginsOmemoDatabaseSignedPreKeyTablePrivate;
typedef struct _DinoPluginsOmemoDatabasePreKeyTablePrivate DinoPluginsOmemoDatabasePreKeyTablePrivate;
typedef struct _DinoPluginsOmemoDatabaseSessionTablePrivate DinoPluginsOmemoDatabaseSessionTablePrivate;
typedef struct _DinoPluginsOmemoDatabaseContentItemMetaTablePrivate DinoPluginsOmemoDatabaseContentItemMetaTablePrivate;

#define DINO_PLUGINS_OMEMO_TYPE_OMEMO_DECRYPTOR (dino_plugins_omemo_omemo_decryptor_get_type ())
#define DINO_PLUGINS_OMEMO_OMEMO_DECRYPTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_DECRYPTOR, DinoPluginsOmemoOmemoDecryptor))
#define DINO_PLUGINS_OMEMO_OMEMO_DECRYPTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_OMEMO_DECRYPTOR, DinoPluginsOmemoOmemoDecryptorClass))
#define DINO_PLUGINS_OMEMO_IS_OMEMO_DECRYPTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_DECRYPTOR))
#define DINO_PLUGINS_OMEMO_IS_OMEMO_DECRYPTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_OMEMO_DECRYPTOR))
#define DINO_PLUGINS_OMEMO_OMEMO_DECRYPTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_DECRYPTOR, DinoPluginsOmemoOmemoDecryptorClass))

typedef struct _DinoPluginsOmemoOmemoDecryptor DinoPluginsOmemoOmemoDecryptor;
typedef struct _DinoPluginsOmemoOmemoDecryptorClass DinoPluginsOmemoOmemoDecryptorClass;
typedef struct _DinoPluginsOmemoOmemoDecryptorPrivate DinoPluginsOmemoOmemoDecryptorPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_TRUST_MANAGER (dino_plugins_omemo_trust_manager_get_type ())
#define DINO_PLUGINS_OMEMO_TRUST_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_TRUST_MANAGER, DinoPluginsOmemoTrustManager))
#define DINO_PLUGINS_OMEMO_TRUST_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_TRUST_MANAGER, DinoPluginsOmemoTrustManagerClass))
#define DINO_PLUGINS_OMEMO_IS_TRUST_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_TRUST_MANAGER))
#define DINO_PLUGINS_OMEMO_IS_TRUST_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_TRUST_MANAGER))
#define DINO_PLUGINS_OMEMO_TRUST_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_TRUST_MANAGER, DinoPluginsOmemoTrustManagerClass))

typedef struct _DinoPluginsOmemoTrustManager DinoPluginsOmemoTrustManager;
typedef struct _DinoPluginsOmemoTrustManagerClass DinoPluginsOmemoTrustManagerClass;

#define OMEMO_TYPE_STORE (omemo_store_get_type ())
#define OMEMO_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OMEMO_TYPE_STORE, OmemoStore))
#define OMEMO_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OMEMO_TYPE_STORE, OmemoStoreClass))
#define OMEMO_IS_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OMEMO_TYPE_STORE))
#define OMEMO_IS_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OMEMO_TYPE_STORE))
#define OMEMO_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OMEMO_TYPE_STORE, OmemoStoreClass))

typedef struct _OmemoStore OmemoStore;
typedef struct _OmemoStoreClass OmemoStoreClass;

#define DINO_PLUGINS_OMEMO_TYPE_DECRYPT_MESSAGE_LISTENER (dino_plugins_omemo_decrypt_message_listener_get_type ())
#define DINO_PLUGINS_OMEMO_DECRYPT_MESSAGE_LISTENER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_DECRYPT_MESSAGE_LISTENER, DinoPluginsOmemoDecryptMessageListener))
#define DINO_PLUGINS_OMEMO_DECRYPT_MESSAGE_LISTENER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_DECRYPT_MESSAGE_LISTENER, DinoPluginsOmemoDecryptMessageListenerClass))
#define DINO_PLUGINS_OMEMO_IS_DECRYPT_MESSAGE_LISTENER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_DECRYPT_MESSAGE_LISTENER))
#define DINO_PLUGINS_OMEMO_IS_DECRYPT_MESSAGE_LISTENER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_DECRYPT_MESSAGE_LISTENER))
#define DINO_PLUGINS_OMEMO_DECRYPT_MESSAGE_LISTENER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_DECRYPT_MESSAGE_LISTENER, DinoPluginsOmemoDecryptMessageListenerClass))

typedef struct _DinoPluginsOmemoDecryptMessageListener DinoPluginsOmemoDecryptMessageListener;
typedef struct _DinoPluginsOmemoDecryptMessageListenerClass DinoPluginsOmemoDecryptMessageListenerClass;
typedef struct _DinoPluginsOmemoDecryptMessageListenerPrivate DinoPluginsOmemoDecryptMessageListenerPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_OMEMO_ENCRYPTOR (dino_plugins_omemo_omemo_encryptor_get_type ())
#define DINO_PLUGINS_OMEMO_OMEMO_ENCRYPTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_ENCRYPTOR, DinoPluginsOmemoOmemoEncryptor))
#define DINO_PLUGINS_OMEMO_OMEMO_ENCRYPTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_OMEMO_ENCRYPTOR, DinoPluginsOmemoOmemoEncryptorClass))
#define DINO_PLUGINS_OMEMO_IS_OMEMO_ENCRYPTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_ENCRYPTOR))
#define DINO_PLUGINS_OMEMO_IS_OMEMO_ENCRYPTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_OMEMO_ENCRYPTOR))
#define DINO_PLUGINS_OMEMO_OMEMO_ENCRYPTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_ENCRYPTOR, DinoPluginsOmemoOmemoEncryptorClass))

typedef struct _DinoPluginsOmemoOmemoEncryptor DinoPluginsOmemoOmemoEncryptor;
typedef struct _DinoPluginsOmemoOmemoEncryptorClass DinoPluginsOmemoOmemoEncryptorClass;
typedef struct _DinoPluginsOmemoOmemoEncryptorPrivate DinoPluginsOmemoOmemoEncryptorPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_MANAGER (dino_plugins_omemo_manager_get_type ())
#define DINO_PLUGINS_OMEMO_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_MANAGER, DinoPluginsOmemoManager))
#define DINO_PLUGINS_OMEMO_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_MANAGER, DinoPluginsOmemoManagerClass))
#define DINO_PLUGINS_OMEMO_IS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_MANAGER))
#define DINO_PLUGINS_OMEMO_IS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_MANAGER))
#define DINO_PLUGINS_OMEMO_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_MANAGER, DinoPluginsOmemoManagerClass))

typedef struct _DinoPluginsOmemoManager DinoPluginsOmemoManager;
typedef struct _DinoPluginsOmemoManagerClass DinoPluginsOmemoManagerClass;
typedef struct _DinoPluginsOmemoManagerPrivate DinoPluginsOmemoManagerPrivate;
typedef struct _DinoPluginsOmemoTrustManagerPrivate DinoPluginsOmemoTrustManagerPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_PLUGIN (dino_plugins_omemo_plugin_get_type ())
#define DINO_PLUGINS_OMEMO_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_PLUGIN, DinoPluginsOmemoPlugin))
#define DINO_PLUGINS_OMEMO_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_PLUGIN, DinoPluginsOmemoPluginClass))
#define DINO_PLUGINS_OMEMO_IS_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_PLUGIN))
#define DINO_PLUGINS_OMEMO_IS_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_PLUGIN))
#define DINO_PLUGINS_OMEMO_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_PLUGIN, DinoPluginsOmemoPluginClass))

typedef struct _DinoPluginsOmemoPlugin DinoPluginsOmemoPlugin;
typedef struct _DinoPluginsOmemoPluginClass DinoPluginsOmemoPluginClass;
typedef struct _DinoPluginsOmemoPluginPrivate DinoPluginsOmemoPluginPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_ENCRYPTION_LIST_ENTRY (dino_plugins_omemo_encryption_list_entry_get_type ())
#define DINO_PLUGINS_OMEMO_ENCRYPTION_LIST_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_ENCRYPTION_LIST_ENTRY, DinoPluginsOmemoEncryptionListEntry))
#define DINO_PLUGINS_OMEMO_ENCRYPTION_LIST_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_ENCRYPTION_LIST_ENTRY, DinoPluginsOmemoEncryptionListEntryClass))
#define DINO_PLUGINS_OMEMO_IS_ENCRYPTION_LIST_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_ENCRYPTION_LIST_ENTRY))
#define DINO_PLUGINS_OMEMO_IS_ENCRYPTION_LIST_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_ENCRYPTION_LIST_ENTRY))
#define DINO_PLUGINS_OMEMO_ENCRYPTION_LIST_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_ENCRYPTION_LIST_ENTRY, DinoPluginsOmemoEncryptionListEntryClass))

typedef struct _DinoPluginsOmemoEncryptionListEntry DinoPluginsOmemoEncryptionListEntry;
typedef struct _DinoPluginsOmemoEncryptionListEntryClass DinoPluginsOmemoEncryptionListEntryClass;

#define DINO_PLUGINS_OMEMO_TYPE_CONTACT_DETAILS_PROVIDER (dino_plugins_omemo_contact_details_provider_get_type ())
#define DINO_PLUGINS_OMEMO_CONTACT_DETAILS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_CONTACT_DETAILS_PROVIDER, DinoPluginsOmemoContactDetailsProvider))
#define DINO_PLUGINS_OMEMO_CONTACT_DETAILS_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_CONTACT_DETAILS_PROVIDER, DinoPluginsOmemoContactDetailsProviderClass))
#define DINO_PLUGINS_OMEMO_IS_CONTACT_DETAILS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_CONTACT_DETAILS_PROVIDER))
#define DINO_PLUGINS_OMEMO_IS_CONTACT_DETAILS_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_CONTACT_DETAILS_PROVIDER))
#define DINO_PLUGINS_OMEMO_CONTACT_DETAILS_PROVIDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_CONTACT_DETAILS_PROVIDER, DinoPluginsOmemoContactDetailsProviderClass))

typedef struct _DinoPluginsOmemoContactDetailsProvider DinoPluginsOmemoContactDetailsProvider;
typedef struct _DinoPluginsOmemoContactDetailsProviderClass DinoPluginsOmemoContactDetailsProviderClass;

#define DINO_PLUGINS_OMEMO_TYPE_DEVICE_NOTIFICATION_POPULATOR (dino_plugins_omemo_device_notification_populator_get_type ())
#define DINO_PLUGINS_OMEMO_DEVICE_NOTIFICATION_POPULATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_DEVICE_NOTIFICATION_POPULATOR, DinoPluginsOmemoDeviceNotificationPopulator))
#define DINO_PLUGINS_OMEMO_DEVICE_NOTIFICATION_POPULATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_DEVICE_NOTIFICATION_POPULATOR, DinoPluginsOmemoDeviceNotificationPopulatorClass))
#define DINO_PLUGINS_OMEMO_IS_DEVICE_NOTIFICATION_POPULATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_DEVICE_NOTIFICATION_POPULATOR))
#define DINO_PLUGINS_OMEMO_IS_DEVICE_NOTIFICATION_POPULATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_DEVICE_NOTIFICATION_POPULATOR))
#define DINO_PLUGINS_OMEMO_DEVICE_NOTIFICATION_POPULATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_DEVICE_NOTIFICATION_POPULATOR, DinoPluginsOmemoDeviceNotificationPopulatorClass))

typedef struct _DinoPluginsOmemoDeviceNotificationPopulator DinoPluginsOmemoDeviceNotificationPopulator;
typedef struct _DinoPluginsOmemoDeviceNotificationPopulatorClass DinoPluginsOmemoDeviceNotificationPopulatorClass;

#define DINO_PLUGINS_OMEMO_TYPE_OWN_NOTIFICATIONS (dino_plugins_omemo_own_notifications_get_type ())
#define DINO_PLUGINS_OMEMO_OWN_NOTIFICATIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_OWN_NOTIFICATIONS, DinoPluginsOmemoOwnNotifications))
#define DINO_PLUGINS_OMEMO_OWN_NOTIFICATIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_OWN_NOTIFICATIONS, DinoPluginsOmemoOwnNotificationsClass))
#define DINO_PLUGINS_OMEMO_IS_OWN_NOTIFICATIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_OWN_NOTIFICATIONS))
#define DINO_PLUGINS_OMEMO_IS_OWN_NOTIFICATIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_OWN_NOTIFICATIONS))
#define DINO_PLUGINS_OMEMO_OWN_NOTIFICATIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_OWN_NOTIFICATIONS, DinoPluginsOmemoOwnNotificationsClass))

typedef struct _DinoPluginsOmemoOwnNotifications DinoPluginsOmemoOwnNotifications;
typedef struct _DinoPluginsOmemoOwnNotificationsClass DinoPluginsOmemoOwnNotificationsClass;

#define OMEMO_TYPE_CONTEXT (omemo_context_get_type ())
#define OMEMO_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OMEMO_TYPE_CONTEXT, OmemoContext))
#define OMEMO_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OMEMO_TYPE_CONTEXT, OmemoContextClass))
#define OMEMO_IS_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OMEMO_TYPE_CONTEXT))
#define OMEMO_IS_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OMEMO_TYPE_CONTEXT))
#define OMEMO_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OMEMO_TYPE_CONTEXT, OmemoContextClass))

typedef struct _OmemoContext OmemoContext;
typedef struct _OmemoContextClass OmemoContextClass;
typedef struct _DinoPluginsOmemoBundlePrivate DinoPluginsOmemoBundlePrivate;

#define DINO_PLUGINS_OMEMO_BUNDLE_TYPE_PRE_KEY (dino_plugins_omemo_bundle_pre_key_get_type ())
#define DINO_PLUGINS_OMEMO_BUNDLE_PRE_KEY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_BUNDLE_TYPE_PRE_KEY, DinoPluginsOmemoBundlePreKey))
#define DINO_PLUGINS_OMEMO_BUNDLE_PRE_KEY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_BUNDLE_TYPE_PRE_KEY, DinoPluginsOmemoBundlePreKeyClass))
#define DINO_PLUGINS_OMEMO_BUNDLE_IS_PRE_KEY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_BUNDLE_TYPE_PRE_KEY))
#define DINO_PLUGINS_OMEMO_BUNDLE_IS_PRE_KEY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_BUNDLE_TYPE_PRE_KEY))
#define DINO_PLUGINS_OMEMO_BUNDLE_PRE_KEY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_BUNDLE_TYPE_PRE_KEY, DinoPluginsOmemoBundlePreKeyClass))

typedef struct _DinoPluginsOmemoBundlePreKey DinoPluginsOmemoBundlePreKey;
typedef struct _DinoPluginsOmemoBundlePreKeyClass DinoPluginsOmemoBundlePreKeyClass;
typedef struct _DinoPluginsOmemoBundlePreKeyPrivate DinoPluginsOmemoBundlePreKeyPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_MESSAGE_FLAG (dino_plugins_omemo_message_flag_get_type ())
#define DINO_PLUGINS_OMEMO_MESSAGE_FLAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_MESSAGE_FLAG, DinoPluginsOmemoMessageFlag))
#define DINO_PLUGINS_OMEMO_MESSAGE_FLAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_MESSAGE_FLAG, DinoPluginsOmemoMessageFlagClass))
#define DINO_PLUGINS_OMEMO_IS_MESSAGE_FLAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_MESSAGE_FLAG))
#define DINO_PLUGINS_OMEMO_IS_MESSAGE_FLAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_MESSAGE_FLAG))
#define DINO_PLUGINS_OMEMO_MESSAGE_FLAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_MESSAGE_FLAG, DinoPluginsOmemoMessageFlagClass))

typedef struct _DinoPluginsOmemoMessageFlag DinoPluginsOmemoMessageFlag;
typedef struct _DinoPluginsOmemoMessageFlagClass DinoPluginsOmemoMessageFlagClass;
typedef struct _DinoPluginsOmemoMessageFlagPrivate DinoPluginsOmemoMessageFlagPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_STREAM_MODULE (dino_plugins_omemo_stream_module_get_type ())
#define DINO_PLUGINS_OMEMO_STREAM_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_STREAM_MODULE, DinoPluginsOmemoStreamModule))
#define DINO_PLUGINS_OMEMO_STREAM_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_STREAM_MODULE, DinoPluginsOmemoStreamModuleClass))
#define DINO_PLUGINS_OMEMO_IS_STREAM_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_STREAM_MODULE))
#define DINO_PLUGINS_OMEMO_IS_STREAM_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_STREAM_MODULE))
#define DINO_PLUGINS_OMEMO_STREAM_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_STREAM_MODULE, DinoPluginsOmemoStreamModuleClass))

typedef struct _DinoPluginsOmemoStreamModule DinoPluginsOmemoStreamModule;
typedef struct _DinoPluginsOmemoStreamModuleClass DinoPluginsOmemoStreamModuleClass;
typedef struct _DinoPluginsOmemoStreamModulePrivate DinoPluginsOmemoStreamModulePrivate;
typedef struct _OmemoContextPrivate OmemoContextPrivate;

#define OMEMO_TYPE_IDENTITY_KEY_STORE (omemo_identity_key_store_get_type ())
#define OMEMO_IDENTITY_KEY_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OMEMO_TYPE_IDENTITY_KEY_STORE, OmemoIdentityKeyStore))
#define OMEMO_IDENTITY_KEY_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OMEMO_TYPE_IDENTITY_KEY_STORE, OmemoIdentityKeyStoreClass))
#define OMEMO_IS_IDENTITY_KEY_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OMEMO_TYPE_IDENTITY_KEY_STORE))
#define OMEMO_IS_IDENTITY_KEY_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OMEMO_TYPE_IDENTITY_KEY_STORE))
#define OMEMO_IDENTITY_KEY_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OMEMO_TYPE_IDENTITY_KEY_STORE, OmemoIdentityKeyStoreClass))

typedef struct _OmemoIdentityKeyStore OmemoIdentityKeyStore;
typedef struct _OmemoIdentityKeyStoreClass OmemoIdentityKeyStoreClass;
typedef struct _OmemoIdentityKeyStorePrivate OmemoIdentityKeyStorePrivate;

#define OMEMO_TYPE_SIMPLE_IDENTITY_KEY_STORE (omemo_simple_identity_key_store_get_type ())
#define OMEMO_SIMPLE_IDENTITY_KEY_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OMEMO_TYPE_SIMPLE_IDENTITY_KEY_STORE, OmemoSimpleIdentityKeyStore))
#define OMEMO_SIMPLE_IDENTITY_KEY_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OMEMO_TYPE_SIMPLE_IDENTITY_KEY_STORE, OmemoSimpleIdentityKeyStoreClass))
#define OMEMO_IS_SIMPLE_IDENTITY_KEY_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OMEMO_TYPE_SIMPLE_IDENTITY_KEY_STORE))
#define OMEMO_IS_SIMPLE_IDENTITY_KEY_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OMEMO_TYPE_SIMPLE_IDENTITY_KEY_STORE))
#define OMEMO_SIMPLE_IDENTITY_KEY_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OMEMO_TYPE_SIMPLE_IDENTITY_KEY_STORE, OmemoSimpleIdentityKeyStoreClass))

typedef struct _OmemoSimpleIdentityKeyStore OmemoSimpleIdentityKeyStore;
typedef struct _OmemoSimpleIdentityKeyStoreClass OmemoSimpleIdentityKeyStoreClass;
typedef struct _OmemoSimpleIdentityKeyStorePrivate OmemoSimpleIdentityKeyStorePrivate;

#define OMEMO_TYPE_PRE_KEY_STORE (omemo_pre_key_store_get_type ())
#define OMEMO_PRE_KEY_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OMEMO_TYPE_PRE_KEY_STORE, OmemoPreKeyStore))
#define OMEMO_PRE_KEY_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OMEMO_TYPE_PRE_KEY_STORE, OmemoPreKeyStoreClass))
#define OMEMO_IS_PRE_KEY_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OMEMO_TYPE_PRE_KEY_STORE))
#define OMEMO_IS_PRE_KEY_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OMEMO_TYPE_PRE_KEY_STORE))
#define OMEMO_PRE_KEY_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OMEMO_TYPE_PRE_KEY_STORE, OmemoPreKeyStoreClass))

typedef struct _OmemoPreKeyStore OmemoPreKeyStore;
typedef struct _OmemoPreKeyStoreClass OmemoPreKeyStoreClass;
typedef struct _OmemoPreKeyStorePrivate OmemoPreKeyStorePrivate;

#define OMEMO_TYPE_SIMPLE_PRE_KEY_STORE (omemo_simple_pre_key_store_get_type ())
#define OMEMO_SIMPLE_PRE_KEY_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OMEMO_TYPE_SIMPLE_PRE_KEY_STORE, OmemoSimplePreKeyStore))
#define OMEMO_SIMPLE_PRE_KEY_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OMEMO_TYPE_SIMPLE_PRE_KEY_STORE, OmemoSimplePreKeyStoreClass))
#define OMEMO_IS_SIMPLE_PRE_KEY_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OMEMO_TYPE_SIMPLE_PRE_KEY_STORE))
#define OMEMO_IS_SIMPLE_PRE_KEY_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OMEMO_TYPE_SIMPLE_PRE_KEY_STORE))
#define OMEMO_SIMPLE_PRE_KEY_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OMEMO_TYPE_SIMPLE_PRE_KEY_STORE, OmemoSimplePreKeyStoreClass))

typedef struct _OmemoSimplePreKeyStore OmemoSimplePreKeyStore;
typedef struct _OmemoSimplePreKeyStoreClass OmemoSimplePreKeyStoreClass;
typedef struct _OmemoSimplePreKeyStorePrivate OmemoSimplePreKeyStorePrivate;

#define OMEMO_TYPE_SIGNED_PRE_KEY_STORE (omemo_signed_pre_key_store_get_type ())
#define OMEMO_SIGNED_PRE_KEY_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OMEMO_TYPE_SIGNED_PRE_KEY_STORE, OmemoSignedPreKeyStore))
#define OMEMO_SIGNED_PRE_KEY_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OMEMO_TYPE_SIGNED_PRE_KEY_STORE, OmemoSignedPreKeyStoreClass))
#define OMEMO_IS_SIGNED_PRE_KEY_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OMEMO_TYPE_SIGNED_PRE_KEY_STORE))
#define OMEMO_IS_SIGNED_PRE_KEY_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OMEMO_TYPE_SIGNED_PRE_KEY_STORE))
#define OMEMO_SIGNED_PRE_KEY_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OMEMO_TYPE_SIGNED_PRE_KEY_STORE, OmemoSignedPreKeyStoreClass))

typedef struct _OmemoSignedPreKeyStore OmemoSignedPreKeyStore;
typedef struct _OmemoSignedPreKeyStoreClass OmemoSignedPreKeyStoreClass;
typedef struct _OmemoSignedPreKeyStorePrivate OmemoSignedPreKeyStorePrivate;

#define OMEMO_TYPE_SIMPLE_SIGNED_PRE_KEY_STORE (omemo_simple_signed_pre_key_store_get_type ())
#define OMEMO_SIMPLE_SIGNED_PRE_KEY_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OMEMO_TYPE_SIMPLE_SIGNED_PRE_KEY_STORE, OmemoSimpleSignedPreKeyStore))
#define OMEMO_SIMPLE_SIGNED_PRE_KEY_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OMEMO_TYPE_SIMPLE_SIGNED_PRE_KEY_STORE, OmemoSimpleSignedPreKeyStoreClass))
#define OMEMO_IS_SIMPLE_SIGNED_PRE_KEY_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OMEMO_TYPE_SIMPLE_SIGNED_PRE_KEY_STORE))
#define OMEMO_IS_SIMPLE_SIGNED_PRE_KEY_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OMEMO_TYPE_SIMPLE_SIGNED_PRE_KEY_STORE))
#define OMEMO_SIMPLE_SIGNED_PRE_KEY_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OMEMO_TYPE_SIMPLE_SIGNED_PRE_KEY_STORE, OmemoSimpleSignedPreKeyStoreClass))

typedef struct _OmemoSimpleSignedPreKeyStore OmemoSimpleSignedPreKeyStore;
typedef struct _OmemoSimpleSignedPreKeyStoreClass OmemoSimpleSignedPreKeyStoreClass;
typedef struct _OmemoSimpleSignedPreKeyStorePrivate OmemoSimpleSignedPreKeyStorePrivate;

#define OMEMO_TYPE_SESSION_STORE (omemo_session_store_get_type ())
#define OMEMO_SESSION_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OMEMO_TYPE_SESSION_STORE, OmemoSessionStore))
#define OMEMO_SESSION_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OMEMO_TYPE_SESSION_STORE, OmemoSessionStoreClass))
#define OMEMO_IS_SESSION_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OMEMO_TYPE_SESSION_STORE))
#define OMEMO_IS_SESSION_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OMEMO_TYPE_SESSION_STORE))
#define OMEMO_SESSION_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OMEMO_TYPE_SESSION_STORE, OmemoSessionStoreClass))

typedef struct _OmemoSessionStore OmemoSessionStore;
typedef struct _OmemoSessionStoreClass OmemoSessionStoreClass;
typedef struct _OmemoSessionStorePrivate OmemoSessionStorePrivate;

#define OMEMO_TYPE_SIMPLE_SESSION_STORE (omemo_simple_session_store_get_type ())
#define OMEMO_SIMPLE_SESSION_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OMEMO_TYPE_SIMPLE_SESSION_STORE, OmemoSimpleSessionStore))
#define OMEMO_SIMPLE_SESSION_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OMEMO_TYPE_SIMPLE_SESSION_STORE, OmemoSimpleSessionStoreClass))
#define OMEMO_IS_SIMPLE_SESSION_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OMEMO_TYPE_SIMPLE_SESSION_STORE))
#define OMEMO_IS_SIMPLE_SESSION_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OMEMO_TYPE_SIMPLE_SESSION_STORE))
#define OMEMO_SIMPLE_SESSION_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OMEMO_TYPE_SIMPLE_SESSION_STORE, OmemoSimpleSessionStoreClass))

typedef struct _OmemoSimpleSessionStore OmemoSimpleSessionStore;
typedef struct _OmemoSimpleSessionStoreClass OmemoSimpleSessionStoreClass;
typedef struct _OmemoSimpleSessionStorePrivate OmemoSimpleSessionStorePrivate;

#define OMEMO_IDENTITY_KEY_STORE_TYPE_TRUSTED_IDENTITY (omemo_identity_key_store_trusted_identity_get_type ())
#define OMEMO_IDENTITY_KEY_STORE_TRUSTED_IDENTITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OMEMO_IDENTITY_KEY_STORE_TYPE_TRUSTED_IDENTITY, OmemoIdentityKeyStoreTrustedIdentity))
#define OMEMO_IDENTITY_KEY_STORE_TRUSTED_IDENTITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OMEMO_IDENTITY_KEY_STORE_TYPE_TRUSTED_IDENTITY, OmemoIdentityKeyStoreTrustedIdentityClass))
#define OMEMO_IDENTITY_KEY_STORE_IS_TRUSTED_IDENTITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OMEMO_IDENTITY_KEY_STORE_TYPE_TRUSTED_IDENTITY))
#define OMEMO_IDENTITY_KEY_STORE_IS_TRUSTED_IDENTITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OMEMO_IDENTITY_KEY_STORE_TYPE_TRUSTED_IDENTITY))
#define OMEMO_IDENTITY_KEY_STORE_TRUSTED_IDENTITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OMEMO_IDENTITY_KEY_STORE_TYPE_TRUSTED_IDENTITY, OmemoIdentityKeyStoreTrustedIdentityClass))

typedef struct _OmemoIdentityKeyStoreTrustedIdentity OmemoIdentityKeyStoreTrustedIdentity;
typedef struct _OmemoIdentityKeyStoreTrustedIdentityClass OmemoIdentityKeyStoreTrustedIdentityClass;
typedef struct _OmemoIdentityKeyStoreTrustedIdentityPrivate OmemoIdentityKeyStoreTrustedIdentityPrivate;

#define OMEMO_SESSION_STORE_TYPE_SESSION (omemo_session_store_session_get_type ())
#define OMEMO_SESSION_STORE_SESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OMEMO_SESSION_STORE_TYPE_SESSION, OmemoSessionStoreSession))
#define OMEMO_SESSION_STORE_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OMEMO_SESSION_STORE_TYPE_SESSION, OmemoSessionStoreSessionClass))
#define OMEMO_SESSION_STORE_IS_SESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OMEMO_SESSION_STORE_TYPE_SESSION))
#define OMEMO_SESSION_STORE_IS_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OMEMO_SESSION_STORE_TYPE_SESSION))
#define OMEMO_SESSION_STORE_SESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OMEMO_SESSION_STORE_TYPE_SESSION, OmemoSessionStoreSessionClass))

typedef struct _OmemoSessionStoreSession OmemoSessionStoreSession;
typedef struct _OmemoSessionStoreSessionClass OmemoSessionStoreSessionClass;
typedef struct _OmemoSessionStoreSessionPrivate OmemoSessionStoreSessionPrivate;

#define OMEMO_PRE_KEY_STORE_TYPE_KEY (omemo_pre_key_store_key_get_type ())
#define OMEMO_PRE_KEY_STORE_KEY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OMEMO_PRE_KEY_STORE_TYPE_KEY, OmemoPreKeyStoreKey))
#define OMEMO_PRE_KEY_STORE_KEY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OMEMO_PRE_KEY_STORE_TYPE_KEY, OmemoPreKeyStoreKeyClass))
#define OMEMO_PRE_KEY_STORE_IS_KEY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OMEMO_PRE_KEY_STORE_TYPE_KEY))
#define OMEMO_PRE_KEY_STORE_IS_KEY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OMEMO_PRE_KEY_STORE_TYPE_KEY))
#define OMEMO_PRE_KEY_STORE_KEY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OMEMO_PRE_KEY_STORE_TYPE_KEY, OmemoPreKeyStoreKeyClass))

typedef struct _OmemoPreKeyStoreKey OmemoPreKeyStoreKey;
typedef struct _OmemoPreKeyStoreKeyClass OmemoPreKeyStoreKeyClass;
typedef struct _OmemoPreKeyStoreKeyPrivate OmemoPreKeyStoreKeyPrivate;

#define OMEMO_SIGNED_PRE_KEY_STORE_TYPE_KEY (omemo_signed_pre_key_store_key_get_type ())
#define OMEMO_SIGNED_PRE_KEY_STORE_KEY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OMEMO_SIGNED_PRE_KEY_STORE_TYPE_KEY, OmemoSignedPreKeyStoreKey))
#define OMEMO_SIGNED_PRE_KEY_STORE_KEY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OMEMO_SIGNED_PRE_KEY_STORE_TYPE_KEY, OmemoSignedPreKeyStoreKeyClass))
#define OMEMO_SIGNED_PRE_KEY_STORE_IS_KEY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OMEMO_SIGNED_PRE_KEY_STORE_TYPE_KEY))
#define OMEMO_SIGNED_PRE_KEY_STORE_IS_KEY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OMEMO_SIGNED_PRE_KEY_STORE_TYPE_KEY))
#define OMEMO_SIGNED_PRE_KEY_STORE_KEY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OMEMO_SIGNED_PRE_KEY_STORE_TYPE_KEY, OmemoSignedPreKeyStoreKeyClass))

typedef struct _OmemoSignedPreKeyStoreKey OmemoSignedPreKeyStoreKey;
typedef struct _OmemoSignedPreKeyStoreKeyClass OmemoSignedPreKeyStoreKeyClass;
typedef struct _OmemoSignedPreKeyStoreKeyPrivate OmemoSignedPreKeyStoreKeyPrivate;
typedef struct _OmemoStorePrivate OmemoStorePrivate;
typedef enum  {
	DINO_PLUGINS_OMEMO_BADNESS_TYPE_UNTRUSTED,
	DINO_PLUGINS_OMEMO_BADNESS_TYPE_UNDECRYPTABLE
} DinoPluginsOmemoBadnessType;

#define DINO_PLUGINS_OMEMO_TYPE_BADNESS_TYPE (dino_plugins_omemo_badness_type_get_type ())

#define DINO_PLUGINS_OMEMO_TYPE_BAD_MESSAGES_POPULATOR (dino_plugins_omemo_bad_messages_populator_get_type ())
#define DINO_PLUGINS_OMEMO_BAD_MESSAGES_POPULATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_BAD_MESSAGES_POPULATOR, DinoPluginsOmemoBadMessagesPopulator))
#define DINO_PLUGINS_OMEMO_BAD_MESSAGES_POPULATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_BAD_MESSAGES_POPULATOR, DinoPluginsOmemoBadMessagesPopulatorClass))
#define DINO_PLUGINS_OMEMO_IS_BAD_MESSAGES_POPULATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_BAD_MESSAGES_POPULATOR))
#define DINO_PLUGINS_OMEMO_IS_BAD_MESSAGES_POPULATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_BAD_MESSAGES_POPULATOR))
#define DINO_PLUGINS_OMEMO_BAD_MESSAGES_POPULATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_BAD_MESSAGES_POPULATOR, DinoPluginsOmemoBadMessagesPopulatorClass))

typedef struct _DinoPluginsOmemoBadMessagesPopulator DinoPluginsOmemoBadMessagesPopulator;
typedef struct _DinoPluginsOmemoBadMessagesPopulatorClass DinoPluginsOmemoBadMessagesPopulatorClass;
typedef struct _DinoPluginsOmemoBadMessagesPopulatorPrivate DinoPluginsOmemoBadMessagesPopulatorPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_BAD_MESSAGE_ITEM (dino_plugins_omemo_bad_message_item_get_type ())
#define DINO_PLUGINS_OMEMO_BAD_MESSAGE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_BAD_MESSAGE_ITEM, DinoPluginsOmemoBadMessageItem))
#define DINO_PLUGINS_OMEMO_BAD_MESSAGE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_BAD_MESSAGE_ITEM, DinoPluginsOmemoBadMessageItemClass))
#define DINO_PLUGINS_OMEMO_IS_BAD_MESSAGE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_BAD_MESSAGE_ITEM))
#define DINO_PLUGINS_OMEMO_IS_BAD_MESSAGE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_BAD_MESSAGE_ITEM))
#define DINO_PLUGINS_OMEMO_BAD_MESSAGE_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_BAD_MESSAGE_ITEM, DinoPluginsOmemoBadMessageItemClass))

typedef struct _DinoPluginsOmemoBadMessageItem DinoPluginsOmemoBadMessageItem;
typedef struct _DinoPluginsOmemoBadMessageItemClass DinoPluginsOmemoBadMessageItemClass;
typedef struct _DinoPluginsOmemoBadMessageItemPrivate DinoPluginsOmemoBadMessageItemPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_BAD_MESSAGES_WIDGET (dino_plugins_omemo_bad_messages_widget_get_type ())
#define DINO_PLUGINS_OMEMO_BAD_MESSAGES_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_BAD_MESSAGES_WIDGET, DinoPluginsOmemoBadMessagesWidget))
#define DINO_PLUGINS_OMEMO_BAD_MESSAGES_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_BAD_MESSAGES_WIDGET, DinoPluginsOmemoBadMessagesWidgetClass))
#define DINO_PLUGINS_OMEMO_IS_BAD_MESSAGES_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_BAD_MESSAGES_WIDGET))
#define DINO_PLUGINS_OMEMO_IS_BAD_MESSAGES_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_BAD_MESSAGES_WIDGET))
#define DINO_PLUGINS_OMEMO_BAD_MESSAGES_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_BAD_MESSAGES_WIDGET, DinoPluginsOmemoBadMessagesWidgetClass))

typedef struct _DinoPluginsOmemoBadMessagesWidget DinoPluginsOmemoBadMessagesWidget;
typedef struct _DinoPluginsOmemoBadMessagesWidgetClass DinoPluginsOmemoBadMessagesWidgetClass;
typedef struct _DinoPluginsOmemoBadMessagesWidgetPrivate DinoPluginsOmemoBadMessagesWidgetPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_CALL_ENCRYPTION_ENTRY (dino_plugins_omemo_call_encryption_entry_get_type ())
#define DINO_PLUGINS_OMEMO_CALL_ENCRYPTION_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_CALL_ENCRYPTION_ENTRY, DinoPluginsOmemoCallEncryptionEntry))
#define DINO_PLUGINS_OMEMO_CALL_ENCRYPTION_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_CALL_ENCRYPTION_ENTRY, DinoPluginsOmemoCallEncryptionEntryClass))
#define DINO_PLUGINS_OMEMO_IS_CALL_ENCRYPTION_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_CALL_ENCRYPTION_ENTRY))
#define DINO_PLUGINS_OMEMO_IS_CALL_ENCRYPTION_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_CALL_ENCRYPTION_ENTRY))
#define DINO_PLUGINS_OMEMO_CALL_ENCRYPTION_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_CALL_ENCRYPTION_ENTRY, DinoPluginsOmemoCallEncryptionEntryClass))

typedef struct _DinoPluginsOmemoCallEncryptionEntry DinoPluginsOmemoCallEncryptionEntry;
typedef struct _DinoPluginsOmemoCallEncryptionEntryClass DinoPluginsOmemoCallEncryptionEntryClass;
typedef struct _DinoPluginsOmemoCallEncryptionEntryPrivate DinoPluginsOmemoCallEncryptionEntryPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_CALL_ENCRYPTION_WIDGET (dino_plugins_omemo_call_encryption_widget_get_type ())
#define DINO_PLUGINS_OMEMO_CALL_ENCRYPTION_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_CALL_ENCRYPTION_WIDGET, DinoPluginsOmemoCallEncryptionWidget))
#define DINO_PLUGINS_OMEMO_CALL_ENCRYPTION_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_CALL_ENCRYPTION_WIDGET, DinoPluginsOmemoCallEncryptionWidgetClass))
#define DINO_PLUGINS_OMEMO_IS_CALL_ENCRYPTION_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_CALL_ENCRYPTION_WIDGET))
#define DINO_PLUGINS_OMEMO_IS_CALL_ENCRYPTION_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_CALL_ENCRYPTION_WIDGET))
#define DINO_PLUGINS_OMEMO_CALL_ENCRYPTION_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_CALL_ENCRYPTION_WIDGET, DinoPluginsOmemoCallEncryptionWidgetClass))

typedef struct _DinoPluginsOmemoCallEncryptionWidget DinoPluginsOmemoCallEncryptionWidget;
typedef struct _DinoPluginsOmemoCallEncryptionWidgetClass DinoPluginsOmemoCallEncryptionWidgetClass;
typedef struct _DinoPluginsOmemoCallEncryptionWidgetPrivate DinoPluginsOmemoCallEncryptionWidgetPrivate;
typedef struct _DinoPluginsOmemoContactDetailsProviderPrivate DinoPluginsOmemoContactDetailsProviderPrivate;
typedef struct _DinoPluginsOmemoDeviceNotificationPopulatorPrivate DinoPluginsOmemoDeviceNotificationPopulatorPrivate;
typedef struct _DinoPluginsOmemoEncryptionListEntryPrivate DinoPluginsOmemoEncryptionListEntryPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_OMEMO_PREFERENCES_ENTRY (dino_plugins_omemo_omemo_preferences_entry_get_type ())
#define DINO_PLUGINS_OMEMO_OMEMO_PREFERENCES_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_PREFERENCES_ENTRY, DinoPluginsOmemoOmemoPreferencesEntry))
#define DINO_PLUGINS_OMEMO_OMEMO_PREFERENCES_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_OMEMO_PREFERENCES_ENTRY, DinoPluginsOmemoOmemoPreferencesEntryClass))
#define DINO_PLUGINS_OMEMO_IS_OMEMO_PREFERENCES_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_PREFERENCES_ENTRY))
#define DINO_PLUGINS_OMEMO_IS_OMEMO_PREFERENCES_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_OMEMO_PREFERENCES_ENTRY))
#define DINO_PLUGINS_OMEMO_OMEMO_PREFERENCES_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_PREFERENCES_ENTRY, DinoPluginsOmemoOmemoPreferencesEntryClass))

typedef struct _DinoPluginsOmemoOmemoPreferencesEntry DinoPluginsOmemoOmemoPreferencesEntry;
typedef struct _DinoPluginsOmemoOmemoPreferencesEntryClass DinoPluginsOmemoOmemoPreferencesEntryClass;
typedef struct _DinoPluginsOmemoOmemoPreferencesEntryPrivate DinoPluginsOmemoOmemoPreferencesEntryPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_OMEMO_PREFERENCES_WIDGET (dino_plugins_omemo_omemo_preferences_widget_get_type ())
#define DINO_PLUGINS_OMEMO_OMEMO_PREFERENCES_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_PREFERENCES_WIDGET, DinoPluginsOmemoOmemoPreferencesWidget))
#define DINO_PLUGINS_OMEMO_OMEMO_PREFERENCES_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_OMEMO_PREFERENCES_WIDGET, DinoPluginsOmemoOmemoPreferencesWidgetClass))
#define DINO_PLUGINS_OMEMO_IS_OMEMO_PREFERENCES_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_PREFERENCES_WIDGET))
#define DINO_PLUGINS_OMEMO_IS_OMEMO_PREFERENCES_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_OMEMO_PREFERENCES_WIDGET))
#define DINO_PLUGINS_OMEMO_OMEMO_PREFERENCES_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_OMEMO_PREFERENCES_WIDGET, DinoPluginsOmemoOmemoPreferencesWidgetClass))

typedef struct _DinoPluginsOmemoOmemoPreferencesWidget DinoPluginsOmemoOmemoPreferencesWidget;
typedef struct _DinoPluginsOmemoOmemoPreferencesWidgetClass DinoPluginsOmemoOmemoPreferencesWidgetClass;
typedef struct _DinoPluginsOmemoOmemoPreferencesWidgetPrivate DinoPluginsOmemoOmemoPreferencesWidgetPrivate;

#define DINO_PLUGINS_OMEMO_TYPE_MANAGE_KEY_DIALOG (dino_plugins_omemo_manage_key_dialog_get_type ())
#define DINO_PLUGINS_OMEMO_MANAGE_KEY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OMEMO_TYPE_MANAGE_KEY_DIALOG, DinoPluginsOmemoManageKeyDialog))
#define DINO_PLUGINS_OMEMO_MANAGE_KEY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OMEMO_TYPE_MANAGE_KEY_DIALOG, DinoPluginsOmemoManageKeyDialogClass))
#define DINO_PLUGINS_OMEMO_IS_MANAGE_KEY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OMEMO_TYPE_MANAGE_KEY_DIALOG))
#define DINO_PLUGINS_OMEMO_IS_MANAGE_KEY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OMEMO_TYPE_MANAGE_KEY_DIALOG))
#define DINO_PLUGINS_OMEMO_MANAGE_KEY_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OMEMO_TYPE_MANAGE_KEY_DIALOG, DinoPluginsOmemoManageKeyDialogClass))

typedef struct _DinoPluginsOmemoManageKeyDialog DinoPluginsOmemoManageKeyDialog;
typedef struct _DinoPluginsOmemoManageKeyDialogClass DinoPluginsOmemoManageKeyDialogClass;
typedef struct _DinoPluginsOmemoManageKeyDialogPrivate DinoPluginsOmemoManageKeyDialogPrivate;
typedef struct _DinoPluginsOmemoOwnNotificationsPrivate DinoPluginsOmemoOwnNotificationsPrivate;

struct _DinoPluginsOmemoDtlsSrtpVerificationDraftStreamModule {
	XmppXmppStreamModule parent_instance;
	DinoPluginsOmemoDtlsSrtpVerificationDraftStreamModulePrivate * priv;
};

struct _DinoPluginsOmemoDtlsSrtpVerificationDraftStreamModuleClass {
	XmppXmppStreamModuleClass parent_class;
};

struct _DinoPluginsOmemoDtlsSrtpVerificationDraftVerificationSendListener {
	XmppStanzaListener parent_instance;
	DinoPluginsOmemoDtlsSrtpVerificationDraftVerificationSendListenerPrivate * priv;
};

struct _DinoPluginsOmemoDtlsSrtpVerificationDraftVerificationSendListenerClass {
	XmppStanzaListenerClass parent_class;
};

struct _DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryption {
	XmppXepJingleContentEncryption parent_instance;
	DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryptionPrivate * priv;
};

struct _DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryptionClass {
	XmppXepJingleContentEncryptionClass parent_class;
};

struct _DinoPluginsOmemoOmemoHttpFileReceiveData {
	DinoHttpFileReceiveData parent_instance;
	DinoPluginsOmemoOmemoHttpFileReceiveDataPrivate * priv;
	gchar* original_url;
};

struct _DinoPluginsOmemoOmemoHttpFileReceiveDataClass {
	DinoHttpFileReceiveDataClass parent_class;
};

struct _DinoPluginsOmemoOmemoFileDecryptor {
	GObject parent_instance;
	DinoPluginsOmemoOmemoFileDecryptorPrivate * priv;
};

struct _DinoPluginsOmemoOmemoFileDecryptorClass {
	GObjectClass parent_class;
};

struct _DinoPluginsOmemoOmemoHttpFileMeta {
	DinoHttpFileMeta parent_instance;
	DinoPluginsOmemoOmemoHttpFileMetaPrivate * priv;
	guint8* iv;
	gint iv_length1;
	guint8* key;
	gint key_length1;
};

struct _DinoPluginsOmemoOmemoHttpFileMetaClass {
	DinoHttpFileMetaClass parent_class;
};

struct _DinoPluginsOmemoOmemoFileEncryptor {
	GObject parent_instance;
	DinoPluginsOmemoOmemoFileEncryptorPrivate * priv;
};

struct _DinoPluginsOmemoOmemoFileEncryptorClass {
	GObjectClass parent_class;
};

struct _DinoPluginsJetOmemoModule {
	XmppXmppStreamModule parent_instance;
	DinoPluginsJetOmemoModulePrivate * priv;
};

struct _DinoPluginsJetOmemoModuleClass {
	XmppXmppStreamModuleClass parent_class;
};

struct _DinoPluginsJetOmemoAesGcmCipher {
	GObject parent_instance;
	DinoPluginsJetOmemoAesGcmCipherPrivate * priv;
};

struct _DinoPluginsJetOmemoAesGcmCipherClass {
	GObjectClass parent_class;
};

struct _DinoPluginsJetOmemoEncryptionHelper {
	GObject parent_instance;
	DinoPluginsJetOmemoEncryptionHelperPrivate * priv;
};

struct _DinoPluginsJetOmemoEncryptionHelperClass {
	GObjectClass parent_class;
};

struct _DinoPluginsOmemoDatabase {
	QliteDatabase parent_instance;
	DinoPluginsOmemoDatabasePrivate * priv;
};

struct _DinoPluginsOmemoDatabaseClass {
	QliteDatabaseClass parent_class;
};

struct _DinoPluginsOmemoDatabaseIdentityMetaTable {
	QliteTable parent_instance;
	DinoPluginsOmemoDatabaseIdentityMetaTablePrivate * priv;
	QliteColumn* identity_id;
	QliteColumn* address_name;
	QliteColumn* device_id;
	QliteColumn* identity_key_public_base64;
	QliteColumn* trusted_identity;
	QliteColumn* trust_level;
	QliteColumn* now_active;
	QliteColumn* last_active;
	QliteColumn* last_message_untrusted;
	QliteColumn* last_message_undecryptable;
};

struct _DinoPluginsOmemoDatabaseIdentityMetaTableClass {
	QliteTableClass parent_class;
};

struct _DinoPluginsOmemoDatabaseTrustTable {
	QliteTable parent_instance;
	DinoPluginsOmemoDatabaseTrustTablePrivate * priv;
	QliteColumn* identity_id;
	QliteColumn* address_name;
	QliteColumn* blind_trust;
};

struct _DinoPluginsOmemoDatabaseTrustTableClass {
	QliteTableClass parent_class;
};

struct _DinoPluginsOmemoDatabaseIdentityTable {
	QliteTable parent_instance;
	DinoPluginsOmemoDatabaseIdentityTablePrivate * priv;
	QliteColumn* id;
	QliteColumn* account_id;
	QliteColumn* device_id;
	QliteColumn* identity_key_private_base64;
	QliteColumn* identity_key_public_base64;
};

struct _DinoPluginsOmemoDatabaseIdentityTableClass {
	QliteTableClass parent_class;
};

struct _DinoPluginsOmemoDatabaseSignedPreKeyTable {
	QliteTable parent_instance;
	DinoPluginsOmemoDatabaseSignedPreKeyTablePrivate * priv;
	QliteColumn* identity_id;
	QliteColumn* signed_pre_key_id;
	QliteColumn* record_base64;
};

struct _DinoPluginsOmemoDatabaseSignedPreKeyTableClass {
	QliteTableClass parent_class;
};

struct _DinoPluginsOmemoDatabasePreKeyTable {
	QliteTable parent_instance;
	DinoPluginsOmemoDatabasePreKeyTablePrivate * priv;
	QliteColumn* identity_id;
	QliteColumn* pre_key_id;
	QliteColumn* record_base64;
};

struct _DinoPluginsOmemoDatabasePreKeyTableClass {
	QliteTableClass parent_class;
};

struct _DinoPluginsOmemoDatabaseSessionTable {
	QliteTable parent_instance;
	DinoPluginsOmemoDatabaseSessionTablePrivate * priv;
	QliteColumn* identity_id;
	QliteColumn* address_name;
	QliteColumn* device_id;
	QliteColumn* record_base64;
};

struct _DinoPluginsOmemoDatabaseSessionTableClass {
	QliteTableClass parent_class;
};

struct _DinoPluginsOmemoDatabaseContentItemMetaTable {
	QliteTable parent_instance;
	DinoPluginsOmemoDatabaseContentItemMetaTablePrivate * priv;
	QliteColumn* content_item_id;
	QliteColumn* identity_id;
	QliteColumn* address_name;
	QliteColumn* device_id;
	QliteColumn* trusted_when_received;
};

struct _DinoPluginsOmemoDatabaseContentItemMetaTableClass {
	QliteTableClass parent_class;
};

struct _DinoPluginsOmemoOmemoDecryptor {
	XmppXepOmemoOmemoDecryptor parent_instance;
	DinoPluginsOmemoOmemoDecryptorPrivate * priv;
};

struct _DinoPluginsOmemoOmemoDecryptorClass {
	XmppXepOmemoOmemoDecryptorClass parent_class;
};

struct _DinoPluginsOmemoDecryptMessageListener {
	DinoMessageListener parent_instance;
	DinoPluginsOmemoDecryptMessageListenerPrivate * priv;
	gchar** after_actions_const;
	gint after_actions_const_length1;
};

struct _DinoPluginsOmemoDecryptMessageListenerClass {
	DinoMessageListenerClass parent_class;
};

struct _DinoPluginsOmemoOmemoEncryptor {
	XmppXepOmemoOmemoEncryptor parent_instance;
	DinoPluginsOmemoOmemoEncryptorPrivate * priv;
};

struct _DinoPluginsOmemoOmemoEncryptorClass {
	XmppXepOmemoOmemoEncryptorClass parent_class;
};

struct _DinoPluginsOmemoManager {
	GObject parent_instance;
	DinoPluginsOmemoManagerPrivate * priv;
};

struct _DinoPluginsOmemoManagerClass {
	GObjectClass parent_class;
};

struct _DinoPluginsOmemoTrustManager {
	GTypeInstance parent_instance;
	volatile int ref_count;
	DinoPluginsOmemoTrustManagerPrivate * priv;
	GeeHashMap* message_device_id_map;
};

struct _DinoPluginsOmemoTrustManagerClass {
	GTypeClass parent_class;
	void (*finalize) (DinoPluginsOmemoTrustManager *self);
};

struct _DinoPluginsOmemoPlugin {
	GObject parent_instance;
	DinoPluginsOmemoPluginPrivate * priv;
	DinoApplication* app;
	DinoPluginsOmemoDatabase* db;
	DinoPluginsOmemoEncryptionListEntry* list_entry;
	DinoPluginsOmemoContactDetailsProvider* contact_details_provider;
	DinoPluginsOmemoDeviceNotificationPopulator* device_notification_populator;
	DinoPluginsOmemoOwnNotifications* own_notifications;
	DinoPluginsOmemoTrustManager* trust_manager;
	GeeHashMap* decryptors;
	GeeHashMap* encryptors;
};

struct _DinoPluginsOmemoPluginClass {
	GObjectClass parent_class;
};

struct _DinoPluginsOmemoBundle {
	GTypeInstance parent_instance;
	volatile int ref_count;
	DinoPluginsOmemoBundlePrivate * priv;
	XmppStanzaNode* node;
};

struct _DinoPluginsOmemoBundleClass {
	GTypeClass parent_class;
	void (*finalize) (DinoPluginsOmemoBundle *self);
};

struct _DinoPluginsOmemoBundlePreKey {
	GTypeInstance parent_instance;
	volatile int ref_count;
	DinoPluginsOmemoBundlePreKeyPrivate * priv;
};

struct _DinoPluginsOmemoBundlePreKeyClass {
	GTypeClass parent_class;
	void (*finalize) (DinoPluginsOmemoBundlePreKey *self);
};

struct _DinoPluginsOmemoMessageFlag {
	XmppMessageFlag parent_instance;
	DinoPluginsOmemoMessageFlagPrivate * priv;
	gboolean decrypted;
};

struct _DinoPluginsOmemoMessageFlagClass {
	XmppMessageFlagClass parent_class;
};

struct _DinoPluginsOmemoStreamModule {
	XmppXmppStreamModule parent_instance;
	DinoPluginsOmemoStreamModulePrivate * priv;
};

struct _DinoPluginsOmemoStreamModuleClass {
	XmppXmppStreamModuleClass parent_class;
};

struct _OmemoContext {
	GTypeInstance parent_instance;
	volatile int ref_count;
	OmemoContextPrivate * priv;
	signal_context* native_context;
};

struct _OmemoContextClass {
	GTypeClass parent_class;
	void (*finalize) (OmemoContext *self);
};

struct _OmemoIdentityKeyStore {
	GObject parent_instance;
	OmemoIdentityKeyStorePrivate * priv;
};

struct _OmemoIdentityKeyStoreClass {
	GObjectClass parent_class;
	void (*save_identity) (OmemoIdentityKeyStore* self, signal_protocol_address* address, guint8* key, gint key_length1, GError** error);
	gboolean (*is_trusted_identity) (OmemoIdentityKeyStore* self, signal_protocol_address* address, guint8* key, gint key_length1, GError** error);
	GBytes* (*get_identity_key_private) (OmemoIdentityKeyStore* self);
	void (*set_identity_key_private) (OmemoIdentityKeyStore* self, GBytes* value);
	GBytes* (*get_identity_key_public) (OmemoIdentityKeyStore* self);
	void (*set_identity_key_public) (OmemoIdentityKeyStore* self, GBytes* value);
	guint32 (*get_local_registration_id) (OmemoIdentityKeyStore* self);
	void (*set_local_registration_id) (OmemoIdentityKeyStore* self, guint32 value);
};

struct _OmemoSimpleIdentityKeyStore {
	OmemoIdentityKeyStore parent_instance;
	OmemoSimpleIdentityKeyStorePrivate * priv;
};

struct _OmemoSimpleIdentityKeyStoreClass {
	OmemoIdentityKeyStoreClass parent_class;
};

struct _OmemoPreKeyStore {
	GObject parent_instance;
	OmemoPreKeyStorePrivate * priv;
};

struct _OmemoPreKeyStoreClass {
	GObjectClass parent_class;
	guint8* (*load_pre_key) (OmemoPreKeyStore* self, guint32 pre_key_id, gint* result_length1, GError** error);
	void (*store_pre_key) (OmemoPreKeyStore* self, guint32 pre_key_id, guint8* record, gint record_length1, GError** error);
	gboolean (*contains_pre_key) (OmemoPreKeyStore* self, guint32 pre_key_id, GError** error);
	void (*delete_pre_key) (OmemoPreKeyStore* self, guint32 pre_key_id, GError** error);
};

struct _OmemoSimplePreKeyStore {
	OmemoPreKeyStore parent_instance;
	OmemoSimplePreKeyStorePrivate * priv;
};

struct _OmemoSimplePreKeyStoreClass {
	OmemoPreKeyStoreClass parent_class;
};

struct _OmemoSignedPreKeyStore {
	GObject parent_instance;
	OmemoSignedPreKeyStorePrivate * priv;
};

struct _OmemoSignedPreKeyStoreClass {
	GObjectClass parent_class;
	guint8* (*load_signed_pre_key) (OmemoSignedPreKeyStore* self, guint32 pre_key_id, gint* result_length1, GError** error);
	void (*store_signed_pre_key) (OmemoSignedPreKeyStore* self, guint32 pre_key_id, guint8* record, gint record_length1, GError** error);
	gboolean (*contains_signed_pre_key) (OmemoSignedPreKeyStore* self, guint32 pre_key_id, GError** error);
	void (*delete_signed_pre_key) (OmemoSignedPreKeyStore* self, guint32 pre_key_id, GError** error);
};

struct _OmemoSimpleSignedPreKeyStore {
	OmemoSignedPreKeyStore parent_instance;
	OmemoSimpleSignedPreKeyStorePrivate * priv;
};

struct _OmemoSimpleSignedPreKeyStoreClass {
	OmemoSignedPreKeyStoreClass parent_class;
};

struct _OmemoSessionStore {
	GObject parent_instance;
	OmemoSessionStorePrivate * priv;
};

struct _OmemoSessionStoreClass {
	GObjectClass parent_class;
	guint8* (*load_session) (OmemoSessionStore* self, signal_protocol_address* address, gint* result_length1, GError** error);
	signal_int_list* (*get_sub_device_sessions) (OmemoSessionStore* self, const gchar* name, GError** error);
	void (*store_session) (OmemoSessionStore* self, signal_protocol_address* address, guint8* record, gint record_length1, GError** error);
	gboolean (*contains_session) (OmemoSessionStore* self, signal_protocol_address* address, GError** error);
	void (*delete_session) (OmemoSessionStore* self, signal_protocol_address* address, GError** error);
	void (*delete_all_sessions) (OmemoSessionStore* self, const gchar* name, GError** error);
};

struct _OmemoSimpleSessionStore {
	OmemoSessionStore parent_instance;
	OmemoSimpleSessionStorePrivate * priv;
};

struct _OmemoSimpleSessionStoreClass {
	OmemoSessionStoreClass parent_class;
};

struct _OmemoIdentityKeyStoreTrustedIdentity {
	GTypeInstance parent_instance;
	volatile int ref_count;
	OmemoIdentityKeyStoreTrustedIdentityPrivate * priv;
};

struct _OmemoIdentityKeyStoreTrustedIdentityClass {
	GTypeClass parent_class;
	void (*finalize) (OmemoIdentityKeyStoreTrustedIdentity *self);
};

struct _OmemoSessionStoreSession {
	GTypeInstance parent_instance;
	volatile int ref_count;
	OmemoSessionStoreSessionPrivate * priv;
	gchar* name;
	gint device_id;
	guint8* record;
	gint record_length1;
};

struct _OmemoSessionStoreSessionClass {
	GTypeClass parent_class;
	void (*finalize) (OmemoSessionStoreSession *self);
};

struct _OmemoPreKeyStoreKey {
	GTypeInstance parent_instance;
	volatile int ref_count;
	OmemoPreKeyStoreKeyPrivate * priv;
};

struct _OmemoPreKeyStoreKeyClass {
	GTypeClass parent_class;
	void (*finalize) (OmemoPreKeyStoreKey *self);
};

struct _OmemoSignedPreKeyStoreKey {
	GTypeInstance parent_instance;
	volatile int ref_count;
	OmemoSignedPreKeyStoreKeyPrivate * priv;
};

struct _OmemoSignedPreKeyStoreKeyClass {
	GTypeClass parent_class;
	void (*finalize) (OmemoSignedPreKeyStoreKey *self);
};

struct _OmemoStore {
	GObject parent_instance;
	OmemoStorePrivate * priv;
};

struct _OmemoStoreClass {
	GObjectClass parent_class;
};

struct _DinoPluginsOmemoBadMessagesPopulator {
	GObject parent_instance;
	DinoPluginsOmemoBadMessagesPopulatorPrivate * priv;
};

struct _DinoPluginsOmemoBadMessagesPopulatorClass {
	GObjectClass parent_class;
};

struct _DinoPluginsOmemoBadMessageItem {
	DinoPluginsMetaConversationItem parent_instance;
	DinoPluginsOmemoBadMessageItemPrivate * priv;
};

struct _DinoPluginsOmemoBadMessageItemClass {
	DinoPluginsMetaConversationItemClass parent_class;
};

struct _DinoPluginsOmemoBadMessagesWidget {
	GtkBox parent_instance;
	DinoPluginsOmemoBadMessagesWidgetPrivate * priv;
};

struct _DinoPluginsOmemoBadMessagesWidgetClass {
	GtkBoxClass parent_class;
};

struct _DinoPluginsOmemoCallEncryptionEntry {
	GObject parent_instance;
	DinoPluginsOmemoCallEncryptionEntryPrivate * priv;
};

struct _DinoPluginsOmemoCallEncryptionEntryClass {
	GObjectClass parent_class;
};

struct _DinoPluginsOmemoCallEncryptionWidget {
	GObject parent_instance;
	DinoPluginsOmemoCallEncryptionWidgetPrivate * priv;
};

struct _DinoPluginsOmemoCallEncryptionWidgetClass {
	GObjectClass parent_class;
};

struct _DinoPluginsOmemoContactDetailsProvider {
	GObject parent_instance;
	DinoPluginsOmemoContactDetailsProviderPrivate * priv;
};

struct _DinoPluginsOmemoContactDetailsProviderClass {
	GObjectClass parent_class;
};

struct _DinoPluginsOmemoDeviceNotificationPopulator {
	GObject parent_instance;
	DinoPluginsOmemoDeviceNotificationPopulatorPrivate * priv;
};

struct _DinoPluginsOmemoDeviceNotificationPopulatorClass {
	GObjectClass parent_class;
};

struct _DinoPluginsOmemoEncryptionListEntry {
	GObject parent_instance;
	DinoPluginsOmemoEncryptionListEntryPrivate * priv;
};

struct _DinoPluginsOmemoEncryptionListEntryClass {
	GObjectClass parent_class;
};

struct _DinoPluginsOmemoOmemoPreferencesEntry {
	DinoPluginsEncryptionPreferencesEntry parent_instance;
	DinoPluginsOmemoOmemoPreferencesEntryPrivate * priv;
};

struct _DinoPluginsOmemoOmemoPreferencesEntryClass {
	DinoPluginsEncryptionPreferencesEntryClass parent_class;
};

struct _DinoPluginsOmemoOmemoPreferencesWidget {
	AdwPreferencesGroup parent_instance;
	DinoPluginsOmemoOmemoPreferencesWidgetPrivate * priv;
};

struct _DinoPluginsOmemoOmemoPreferencesWidgetClass {
	AdwPreferencesGroupClass parent_class;
};

struct _DinoPluginsOmemoManageKeyDialog {
	GtkDialog parent_instance;
	DinoPluginsOmemoManageKeyDialogPrivate * priv;
};

struct _DinoPluginsOmemoManageKeyDialogClass {
	GtkDialogClass parent_class;
};

struct _DinoPluginsOmemoOwnNotifications {
	GTypeInstance parent_instance;
	volatile int ref_count;
	DinoPluginsOmemoOwnNotificationsPrivate * priv;
};

struct _DinoPluginsOmemoOwnNotificationsClass {
	GTypeClass parent_class;
	void (*finalize) (DinoPluginsOmemoOwnNotifications *self);
};

VALA_EXTERN GType dino_plugins_omemo_dtls_srtp_verification_draft_stream_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoDtlsSrtpVerificationDraftStreamModule, g_object_unref)
VALA_EXTERN XmppModuleIdentity* dino_plugins_omemo_dtls_srtp_verification_draft_stream_module_IDENTITY;
VALA_EXTERN DinoPluginsOmemoDtlsSrtpVerificationDraftStreamModule* dino_plugins_omemo_dtls_srtp_verification_draft_stream_module_new (void);
VALA_EXTERN DinoPluginsOmemoDtlsSrtpVerificationDraftStreamModule* dino_plugins_omemo_dtls_srtp_verification_draft_stream_module_construct (GType object_type);
VALA_EXTERN GType dino_plugins_omemo_dtls_srtp_verification_draft_verification_send_listener_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoDtlsSrtpVerificationDraftVerificationSendListener, g_object_unref)
VALA_EXTERN DinoPluginsOmemoDtlsSrtpVerificationDraftVerificationSendListener* dino_plugins_omemo_dtls_srtp_verification_draft_verification_send_listener_new (void);
VALA_EXTERN DinoPluginsOmemoDtlsSrtpVerificationDraftVerificationSendListener* dino_plugins_omemo_dtls_srtp_verification_draft_verification_send_listener_construct (GType object_type);
VALA_EXTERN GType dino_plugins_omemo_dtls_srtp_verification_draft_omemo_content_encryption_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryption, g_object_unref)
VALA_EXTERN DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryption* dino_plugins_omemo_dtls_srtp_verification_draft_omemo_content_encryption_new (const gchar* encryption_ns,
                                                                                                                                               const gchar* encryption_name,
                                                                                                                                               XmppJid* jid,
                                                                                                                                               gint sid);
VALA_EXTERN DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryption* dino_plugins_omemo_dtls_srtp_verification_draft_omemo_content_encryption_construct (GType object_type,
                                                                                                                                                     const gchar* encryption_ns,
                                                                                                                                                     const gchar* encryption_name,
                                                                                                                                                     XmppJid* jid,
                                                                                                                                                     gint sid);
VALA_EXTERN XmppJid* dino_plugins_omemo_dtls_srtp_verification_draft_omemo_content_encryption_get_jid (DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryption* self);
VALA_EXTERN void dino_plugins_omemo_dtls_srtp_verification_draft_omemo_content_encryption_set_jid (DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryption* self,
                                                                                       XmppJid* value);
VALA_EXTERN gint dino_plugins_omemo_dtls_srtp_verification_draft_omemo_content_encryption_get_sid (DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryption* self);
VALA_EXTERN void dino_plugins_omemo_dtls_srtp_verification_draft_omemo_content_encryption_set_sid (DinoPluginsOmemoDtlsSrtpVerificationDraftOmemoContentEncryption* self,
                                                                                       gint value);
VALA_EXTERN GType dino_plugins_omemo_omemo_http_file_receive_data_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoOmemoHttpFileReceiveData, dino_file_receive_data_unref)
VALA_EXTERN DinoPluginsOmemoOmemoHttpFileReceiveData* dino_plugins_omemo_omemo_http_file_receive_data_new (void);
VALA_EXTERN DinoPluginsOmemoOmemoHttpFileReceiveData* dino_plugins_omemo_omemo_http_file_receive_data_construct (GType object_type);
VALA_EXTERN GType dino_plugins_omemo_omemo_file_decryptor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoOmemoFileDecryptor, g_object_unref)
VALA_EXTERN DinoPluginsOmemoOmemoFileDecryptor* dino_plugins_omemo_omemo_file_decryptor_new (void);
VALA_EXTERN DinoPluginsOmemoOmemoFileDecryptor* dino_plugins_omemo_omemo_file_decryptor_construct (GType object_type);
VALA_EXTERN GType dino_plugins_omemo_omemo_http_file_meta_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoOmemoHttpFileMeta, dino_file_meta_unref)
VALA_EXTERN DinoPluginsOmemoOmemoHttpFileMeta* dino_plugins_omemo_omemo_http_file_meta_new (void);
VALA_EXTERN DinoPluginsOmemoOmemoHttpFileMeta* dino_plugins_omemo_omemo_http_file_meta_construct (GType object_type);
VALA_EXTERN GType dino_plugins_omemo_omemo_file_encryptor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoOmemoFileEncryptor, g_object_unref)
VALA_EXTERN DinoPluginsOmemoOmemoFileEncryptor* dino_plugins_omemo_omemo_file_encryptor_new (void);
VALA_EXTERN DinoPluginsOmemoOmemoFileEncryptor* dino_plugins_omemo_omemo_file_encryptor_construct (GType object_type);
VALA_EXTERN GType dino_plugins_jet_omemo_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsJetOmemoModule, g_object_unref)
VALA_EXTERN XmppModuleIdentity* dino_plugins_jet_omemo_module_IDENTITY;
VALA_EXTERN void dino_plugins_jet_omemo_module_is_available (DinoPluginsJetOmemoModule* self,
                                                 XmppXmppStream* stream,
                                                 XmppJid* full_jid,
                                                 GAsyncReadyCallback _callback_,
                                                 gpointer _user_data_);
VALA_EXTERN gboolean dino_plugins_jet_omemo_module_is_available_finish (DinoPluginsJetOmemoModule* self,
                                                            GAsyncResult* _res_);
VALA_EXTERN DinoPluginsJetOmemoModule* dino_plugins_jet_omemo_module_new (void);
VALA_EXTERN DinoPluginsJetOmemoModule* dino_plugins_jet_omemo_module_construct (GType object_type);
VALA_EXTERN GType dino_plugins_jet_omemo_aes_gcm_cipher_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsJetOmemoAesGcmCipher, g_object_unref)
VALA_EXTERN DinoPluginsJetOmemoAesGcmCipher* dino_plugins_jet_omemo_aes_gcm_cipher_new (guint key_size,
                                                                            guint default_iv_size,
                                                                            const gchar* uri);
VALA_EXTERN DinoPluginsJetOmemoAesGcmCipher* dino_plugins_jet_omemo_aes_gcm_cipher_construct (GType object_type,
                                                                                  guint key_size,
                                                                                  guint default_iv_size,
                                                                                  const gchar* uri);
VALA_EXTERN GType dino_plugins_jet_omemo_encryption_helper_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsJetOmemoEncryptionHelper, g_object_unref)
VALA_EXTERN DinoPluginsJetOmemoEncryptionHelper* dino_plugins_jet_omemo_encryption_helper_new (DinoStreamInteractor* stream_interactor);
VALA_EXTERN DinoPluginsJetOmemoEncryptionHelper* dino_plugins_jet_omemo_encryption_helper_construct (GType object_type,
                                                                                         DinoStreamInteractor* stream_interactor);
VALA_EXTERN GType dino_plugins_omemo_database_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoDatabase, qlite_database_unref)
VALA_EXTERN DinoPluginsOmemoDatabase* dino_plugins_omemo_database_new (const gchar* fileName);
VALA_EXTERN DinoPluginsOmemoDatabase* dino_plugins_omemo_database_construct (GType object_type,
                                                                 const gchar* fileName);
VALA_EXTERN GType dino_plugins_omemo_database_identity_meta_table_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoDatabaseIdentityMetaTable, qlite_table_unref)
VALA_EXTERN DinoPluginsOmemoDatabaseIdentityMetaTable* dino_plugins_omemo_database_get_identity_meta (DinoPluginsOmemoDatabase* self);
VALA_EXTERN GType dino_plugins_omemo_database_trust_table_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoDatabaseTrustTable, qlite_table_unref)
VALA_EXTERN DinoPluginsOmemoDatabaseTrustTable* dino_plugins_omemo_database_get_trust (DinoPluginsOmemoDatabase* self);
VALA_EXTERN GType dino_plugins_omemo_database_identity_table_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoDatabaseIdentityTable, qlite_table_unref)
VALA_EXTERN DinoPluginsOmemoDatabaseIdentityTable* dino_plugins_omemo_database_get_identity (DinoPluginsOmemoDatabase* self);
VALA_EXTERN GType dino_plugins_omemo_database_signed_pre_key_table_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoDatabaseSignedPreKeyTable, qlite_table_unref)
VALA_EXTERN DinoPluginsOmemoDatabaseSignedPreKeyTable* dino_plugins_omemo_database_get_signed_pre_key (DinoPluginsOmemoDatabase* self);
VALA_EXTERN GType dino_plugins_omemo_database_pre_key_table_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoDatabasePreKeyTable, qlite_table_unref)
VALA_EXTERN DinoPluginsOmemoDatabasePreKeyTable* dino_plugins_omemo_database_get_pre_key (DinoPluginsOmemoDatabase* self);
VALA_EXTERN GType dino_plugins_omemo_database_session_table_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoDatabaseSessionTable, qlite_table_unref)
VALA_EXTERN DinoPluginsOmemoDatabaseSessionTable* dino_plugins_omemo_database_get_session (DinoPluginsOmemoDatabase* self);
VALA_EXTERN GType dino_plugins_omemo_database_content_item_meta_table_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoDatabaseContentItemMetaTable, qlite_table_unref)
VALA_EXTERN DinoPluginsOmemoDatabaseContentItemMetaTable* dino_plugins_omemo_database_get_content_item_meta (DinoPluginsOmemoDatabase* self);
VALA_EXTERN QliteQueryBuilder* dino_plugins_omemo_database_identity_meta_table_with_address (DinoPluginsOmemoDatabaseIdentityMetaTable* self,
                                                                                 gint identity_id,
                                                                                 const gchar* address_name);
VALA_EXTERN QliteQueryBuilder* dino_plugins_omemo_database_identity_meta_table_get_with_device_id (DinoPluginsOmemoDatabaseIdentityMetaTable* self,
                                                                                       gint identity_id,
                                                                                       gint device_id);
VALA_EXTERN void dino_plugins_omemo_database_identity_meta_table_insert_device_list (DinoPluginsOmemoDatabaseIdentityMetaTable* self,
                                                                         gint32 identity_id,
                                                                         const gchar* address_name,
                                                                         GeeArrayList* devices);
VALA_EXTERN gpointer dino_plugins_omemo_bundle_ref (gpointer instance);
VALA_EXTERN void dino_plugins_omemo_bundle_unref (gpointer instance);
VALA_EXTERN GParamSpec* dino_plugins_omemo_param_spec_bundle (const gchar* name,
                                                  const gchar* nick,
                                                  const gchar* blurb,
                                                  GType object_type,
                                                  GParamFlags flags);
VALA_EXTERN void dino_plugins_omemo_value_set_bundle (GValue* value,
                                          gpointer v_object);
VALA_EXTERN void dino_plugins_omemo_value_take_bundle (GValue* value,
                                           gpointer v_object);
VALA_EXTERN gpointer dino_plugins_omemo_value_get_bundle (const GValue* value);
VALA_EXTERN GType dino_plugins_omemo_bundle_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoBundle, dino_plugins_omemo_bundle_unref)
VALA_EXTERN GType dino_plugins_omemo_trust_level_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gint64 dino_plugins_omemo_database_identity_meta_table_insert_device_bundle (DinoPluginsOmemoDatabaseIdentityMetaTable* self,
                                                                             gint32 identity_id,
                                                                             const gchar* address_name,
                                                                             gint device_id,
                                                                             DinoPluginsOmemoBundle* bundle,
                                                                             DinoPluginsOmemoTrustLevel trust);
VALA_EXTERN gint64 dino_plugins_omemo_database_identity_meta_table_insert_device_session (DinoPluginsOmemoDatabaseIdentityMetaTable* self,
                                                                              gint32 identity_id,
                                                                              const gchar* address_name,
                                                                              gint device_id,
                                                                              const gchar* identity_key,
                                                                              DinoPluginsOmemoTrustLevel trust);
VALA_EXTERN void dino_plugins_omemo_database_identity_meta_table_update_last_message_untrusted (DinoPluginsOmemoDatabaseIdentityMetaTable* self,
                                                                                    gint identity_id,
                                                                                    gint device_id,
                                                                                    GDateTime* time);
VALA_EXTERN void dino_plugins_omemo_database_identity_meta_table_update_last_message_undecryptable (DinoPluginsOmemoDatabaseIdentityMetaTable* self,
                                                                                        gint identity_id,
                                                                                        gint device_id,
                                                                                        GDateTime* time);
VALA_EXTERN QliteQueryBuilder* dino_plugins_omemo_database_identity_meta_table_get_trusted_devices (DinoPluginsOmemoDatabaseIdentityMetaTable* self,
                                                                                        gint identity_id,
                                                                                        const gchar* address_name);
VALA_EXTERN QliteQueryBuilder* dino_plugins_omemo_database_identity_meta_table_get_known_devices (DinoPluginsOmemoDatabaseIdentityMetaTable* self,
                                                                                      gint identity_id,
                                                                                      const gchar* address_name);
VALA_EXTERN QliteQueryBuilder* dino_plugins_omemo_database_identity_meta_table_get_unknown_devices (DinoPluginsOmemoDatabaseIdentityMetaTable* self,
                                                                                        gint identity_id,
                                                                                        const gchar* address_name);
VALA_EXTERN QliteQueryBuilder* dino_plugins_omemo_database_identity_meta_table_get_new_devices (DinoPluginsOmemoDatabaseIdentityMetaTable* self,
                                                                                    gint identity_id,
                                                                                    const gchar* address_name);
VALA_EXTERN QliteRow* dino_plugins_omemo_database_identity_meta_table_get_device (DinoPluginsOmemoDatabaseIdentityMetaTable* self,
                                                                      gint identity_id,
                                                                      const gchar* address_name,
                                                                      gint device_id);
VALA_EXTERN gboolean dino_plugins_omemo_database_trust_table_get_blind_trust (DinoPluginsOmemoDatabaseTrustTable* self,
                                                                  gint32 identity_id,
                                                                  const gchar* address_name,
                                                                  gboolean def);
VALA_EXTERN gint dino_plugins_omemo_database_identity_table_get_id (DinoPluginsOmemoDatabaseIdentityTable* self,
                                                        gint account_id);
VALA_EXTERN QliteRowOption* dino_plugins_omemo_database_content_item_meta_table_with_content_item (DinoPluginsOmemoDatabaseContentItemMetaTable* self,
                                                                                       DinoContentItem* item);
VALA_EXTERN QliteQueryBuilder* dino_plugins_omemo_database_content_item_meta_table_with_device (DinoPluginsOmemoDatabaseContentItemMetaTable* self,
                                                                                    gint identity_id,
                                                                                    const gchar* address_name,
                                                                                    gint device_id);
VALA_EXTERN GType dino_plugins_omemo_omemo_decryptor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoOmemoDecryptor, g_object_unref)
VALA_EXTERN gpointer dino_plugins_omemo_trust_manager_ref (gpointer instance);
VALA_EXTERN void dino_plugins_omemo_trust_manager_unref (gpointer instance);
VALA_EXTERN GParamSpec* dino_plugins_omemo_param_spec_trust_manager (const gchar* name,
                                                         const gchar* nick,
                                                         const gchar* blurb,
                                                         GType object_type,
                                                         GParamFlags flags);
VALA_EXTERN void dino_plugins_omemo_value_set_trust_manager (GValue* value,
                                                 gpointer v_object);
VALA_EXTERN void dino_plugins_omemo_value_take_trust_manager (GValue* value,
                                                  gpointer v_object);
VALA_EXTERN gpointer dino_plugins_omemo_value_get_trust_manager (const GValue* value);
VALA_EXTERN GType dino_plugins_omemo_trust_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoTrustManager, dino_plugins_omemo_trust_manager_unref)
VALA_EXTERN GType omemo_store_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OmemoStore, g_object_unref)
VALA_EXTERN DinoPluginsOmemoOmemoDecryptor* dino_plugins_omemo_omemo_decryptor_new (DinoEntitiesAccount* account,
                                                                        DinoStreamInteractor* stream_interactor,
                                                                        DinoPluginsOmemoTrustManager* trust_manager,
                                                                        DinoPluginsOmemoDatabase* db,
                                                                        OmemoStore* store);
VALA_EXTERN DinoPluginsOmemoOmemoDecryptor* dino_plugins_omemo_omemo_decryptor_construct (GType object_type,
                                                                              DinoEntitiesAccount* account,
                                                                              DinoStreamInteractor* stream_interactor,
                                                                              DinoPluginsOmemoTrustManager* trust_manager,
                                                                              DinoPluginsOmemoDatabase* db,
                                                                              OmemoStore* store);
VALA_EXTERN gboolean dino_plugins_omemo_omemo_decryptor_decrypt_message (DinoPluginsOmemoOmemoDecryptor* self,
                                                             DinoEntitiesMessage* message,
                                                             XmppMessageStanza* stanza,
                                                             DinoEntitiesConversation* conversation);
VALA_EXTERN GeeList* dino_plugins_omemo_omemo_decryptor_get_potential_message_jids (DinoPluginsOmemoOmemoDecryptor* self,
                                                                        DinoEntitiesMessage* message,
                                                                        XmppXepOmemoParsedData* data,
                                                                        gint identity_id);
VALA_EXTERN GType dino_plugins_omemo_decrypt_message_listener_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoDecryptMessageListener, g_object_unref)
VALA_EXTERN DinoPluginsOmemoDecryptMessageListener* dino_plugins_omemo_decrypt_message_listener_new (GeeHashMap* decryptors);
VALA_EXTERN DinoPluginsOmemoDecryptMessageListener* dino_plugins_omemo_decrypt_message_listener_construct (GType object_type,
                                                                                               GeeHashMap* decryptors);
VALA_EXTERN GType dino_plugins_omemo_omemo_encryptor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoOmemoEncryptor, g_object_unref)
VALA_EXTERN DinoPluginsOmemoOmemoEncryptor* dino_plugins_omemo_omemo_encryptor_new (DinoEntitiesAccount* account,
                                                                        DinoPluginsOmemoTrustManager* trust_manager,
                                                                        OmemoStore* store);
VALA_EXTERN DinoPluginsOmemoOmemoEncryptor* dino_plugins_omemo_omemo_encryptor_construct (GType object_type,
                                                                              DinoEntitiesAccount* account,
                                                                              DinoPluginsOmemoTrustManager* trust_manager,
                                                                              OmemoStore* store);
VALA_EXTERN XmppXepOmemoEncryptState* dino_plugins_omemo_omemo_encryptor_encrypt (DinoPluginsOmemoOmemoEncryptor* self,
                                                                      XmppMessageStanza* message,
                                                                      XmppJid* self_jid,
                                                                      GeeList* recipients,
                                                                      XmppXmppStream* stream);
VALA_EXTERN GType dino_plugins_omemo_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoManager, g_object_unref)
VALA_EXTERN DinoModuleIdentity* dino_plugins_omemo_manager_IDENTITY;
VALA_EXTERN void dino_plugins_omemo_manager_clear_device_list (DinoPluginsOmemoManager* self,
                                                   DinoEntitiesAccount* account);
VALA_EXTERN void dino_plugins_omemo_manager_ensure_get_keys_for_conversation (DinoPluginsOmemoManager* self,
                                                                  DinoEntitiesConversation* conversation,
                                                                  GAsyncReadyCallback _callback_,
                                                                  gpointer _user_data_);
VALA_EXTERN gboolean dino_plugins_omemo_manager_ensure_get_keys_for_conversation_finish (DinoPluginsOmemoManager* self,
                                                                             GAsyncResult* _res_);
VALA_EXTERN void dino_plugins_omemo_manager_ensure_get_keys_for_jid (DinoPluginsOmemoManager* self,
                                                         DinoEntitiesAccount* account,
                                                         XmppJid* jid,
                                                         GAsyncReadyCallback _callback_,
                                                         gpointer _user_data_);
VALA_EXTERN gboolean dino_plugins_omemo_manager_ensure_get_keys_for_jid_finish (DinoPluginsOmemoManager* self,
                                                                    GAsyncResult* _res_);
VALA_EXTERN void dino_plugins_omemo_manager_start (DinoStreamInteractor* stream_interactor,
                                       DinoPluginsOmemoDatabase* db,
                                       DinoPluginsOmemoTrustManager* trust_manager,
                                       GeeHashMap* encryptors);
VALA_EXTERN DinoPluginsOmemoTrustManager* dino_plugins_omemo_trust_manager_new (DinoStreamInteractor* stream_interactor,
                                                                    DinoPluginsOmemoDatabase* db);
VALA_EXTERN DinoPluginsOmemoTrustManager* dino_plugins_omemo_trust_manager_construct (GType object_type,
                                                                          DinoStreamInteractor* stream_interactor,
                                                                          DinoPluginsOmemoDatabase* db);
VALA_EXTERN void dino_plugins_omemo_trust_manager_set_blind_trust (DinoPluginsOmemoTrustManager* self,
                                                       DinoEntitiesAccount* account,
                                                       XmppJid* jid,
                                                       gboolean blind_trust);
VALA_EXTERN void dino_plugins_omemo_trust_manager_set_device_trust (DinoPluginsOmemoTrustManager* self,
                                                        DinoEntitiesAccount* account,
                                                        XmppJid* jid,
                                                        gint device_id,
                                                        DinoPluginsOmemoTrustLevel trust_level);
VALA_EXTERN gboolean dino_plugins_omemo_trust_manager_is_known_address (DinoPluginsOmemoTrustManager* self,
                                                            DinoEntitiesAccount* account,
                                                            XmppJid* jid);
VALA_EXTERN GeeList* dino_plugins_omemo_trust_manager_get_trusted_devices (DinoPluginsOmemoTrustManager* self,
                                                               DinoEntitiesAccount* account,
                                                               XmppJid* jid);
VALA_EXTERN GType dino_plugins_omemo_plugin_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoPlugin, g_object_unref)
VALA_EXTERN GType dino_plugins_omemo_encryption_list_entry_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoEncryptionListEntry, g_object_unref)
VALA_EXTERN GType dino_plugins_omemo_contact_details_provider_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoContactDetailsProvider, g_object_unref)
VALA_EXTERN GType dino_plugins_omemo_device_notification_populator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoDeviceNotificationPopulator, g_object_unref)
VALA_EXTERN gpointer dino_plugins_omemo_own_notifications_ref (gpointer instance);
VALA_EXTERN void dino_plugins_omemo_own_notifications_unref (gpointer instance);
VALA_EXTERN GParamSpec* dino_plugins_omemo_param_spec_own_notifications (const gchar* name,
                                                             const gchar* nick,
                                                             const gchar* blurb,
                                                             GType object_type,
                                                             GParamFlags flags);
VALA_EXTERN void dino_plugins_omemo_value_set_own_notifications (GValue* value,
                                                     gpointer v_object);
VALA_EXTERN void dino_plugins_omemo_value_take_own_notifications (GValue* value,
                                                      gpointer v_object);
VALA_EXTERN gpointer dino_plugins_omemo_value_get_own_notifications (const GValue* value);
VALA_EXTERN GType dino_plugins_omemo_own_notifications_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoOwnNotifications, dino_plugins_omemo_own_notifications_unref)
VALA_EXTERN gpointer omemo_context_ref (gpointer instance);
VALA_EXTERN void omemo_context_unref (gpointer instance);
VALA_EXTERN GParamSpec* omemo_param_spec_context (const gchar* name,
                                      const gchar* nick,
                                      const gchar* blurb,
                                      GType object_type,
                                      GParamFlags flags);
VALA_EXTERN void omemo_value_set_context (GValue* value,
                              gpointer v_object);
VALA_EXTERN void omemo_value_take_context (GValue* value,
                               gpointer v_object);
VALA_EXTERN gpointer omemo_value_get_context (const GValue* value);
VALA_EXTERN GType omemo_context_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OmemoContext, omemo_context_unref)
VALA_EXTERN OmemoContext* dino_plugins_omemo_plugin_get_context (void);
VALA_EXTERN gboolean dino_plugins_omemo_plugin_ensure_context (void);
VALA_EXTERN gboolean dino_plugins_omemo_plugin_has_new_devices (DinoPluginsOmemoPlugin* self,
                                                    DinoEntitiesAccount* account,
                                                    XmppJid* jid);
VALA_EXTERN DinoPluginsOmemoPlugin* dino_plugins_omemo_plugin_new (void);
VALA_EXTERN DinoPluginsOmemoPlugin* dino_plugins_omemo_plugin_construct (GType object_type);
VALA_EXTERN DinoPluginsOmemoBundle* dino_plugins_omemo_bundle_new (XmppStanzaNode* node);
VALA_EXTERN DinoPluginsOmemoBundle* dino_plugins_omemo_bundle_construct (GType object_type,
                                                             XmppStanzaNode* node);
VALA_EXTERN gint32 dino_plugins_omemo_bundle_get_signed_pre_key_id (DinoPluginsOmemoBundle* self);
VALA_EXTERN ec_public_key* dino_plugins_omemo_bundle_get_signed_pre_key (DinoPluginsOmemoBundle* self);
VALA_EXTERN guint8* dino_plugins_omemo_bundle_get_signed_pre_key_signature (DinoPluginsOmemoBundle* self,
                                                                gint* result_length1);
VALA_EXTERN ec_public_key* dino_plugins_omemo_bundle_get_identity_key (DinoPluginsOmemoBundle* self);
VALA_EXTERN gpointer dino_plugins_omemo_bundle_pre_key_ref (gpointer instance);
VALA_EXTERN void dino_plugins_omemo_bundle_pre_key_unref (gpointer instance);
VALA_EXTERN GParamSpec* dino_plugins_omemo_bundle_param_spec_pre_key (const gchar* name,
                                                          const gchar* nick,
                                                          const gchar* blurb,
                                                          GType object_type,
                                                          GParamFlags flags);
VALA_EXTERN void dino_plugins_omemo_bundle_value_set_pre_key (GValue* value,
                                                  gpointer v_object);
VALA_EXTERN void dino_plugins_omemo_bundle_value_take_pre_key (GValue* value,
                                                   gpointer v_object);
VALA_EXTERN gpointer dino_plugins_omemo_bundle_value_get_pre_key (const GValue* value);
VALA_EXTERN GType dino_plugins_omemo_bundle_pre_key_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoBundlePreKey, dino_plugins_omemo_bundle_pre_key_unref)
VALA_EXTERN GeeArrayList* dino_plugins_omemo_bundle_get_pre_keys (DinoPluginsOmemoBundle* self);
VALA_EXTERN DinoPluginsOmemoBundlePreKey* dino_plugins_omemo_bundle_pre_key_create (XmppStanzaNode* node);
VALA_EXTERN DinoPluginsOmemoBundlePreKey* dino_plugins_omemo_bundle_pre_key_new (XmppStanzaNode* node);
VALA_EXTERN DinoPluginsOmemoBundlePreKey* dino_plugins_omemo_bundle_pre_key_construct (GType object_type,
                                                                           XmppStanzaNode* node);
VALA_EXTERN gint32 dino_plugins_omemo_bundle_pre_key_get_key_id (DinoPluginsOmemoBundlePreKey* self);
VALA_EXTERN ec_public_key* dino_plugins_omemo_bundle_pre_key_get_key (DinoPluginsOmemoBundlePreKey* self);
VALA_EXTERN GType dino_plugins_omemo_message_flag_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoMessageFlag, g_object_unref)
VALA_EXTERN DinoPluginsOmemoMessageFlag* dino_plugins_omemo_message_flag_get_flag (XmppMessageStanza* message);
VALA_EXTERN DinoPluginsOmemoMessageFlag* dino_plugins_omemo_message_flag_new (void);
VALA_EXTERN DinoPluginsOmemoMessageFlag* dino_plugins_omemo_message_flag_construct (GType object_type);
VALA_EXTERN GType dino_plugins_omemo_stream_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoStreamModule, g_object_unref)
VALA_EXTERN XmppModuleIdentity* dino_plugins_omemo_stream_module_IDENTITY;
VALA_EXTERN DinoPluginsOmemoStreamModule* dino_plugins_omemo_stream_module_new (OmemoStore* store);
VALA_EXTERN DinoPluginsOmemoStreamModule* dino_plugins_omemo_stream_module_construct (GType object_type,
                                                                          OmemoStore* store);
VALA_EXTERN void dino_plugins_omemo_stream_module_request_user_devicelist (DinoPluginsOmemoStreamModule* self,
                                                               XmppXmppStream* stream,
                                                               XmppJid* jid,
                                                               GAsyncReadyCallback _callback_,
                                                               gpointer _user_data_);
VALA_EXTERN GeeArrayList* dino_plugins_omemo_stream_module_request_user_devicelist_finish (DinoPluginsOmemoStreamModule* self,
                                                                               GAsyncResult* _res_);
VALA_EXTERN GeeArrayList* dino_plugins_omemo_stream_module_parse_device_list (DinoPluginsOmemoStreamModule* self,
                                                                  XmppXmppStream* stream,
                                                                  XmppJid* jid,
                                                                  const gchar* id,
                                                                  XmppStanzaNode* node_);
VALA_EXTERN void dino_plugins_omemo_stream_module_fetch_bundles (DinoPluginsOmemoStreamModule* self,
                                                     XmppXmppStream* stream,
                                                     XmppJid* jid,
                                                     GeeList* devices);
VALA_EXTERN void dino_plugins_omemo_stream_module_fetch_bundle (DinoPluginsOmemoStreamModule* self,
                                                    XmppXmppStream* stream,
                                                    XmppJid* jid,
                                                    gint device_id,
                                                    gboolean ignore_if_non_present);
VALA_EXTERN void dino_plugins_omemo_stream_module_ignore_device (DinoPluginsOmemoStreamModule* self,
                                                     XmppJid* jid,
                                                     gint32 device_id);
VALA_EXTERN void dino_plugins_omemo_stream_module_unignore_device (DinoPluginsOmemoStreamModule* self,
                                                       XmppJid* jid,
                                                       gint32 device_id);
VALA_EXTERN gboolean dino_plugins_omemo_stream_module_is_ignored_device (DinoPluginsOmemoStreamModule* self,
                                                             XmppJid* jid,
                                                             gint32 device_id);
VALA_EXTERN void dino_plugins_omemo_stream_module_clear_device_list (DinoPluginsOmemoStreamModule* self,
                                                         XmppXmppStream* stream);
VALA_EXTERN gboolean dino_plugins_omemo_stream_module_start_session (DinoPluginsOmemoStreamModule* self,
                                                         XmppXmppStream* stream,
                                                         XmppJid* jid,
                                                         gint32 device_id,
                                                         DinoPluginsOmemoBundle* bundle);
VALA_EXTERN void dino_plugins_omemo_stream_module_publish_bundles_if_needed (DinoPluginsOmemoStreamModule* self,
                                                                 XmppXmppStream* stream,
                                                                 XmppJid* jid);
VALA_EXTERN void dino_plugins_omemo_stream_module_publish_bundles (DinoPluginsOmemoStreamModule* self,
                                                       XmppXmppStream* stream,
                                                       session_signed_pre_key* signed_pre_key_record,
                                                       ratchet_identity_key_pair* identity_key_pair,
                                                       GeeSet* pre_key_records,
                                                       gint32 device_id,
                                                       GAsyncReadyCallback _callback_,
                                                       gpointer _user_data_);
VALA_EXTERN void dino_plugins_omemo_stream_module_publish_bundles_finish (DinoPluginsOmemoStreamModule* self,
                                                              GAsyncResult* _res_,
                                                              GError** error);
VALA_EXTERN OmemoStore* dino_plugins_omemo_stream_module_get_store (DinoPluginsOmemoStreamModule* self);
VALA_EXTERN GType register_plugin (GModule* module);
VALA_EXTERN OmemoContext* omemo_context_new (gboolean log,
                                 GError** error);
VALA_EXTERN OmemoContext* omemo_context_construct (GType object_type,
                                       gboolean log,
                                       GError** error);
VALA_EXTERN OmemoStore* omemo_context_create_store (OmemoContext* self);
VALA_EXTERN void omemo_context_randomize (OmemoContext* self,
                              guint8* data,
                              gint data_length1,
                              GError** error);
VALA_EXTERN session_signed_pre_key* omemo_context_generate_signed_pre_key (OmemoContext* self,
                                                               ratchet_identity_key_pair* identity_key_pair,
                                                               gint32 id,
                                                               guint64 timestamp,
                                                               GError** error);
VALA_EXTERN GeeSet* omemo_context_generate_pre_keys (OmemoContext* self,
                                         guint start,
                                         guint count,
                                         GError** error);
VALA_EXTERN ec_public_key* omemo_context_decode_public_key (OmemoContext* self,
                                                guint8* bytes,
                                                gint bytes_length1,
                                                GError** error);
VALA_EXTERN ec_private_key* omemo_context_decode_private_key (OmemoContext* self,
                                                  guint8* bytes,
                                                  gint bytes_length1,
                                                  GError** error);
VALA_EXTERN ec_key_pair* omemo_context_generate_key_pair (OmemoContext* self,
                                              GError** error);
VALA_EXTERN guint8* omemo_context_calculate_signature (OmemoContext* self,
                                           ec_private_key* signing_key,
                                           guint8* message,
                                           gint message_length1,
                                           gint* result_length1,
                                           GError** error);
VALA_EXTERN signal_message* omemo_context_deserialize_signal_message (OmemoContext* self,
                                                          guint8* data,
                                                          gint data_length1,
                                                          GError** error);
VALA_EXTERN signal_message* omemo_context_deserialize_omemo_message (OmemoContext* self,
                                                         guint8* data,
                                                         gint data_length1,
                                                         GError** error);
VALA_EXTERN signal_message* omemo_context_copy_message (OmemoContext* self,
                                            ciphertext_message* original,
                                            GError** error);
VALA_EXTERN pre_key_signal_message* omemo_context_deserialize_signal_pre_key_message (OmemoContext* self,
                                                                          guint8* data,
                                                                          gint data_length1,
                                                                          GError** error);
VALA_EXTERN pre_key_signal_message* omemo_context_deserialize_omemo_pre_key_message (OmemoContext* self,
                                                                         guint8* data,
                                                                         gint data_length1,
                                                                         guint32 remote_registration_id,
                                                                         GError** error);
VALA_EXTERN pre_key_signal_message* omemo_context_copy_pre_key_message (OmemoContext* self,
                                                            ciphertext_message* original,
                                                            GError** error);
VALA_EXTERN GType omemo_identity_key_store_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OmemoIdentityKeyStore, g_object_unref)
VALA_EXTERN GType omemo_simple_identity_key_store_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OmemoSimpleIdentityKeyStore, g_object_unref)
VALA_EXTERN OmemoSimpleIdentityKeyStore* omemo_simple_identity_key_store_new (void);
VALA_EXTERN OmemoSimpleIdentityKeyStore* omemo_simple_identity_key_store_construct (GType object_type);
VALA_EXTERN GType omemo_pre_key_store_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OmemoPreKeyStore, g_object_unref)
VALA_EXTERN GType omemo_simple_pre_key_store_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OmemoSimplePreKeyStore, g_object_unref)
VALA_EXTERN OmemoSimplePreKeyStore* omemo_simple_pre_key_store_new (void);
VALA_EXTERN OmemoSimplePreKeyStore* omemo_simple_pre_key_store_construct (GType object_type);
VALA_EXTERN GType omemo_signed_pre_key_store_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OmemoSignedPreKeyStore, g_object_unref)
VALA_EXTERN GType omemo_simple_signed_pre_key_store_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OmemoSimpleSignedPreKeyStore, g_object_unref)
VALA_EXTERN OmemoSimpleSignedPreKeyStore* omemo_simple_signed_pre_key_store_new (void);
VALA_EXTERN OmemoSimpleSignedPreKeyStore* omemo_simple_signed_pre_key_store_construct (GType object_type);
VALA_EXTERN GType omemo_session_store_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OmemoSessionStore, g_object_unref)
VALA_EXTERN GType omemo_simple_session_store_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OmemoSimpleSessionStore, g_object_unref)
VALA_EXTERN OmemoSimpleSessionStore* omemo_simple_session_store_new (void);
VALA_EXTERN OmemoSimpleSessionStore* omemo_simple_session_store_construct (GType object_type);
VALA_EXTERN void omemo_identity_key_store_save_identity (OmemoIdentityKeyStore* self,
                                             signal_protocol_address* address,
                                             guint8* key,
                                             gint key_length1,
                                             GError** error);
VALA_EXTERN gboolean omemo_identity_key_store_is_trusted_identity (OmemoIdentityKeyStore* self,
                                                       signal_protocol_address* address,
                                                       guint8* key,
                                                       gint key_length1,
                                                       GError** error);
VALA_EXTERN OmemoIdentityKeyStore* omemo_identity_key_store_construct (GType object_type);
VALA_EXTERN GBytes* omemo_identity_key_store_get_identity_key_private (OmemoIdentityKeyStore* self);
VALA_EXTERN void omemo_identity_key_store_set_identity_key_private (OmemoIdentityKeyStore* self,
                                                        GBytes* value);
VALA_EXTERN GBytes* omemo_identity_key_store_get_identity_key_public (OmemoIdentityKeyStore* self);
VALA_EXTERN void omemo_identity_key_store_set_identity_key_public (OmemoIdentityKeyStore* self,
                                                       GBytes* value);
VALA_EXTERN guint32 omemo_identity_key_store_get_local_registration_id (OmemoIdentityKeyStore* self);
VALA_EXTERN void omemo_identity_key_store_set_local_registration_id (OmemoIdentityKeyStore* self,
                                                         guint32 value);
VALA_EXTERN gpointer omemo_identity_key_store_trusted_identity_ref (gpointer instance);
VALA_EXTERN void omemo_identity_key_store_trusted_identity_unref (gpointer instance);
VALA_EXTERN GParamSpec* omemo_identity_key_store_param_spec_trusted_identity (const gchar* name,
                                                                  const gchar* nick,
                                                                  const gchar* blurb,
                                                                  GType object_type,
                                                                  GParamFlags flags);
VALA_EXTERN void omemo_identity_key_store_value_set_trusted_identity (GValue* value,
                                                          gpointer v_object);
VALA_EXTERN void omemo_identity_key_store_value_take_trusted_identity (GValue* value,
                                                           gpointer v_object);
VALA_EXTERN gpointer omemo_identity_key_store_value_get_trusted_identity (const GValue* value);
VALA_EXTERN GType omemo_identity_key_store_trusted_identity_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OmemoIdentityKeyStoreTrustedIdentity, omemo_identity_key_store_trusted_identity_unref)
VALA_EXTERN OmemoIdentityKeyStoreTrustedIdentity* omemo_identity_key_store_trusted_identity_new (const gchar* name,
                                                                                     gint device_id,
                                                                                     guint8* key,
                                                                                     gint key_length1);
VALA_EXTERN OmemoIdentityKeyStoreTrustedIdentity* omemo_identity_key_store_trusted_identity_construct (GType object_type,
                                                                                           const gchar* name,
                                                                                           gint device_id,
                                                                                           guint8* key,
                                                                                           gint key_length1);
VALA_EXTERN OmemoIdentityKeyStoreTrustedIdentity* omemo_identity_key_store_trusted_identity_new_by_address (signal_protocol_address* address,
                                                                                                guint8* key,
                                                                                                gint key_length1);
VALA_EXTERN OmemoIdentityKeyStoreTrustedIdentity* omemo_identity_key_store_trusted_identity_construct_by_address (GType object_type,
                                                                                                      signal_protocol_address* address,
                                                                                                      guint8* key,
                                                                                                      gint key_length1);
VALA_EXTERN guint8* omemo_identity_key_store_trusted_identity_get_key (OmemoIdentityKeyStoreTrustedIdentity* self,
                                                           gint* result_length1);
VALA_EXTERN void omemo_identity_key_store_trusted_identity_set_key (OmemoIdentityKeyStoreTrustedIdentity* self,
                                                        guint8* value,
                                                        gint value_length1);
VALA_EXTERN const gchar* omemo_identity_key_store_trusted_identity_get_name (OmemoIdentityKeyStoreTrustedIdentity* self);
VALA_EXTERN gint omemo_identity_key_store_trusted_identity_get_device_id (OmemoIdentityKeyStoreTrustedIdentity* self);
VALA_EXTERN guint8* omemo_session_store_load_session (OmemoSessionStore* self,
                                          signal_protocol_address* address,
                                          gint* result_length1,
                                          GError** error);
VALA_EXTERN signal_int_list* omemo_session_store_get_sub_device_sessions (OmemoSessionStore* self,
                                                              const gchar* name,
                                                              GError** error);
VALA_EXTERN void omemo_session_store_store_session (OmemoSessionStore* self,
                                        signal_protocol_address* address,
                                        guint8* record,
                                        gint record_length1,
                                        GError** error);
VALA_EXTERN gboolean omemo_session_store_contains_session (OmemoSessionStore* self,
                                               signal_protocol_address* address,
                                               GError** error);
VALA_EXTERN void omemo_session_store_delete_session (OmemoSessionStore* self,
                                         signal_protocol_address* address,
                                         GError** error);
VALA_EXTERN void omemo_session_store_delete_all_sessions (OmemoSessionStore* self,
                                              const gchar* name,
                                              GError** error);
VALA_EXTERN OmemoSessionStore* omemo_session_store_construct (GType object_type);
VALA_EXTERN gpointer omemo_session_store_session_ref (gpointer instance);
VALA_EXTERN void omemo_session_store_session_unref (gpointer instance);
VALA_EXTERN GParamSpec* omemo_session_store_param_spec_session (const gchar* name,
                                                    const gchar* nick,
                                                    const gchar* blurb,
                                                    GType object_type,
                                                    GParamFlags flags);
VALA_EXTERN void omemo_session_store_value_set_session (GValue* value,
                                            gpointer v_object);
VALA_EXTERN void omemo_session_store_value_take_session (GValue* value,
                                             gpointer v_object);
VALA_EXTERN gpointer omemo_session_store_value_get_session (const GValue* value);
VALA_EXTERN GType omemo_session_store_session_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OmemoSessionStoreSession, omemo_session_store_session_unref)
VALA_EXTERN OmemoSessionStoreSession* omemo_session_store_session_new (void);
VALA_EXTERN OmemoSessionStoreSession* omemo_session_store_session_construct (GType object_type);
VALA_EXTERN guint8* omemo_pre_key_store_load_pre_key (OmemoPreKeyStore* self,
                                          guint32 pre_key_id,
                                          gint* result_length1,
                                          GError** error);
VALA_EXTERN void omemo_pre_key_store_store_pre_key (OmemoPreKeyStore* self,
                                        guint32 pre_key_id,
                                        guint8* record,
                                        gint record_length1,
                                        GError** error);
VALA_EXTERN gboolean omemo_pre_key_store_contains_pre_key (OmemoPreKeyStore* self,
                                               guint32 pre_key_id,
                                               GError** error);
VALA_EXTERN void omemo_pre_key_store_delete_pre_key (OmemoPreKeyStore* self,
                                         guint32 pre_key_id,
                                         GError** error);
VALA_EXTERN OmemoPreKeyStore* omemo_pre_key_store_construct (GType object_type);
VALA_EXTERN gpointer omemo_pre_key_store_key_ref (gpointer instance);
VALA_EXTERN void omemo_pre_key_store_key_unref (gpointer instance);
VALA_EXTERN GParamSpec* omemo_pre_key_store_param_spec_key (const gchar* name,
                                                const gchar* nick,
                                                const gchar* blurb,
                                                GType object_type,
                                                GParamFlags flags);
VALA_EXTERN void omemo_pre_key_store_value_set_key (GValue* value,
                                        gpointer v_object);
VALA_EXTERN void omemo_pre_key_store_value_take_key (GValue* value,
                                         gpointer v_object);
VALA_EXTERN gpointer omemo_pre_key_store_value_get_key (const GValue* value);
VALA_EXTERN GType omemo_pre_key_store_key_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OmemoPreKeyStoreKey, omemo_pre_key_store_key_unref)
VALA_EXTERN OmemoPreKeyStoreKey* omemo_pre_key_store_key_new (guint32 key_id,
                                                  guint8* record,
                                                  gint record_length1);
VALA_EXTERN OmemoPreKeyStoreKey* omemo_pre_key_store_key_construct (GType object_type,
                                                        guint32 key_id,
                                                        guint8* record,
                                                        gint record_length1);
VALA_EXTERN guint32 omemo_pre_key_store_key_get_key_id (OmemoPreKeyStoreKey* self);
VALA_EXTERN guint8* omemo_pre_key_store_key_get_record (OmemoPreKeyStoreKey* self,
                                            gint* result_length1);
VALA_EXTERN guint8* omemo_signed_pre_key_store_load_signed_pre_key (OmemoSignedPreKeyStore* self,
                                                        guint32 pre_key_id,
                                                        gint* result_length1,
                                                        GError** error);
VALA_EXTERN void omemo_signed_pre_key_store_store_signed_pre_key (OmemoSignedPreKeyStore* self,
                                                      guint32 pre_key_id,
                                                      guint8* record,
                                                      gint record_length1,
                                                      GError** error);
VALA_EXTERN gboolean omemo_signed_pre_key_store_contains_signed_pre_key (OmemoSignedPreKeyStore* self,
                                                             guint32 pre_key_id,
                                                             GError** error);
VALA_EXTERN void omemo_signed_pre_key_store_delete_signed_pre_key (OmemoSignedPreKeyStore* self,
                                                       guint32 pre_key_id,
                                                       GError** error);
VALA_EXTERN OmemoSignedPreKeyStore* omemo_signed_pre_key_store_construct (GType object_type);
VALA_EXTERN gpointer omemo_signed_pre_key_store_key_ref (gpointer instance);
VALA_EXTERN void omemo_signed_pre_key_store_key_unref (gpointer instance);
VALA_EXTERN GParamSpec* omemo_signed_pre_key_store_param_spec_key (const gchar* name,
                                                       const gchar* nick,
                                                       const gchar* blurb,
                                                       GType object_type,
                                                       GParamFlags flags);
VALA_EXTERN void omemo_signed_pre_key_store_value_set_key (GValue* value,
                                               gpointer v_object);
VALA_EXTERN void omemo_signed_pre_key_store_value_take_key (GValue* value,
                                                gpointer v_object);
VALA_EXTERN gpointer omemo_signed_pre_key_store_value_get_key (const GValue* value);
VALA_EXTERN GType omemo_signed_pre_key_store_key_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OmemoSignedPreKeyStoreKey, omemo_signed_pre_key_store_key_unref)
VALA_EXTERN OmemoSignedPreKeyStoreKey* omemo_signed_pre_key_store_key_new (guint32 key_id,
                                                               guint8* record,
                                                               gint record_length1);
VALA_EXTERN OmemoSignedPreKeyStoreKey* omemo_signed_pre_key_store_key_construct (GType object_type,
                                                                     guint32 key_id,
                                                                     guint8* record,
                                                                     gint record_length1);
VALA_EXTERN guint32 omemo_signed_pre_key_store_key_get_key_id (OmemoSignedPreKeyStoreKey* self);
VALA_EXTERN guint8* omemo_signed_pre_key_store_key_get_record (OmemoSignedPreKeyStoreKey* self,
                                                   gint* result_length1);
VALA_EXTERN session_builder* omemo_store_create_session_builder (OmemoStore* self,
                                                     signal_protocol_address* other,
                                                     GError** error);
VALA_EXTERN session_cipher* omemo_store_create_session_cipher (OmemoStore* self,
                                                   signal_protocol_address* other,
                                                   GError** error);
VALA_EXTERN gboolean omemo_store_is_trusted_identity (OmemoStore* self,
                                          signal_protocol_address* address,
                                          ec_public_key* key,
                                          GError** error);
VALA_EXTERN void omemo_store_save_identity (OmemoStore* self,
                                signal_protocol_address* address,
                                ec_public_key* key,
                                GError** error);
VALA_EXTERN gboolean omemo_store_contains_session (OmemoStore* self,
                                       signal_protocol_address* other,
                                       GError** error);
VALA_EXTERN void omemo_store_delete_session (OmemoStore* self,
                                 signal_protocol_address* address,
                                 GError** error);
VALA_EXTERN session_record* omemo_store_load_session (OmemoStore* self,
                                          signal_protocol_address* other,
                                          GError** error);
VALA_EXTERN gboolean omemo_store_contains_pre_key (OmemoStore* self,
                                       guint32 pre_key_id,
                                       GError** error);
VALA_EXTERN void omemo_store_store_pre_key (OmemoStore* self,
                                session_pre_key* record,
                                GError** error);
VALA_EXTERN session_pre_key* omemo_store_load_pre_key (OmemoStore* self,
                                           guint32 pre_key_id,
                                           GError** error);
VALA_EXTERN gboolean omemo_store_contains_signed_pre_key (OmemoStore* self,
                                              guint32 pre_key_id,
                                              GError** error);
VALA_EXTERN void omemo_store_store_signed_pre_key (OmemoStore* self,
                                       session_signed_pre_key* record,
                                       GError** error);
VALA_EXTERN session_signed_pre_key* omemo_store_load_signed_pre_key (OmemoStore* self,
                                                         guint32 pre_key_id,
                                                         GError** error);
VALA_EXTERN OmemoContext* omemo_store_get_context (OmemoStore* self);
VALA_EXTERN OmemoIdentityKeyStore* omemo_store_get_identity_key_store (OmemoStore* self);
VALA_EXTERN void omemo_store_set_identity_key_store (OmemoStore* self,
                                         OmemoIdentityKeyStore* value);
VALA_EXTERN OmemoSessionStore* omemo_store_get_session_store (OmemoStore* self);
VALA_EXTERN void omemo_store_set_session_store (OmemoStore* self,
                                    OmemoSessionStore* value);
VALA_EXTERN OmemoPreKeyStore* omemo_store_get_pre_key_store (OmemoStore* self);
VALA_EXTERN void omemo_store_set_pre_key_store (OmemoStore* self,
                                    OmemoPreKeyStore* value);
VALA_EXTERN OmemoSignedPreKeyStore* omemo_store_get_signed_pre_key_store (OmemoStore* self);
VALA_EXTERN void omemo_store_set_signed_pre_key_store (OmemoStore* self,
                                           OmemoSignedPreKeyStore* value);
VALA_EXTERN guint32 omemo_store_get_local_registration_id (OmemoStore* self);
VALA_EXTERN ratchet_identity_key_pair* omemo_store_get_identity_key_pair (OmemoStore* self);
VALA_EXTERN ec_public_key* omemo_generate_public_key (ec_private_key* private_key,
                                          GError** error);
VALA_EXTERN guint8* omemo_calculate_agreement (ec_public_key* public_key,
                                   ec_private_key* private_key,
                                   gint* result_length1,
                                   GError** error);
VALA_EXTERN gboolean omemo_verify_signature (ec_public_key* signing_key,
                                 guint8* message,
                                 gint message_length1,
                                 guint8* signature,
                                 gint signature_length1,
                                 GError** error);
VALA_EXTERN session_pre_key_bundle* omemo_create_pre_key_bundle (guint32 registration_id,
                                                     gint device_id,
                                                     guint32 pre_key_id,
                                                     ec_public_key* pre_key_public,
                                                     guint32 signed_pre_key_id,
                                                     ec_public_key* signed_pre_key_public,
                                                     guint8* signed_pre_key_signature,
                                                     gint signed_pre_key_signature_length1,
                                                     ec_public_key* identity_key,
                                                     GError** error);
VALA_EXTERN gchar* dino_plugins_omemo_trust_level_to_string (DinoPluginsOmemoTrustLevel self);
VALA_EXTERN GType dino_plugins_omemo_badness_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType dino_plugins_omemo_bad_messages_populator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoBadMessagesPopulator, g_object_unref)
VALA_EXTERN DinoPluginsOmemoBadMessagesPopulator* dino_plugins_omemo_bad_messages_populator_new (DinoStreamInteractor* stream_interactor,
                                                                                     DinoPluginsOmemoPlugin* plugin);
VALA_EXTERN DinoPluginsOmemoBadMessagesPopulator* dino_plugins_omemo_bad_messages_populator_construct (GType object_type,
                                                                                           DinoStreamInteractor* stream_interactor,
                                                                                           DinoPluginsOmemoPlugin* plugin);
VALA_EXTERN GType dino_plugins_omemo_bad_message_item_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoBadMessageItem, g_object_unref)
VALA_EXTERN DinoPluginsOmemoBadMessageItem* dino_plugins_omemo_bad_message_item_new (DinoPluginsOmemoPlugin* plugin,
                                                                         DinoEntitiesConversation* conversation,
                                                                         XmppJid* jid,
                                                                         GDateTime* date,
                                                                         DinoPluginsOmemoBadnessType badness_type);
VALA_EXTERN DinoPluginsOmemoBadMessageItem* dino_plugins_omemo_bad_message_item_construct (GType object_type,
                                                                               DinoPluginsOmemoPlugin* plugin,
                                                                               DinoEntitiesConversation* conversation,
                                                                               XmppJid* jid,
                                                                               GDateTime* date,
                                                                               DinoPluginsOmemoBadnessType badness_type);
VALA_EXTERN GType dino_plugins_omemo_bad_messages_widget_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoBadMessagesWidget, g_object_unref)
VALA_EXTERN DinoPluginsOmemoBadMessagesWidget* dino_plugins_omemo_bad_messages_widget_new (DinoPluginsOmemoPlugin* plugin,
                                                                               DinoEntitiesConversation* conversation,
                                                                               XmppJid* jid,
                                                                               DinoPluginsOmemoBadnessType badness_type);
VALA_EXTERN DinoPluginsOmemoBadMessagesWidget* dino_plugins_omemo_bad_messages_widget_construct (GType object_type,
                                                                                     DinoPluginsOmemoPlugin* plugin,
                                                                                     DinoEntitiesConversation* conversation,
                                                                                     XmppJid* jid,
                                                                                     DinoPluginsOmemoBadnessType badness_type);
VALA_EXTERN GType dino_plugins_omemo_call_encryption_entry_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoCallEncryptionEntry, g_object_unref)
VALA_EXTERN DinoPluginsOmemoCallEncryptionEntry* dino_plugins_omemo_call_encryption_entry_new (DinoPluginsOmemoDatabase* db);
VALA_EXTERN DinoPluginsOmemoCallEncryptionEntry* dino_plugins_omemo_call_encryption_entry_construct (GType object_type,
                                                                                         DinoPluginsOmemoDatabase* db);
VALA_EXTERN GType dino_plugins_omemo_call_encryption_widget_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoCallEncryptionWidget, g_object_unref)
VALA_EXTERN DinoPluginsOmemoCallEncryptionWidget* dino_plugins_omemo_call_encryption_widget_new (DinoPluginsOmemoTrustLevel trust);
VALA_EXTERN DinoPluginsOmemoCallEncryptionWidget* dino_plugins_omemo_call_encryption_widget_construct (GType object_type,
                                                                                           DinoPluginsOmemoTrustLevel trust);
VALA_EXTERN DinoPluginsOmemoContactDetailsProvider* dino_plugins_omemo_contact_details_provider_new (DinoPluginsOmemoPlugin* plugin);
VALA_EXTERN DinoPluginsOmemoContactDetailsProvider* dino_plugins_omemo_contact_details_provider_construct (GType object_type,
                                                                                               DinoPluginsOmemoPlugin* plugin);
VALA_EXTERN DinoPluginsOmemoDeviceNotificationPopulator* dino_plugins_omemo_device_notification_populator_new (DinoPluginsOmemoPlugin* plugin,
                                                                                                   DinoStreamInteractor* stream_interactor);
VALA_EXTERN DinoPluginsOmemoDeviceNotificationPopulator* dino_plugins_omemo_device_notification_populator_construct (GType object_type,
                                                                                                         DinoPluginsOmemoPlugin* plugin,
                                                                                                         DinoStreamInteractor* stream_interactor);
VALA_EXTERN void dino_plugins_omemo_device_notification_populator_should_hide (DinoPluginsOmemoDeviceNotificationPopulator* self);
VALA_EXTERN DinoPluginsOmemoEncryptionListEntry* dino_plugins_omemo_encryption_list_entry_new (DinoPluginsOmemoPlugin* plugin);
VALA_EXTERN DinoPluginsOmemoEncryptionListEntry* dino_plugins_omemo_encryption_list_entry_construct (GType object_type,
                                                                                         DinoPluginsOmemoPlugin* plugin);
VALA_EXTERN void dino_plugins_omemo_encryption_list_entry_encryption_activated_async (DinoPluginsOmemoEncryptionListEntry* self,
                                                                          DinoEntitiesConversation* conversation,
                                                                          DinoPluginsSetInputFieldStatus input_status_callback,
                                                                          gpointer input_status_callback_target,
                                                                          GAsyncReadyCallback _callback_,
                                                                          gpointer _user_data_);
VALA_EXTERN void dino_plugins_omemo_encryption_list_entry_encryption_activated_finish (DinoPluginsOmemoEncryptionListEntry* self,
                                                                           GAsyncResult* _res_);
VALA_EXTERN GType dino_plugins_omemo_omemo_preferences_entry_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoOmemoPreferencesEntry, g_object_unref)
VALA_EXTERN DinoPluginsOmemoOmemoPreferencesEntry* dino_plugins_omemo_omemo_preferences_entry_new (DinoPluginsOmemoPlugin* plugin);
VALA_EXTERN DinoPluginsOmemoOmemoPreferencesEntry* dino_plugins_omemo_omemo_preferences_entry_construct (GType object_type,
                                                                                             DinoPluginsOmemoPlugin* plugin);
VALA_EXTERN GType dino_plugins_omemo_omemo_preferences_widget_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoOmemoPreferencesWidget, g_object_unref)
VALA_EXTERN DinoPluginsOmemoOmemoPreferencesWidget* dino_plugins_omemo_omemo_preferences_widget_new (DinoPluginsOmemoPlugin* plugin);
VALA_EXTERN DinoPluginsOmemoOmemoPreferencesWidget* dino_plugins_omemo_omemo_preferences_widget_construct (GType object_type,
                                                                                               DinoPluginsOmemoPlugin* plugin);
VALA_EXTERN void dino_plugins_omemo_omemo_preferences_widget_set_jid (DinoPluginsOmemoOmemoPreferencesWidget* self,
                                                          DinoEntitiesAccount* account,
                                                          XmppJid* jid);
VALA_EXTERN GType dino_plugins_omemo_manage_key_dialog_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOmemoManageKeyDialog, g_object_unref)
VALA_EXTERN DinoPluginsOmemoManageKeyDialog* dino_plugins_omemo_manage_key_dialog_new (QliteRow* device,
                                                                           DinoPluginsOmemoDatabase* db);
VALA_EXTERN DinoPluginsOmemoManageKeyDialog* dino_plugins_omemo_manage_key_dialog_construct (GType object_type,
                                                                                 QliteRow* device,
                                                                                 DinoPluginsOmemoDatabase* db);
VALA_EXTERN DinoPluginsOmemoOwnNotifications* dino_plugins_omemo_own_notifications_new (DinoPluginsOmemoPlugin* plugin,
                                                                            DinoStreamInteractor* stream_interactor,
                                                                            DinoEntitiesAccount* account);
VALA_EXTERN DinoPluginsOmemoOwnNotifications* dino_plugins_omemo_own_notifications_construct (GType object_type,
                                                                                  DinoPluginsOmemoPlugin* plugin,
                                                                                  DinoStreamInteractor* stream_interactor,
                                                                                  DinoEntitiesAccount* account);
VALA_EXTERN gchar* dino_plugins_omemo_fingerprint_from_base64 (const gchar* b64);
VALA_EXTERN gchar* dino_plugins_omemo_fingerprint_markup (const gchar* s);
VALA_EXTERN gchar* dino_plugins_omemo_format_fingerprint (const gchar* s);

G_END_DECLS

#endif
