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

#ifndef __PLUGINS_OPENPGP_OPENPGP_H__
#define __PLUGINS_OPENPGP_OPENPGP_H__

#include <glib-object.h>
#include "libdino.h"
#include "qlite.h"
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include "xmpp-vala.h"
#include <gio/gio.h>
#include <gpgme.h>
#include <gpgme_fix.h>
#include <gee.h>
#include <gmodule.h>

G_BEGIN_DECLS

#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_OPEN_PGP_MANAGER_MESSAGE_ENCRYPTED "pgp"
#define DINO_PLUGINS_OPEN_PGP_MESSAGE_FLAG_id "pgp"

#define DINO_PLUGINS_OPEN_PGP_TYPE_CONTACT_DETAILS_PROVIDER (dino_plugins_open_pgp_contact_details_provider_get_type ())
#define DINO_PLUGINS_OPEN_PGP_CONTACT_DETAILS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_CONTACT_DETAILS_PROVIDER, DinoPluginsOpenPgpContactDetailsProvider))
#define DINO_PLUGINS_OPEN_PGP_CONTACT_DETAILS_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_CONTACT_DETAILS_PROVIDER, DinoPluginsOpenPgpContactDetailsProviderClass))
#define DINO_PLUGINS_OPEN_PGP_IS_CONTACT_DETAILS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_CONTACT_DETAILS_PROVIDER))
#define DINO_PLUGINS_OPEN_PGP_IS_CONTACT_DETAILS_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_CONTACT_DETAILS_PROVIDER))
#define DINO_PLUGINS_OPEN_PGP_CONTACT_DETAILS_PROVIDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_CONTACT_DETAILS_PROVIDER, DinoPluginsOpenPgpContactDetailsProviderClass))

typedef struct _DinoPluginsOpenPgpContactDetailsProvider DinoPluginsOpenPgpContactDetailsProvider;
typedef struct _DinoPluginsOpenPgpContactDetailsProviderClass DinoPluginsOpenPgpContactDetailsProviderClass;
typedef struct _DinoPluginsOpenPgpContactDetailsProviderPrivate DinoPluginsOpenPgpContactDetailsProviderPrivate;

#define DINO_PLUGINS_OPEN_PGP_TYPE_DATABASE (dino_plugins_open_pgp_database_get_type ())
#define DINO_PLUGINS_OPEN_PGP_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_DATABASE, DinoPluginsOpenPgpDatabase))
#define DINO_PLUGINS_OPEN_PGP_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_DATABASE, DinoPluginsOpenPgpDatabaseClass))
#define DINO_PLUGINS_OPEN_PGP_IS_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_DATABASE))
#define DINO_PLUGINS_OPEN_PGP_IS_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_DATABASE))
#define DINO_PLUGINS_OPEN_PGP_DATABASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_DATABASE, DinoPluginsOpenPgpDatabaseClass))

typedef struct _DinoPluginsOpenPgpDatabase DinoPluginsOpenPgpDatabase;
typedef struct _DinoPluginsOpenPgpDatabaseClass DinoPluginsOpenPgpDatabaseClass;
typedef struct _DinoPluginsOpenPgpDatabasePrivate DinoPluginsOpenPgpDatabasePrivate;

#define DINO_PLUGINS_OPEN_PGP_DATABASE_TYPE_ACCOUNT_SETTING (dino_plugins_open_pgp_database_account_setting_get_type ())
#define DINO_PLUGINS_OPEN_PGP_DATABASE_ACCOUNT_SETTING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OPEN_PGP_DATABASE_TYPE_ACCOUNT_SETTING, DinoPluginsOpenPgpDatabaseAccountSetting))
#define DINO_PLUGINS_OPEN_PGP_DATABASE_ACCOUNT_SETTING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OPEN_PGP_DATABASE_TYPE_ACCOUNT_SETTING, DinoPluginsOpenPgpDatabaseAccountSettingClass))
#define DINO_PLUGINS_OPEN_PGP_DATABASE_IS_ACCOUNT_SETTING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OPEN_PGP_DATABASE_TYPE_ACCOUNT_SETTING))
#define DINO_PLUGINS_OPEN_PGP_DATABASE_IS_ACCOUNT_SETTING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OPEN_PGP_DATABASE_TYPE_ACCOUNT_SETTING))
#define DINO_PLUGINS_OPEN_PGP_DATABASE_ACCOUNT_SETTING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OPEN_PGP_DATABASE_TYPE_ACCOUNT_SETTING, DinoPluginsOpenPgpDatabaseAccountSettingClass))

typedef struct _DinoPluginsOpenPgpDatabaseAccountSetting DinoPluginsOpenPgpDatabaseAccountSetting;
typedef struct _DinoPluginsOpenPgpDatabaseAccountSettingClass DinoPluginsOpenPgpDatabaseAccountSettingClass;

#define DINO_PLUGINS_OPEN_PGP_DATABASE_TYPE_CONTACT_KEY (dino_plugins_open_pgp_database_contact_key_get_type ())
#define DINO_PLUGINS_OPEN_PGP_DATABASE_CONTACT_KEY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OPEN_PGP_DATABASE_TYPE_CONTACT_KEY, DinoPluginsOpenPgpDatabaseContactKey))
#define DINO_PLUGINS_OPEN_PGP_DATABASE_CONTACT_KEY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OPEN_PGP_DATABASE_TYPE_CONTACT_KEY, DinoPluginsOpenPgpDatabaseContactKeyClass))
#define DINO_PLUGINS_OPEN_PGP_DATABASE_IS_CONTACT_KEY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OPEN_PGP_DATABASE_TYPE_CONTACT_KEY))
#define DINO_PLUGINS_OPEN_PGP_DATABASE_IS_CONTACT_KEY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OPEN_PGP_DATABASE_TYPE_CONTACT_KEY))
#define DINO_PLUGINS_OPEN_PGP_DATABASE_CONTACT_KEY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OPEN_PGP_DATABASE_TYPE_CONTACT_KEY, DinoPluginsOpenPgpDatabaseContactKeyClass))

typedef struct _DinoPluginsOpenPgpDatabaseContactKey DinoPluginsOpenPgpDatabaseContactKey;
typedef struct _DinoPluginsOpenPgpDatabaseContactKeyClass DinoPluginsOpenPgpDatabaseContactKeyClass;
typedef struct _DinoPluginsOpenPgpDatabaseAccountSettingPrivate DinoPluginsOpenPgpDatabaseAccountSettingPrivate;
typedef struct _DinoPluginsOpenPgpDatabaseContactKeyPrivate DinoPluginsOpenPgpDatabaseContactKeyPrivate;

#define DINO_PLUGINS_OPEN_PGP_TYPE_PGP_PREFERENCES_ENTRY (dino_plugins_open_pgp_pgp_preferences_entry_get_type ())
#define DINO_PLUGINS_OPEN_PGP_PGP_PREFERENCES_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_PGP_PREFERENCES_ENTRY, DinoPluginsOpenPgpPgpPreferencesEntry))
#define DINO_PLUGINS_OPEN_PGP_PGP_PREFERENCES_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_PGP_PREFERENCES_ENTRY, DinoPluginsOpenPgpPgpPreferencesEntryClass))
#define DINO_PLUGINS_OPEN_PGP_IS_PGP_PREFERENCES_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_PGP_PREFERENCES_ENTRY))
#define DINO_PLUGINS_OPEN_PGP_IS_PGP_PREFERENCES_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_PGP_PREFERENCES_ENTRY))
#define DINO_PLUGINS_OPEN_PGP_PGP_PREFERENCES_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_PGP_PREFERENCES_ENTRY, DinoPluginsOpenPgpPgpPreferencesEntryClass))

typedef struct _DinoPluginsOpenPgpPgpPreferencesEntry DinoPluginsOpenPgpPgpPreferencesEntry;
typedef struct _DinoPluginsOpenPgpPgpPreferencesEntryClass DinoPluginsOpenPgpPgpPreferencesEntryClass;
typedef struct _DinoPluginsOpenPgpPgpPreferencesEntryPrivate DinoPluginsOpenPgpPgpPreferencesEntryPrivate;

#define DINO_PLUGINS_OPEN_PGP_TYPE_PLUGIN (dino_plugins_open_pgp_plugin_get_type ())
#define DINO_PLUGINS_OPEN_PGP_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_PLUGIN, DinoPluginsOpenPgpPlugin))
#define DINO_PLUGINS_OPEN_PGP_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_PLUGIN, DinoPluginsOpenPgpPluginClass))
#define DINO_PLUGINS_OPEN_PGP_IS_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_PLUGIN))
#define DINO_PLUGINS_OPEN_PGP_IS_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_PLUGIN))
#define DINO_PLUGINS_OPEN_PGP_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_PLUGIN, DinoPluginsOpenPgpPluginClass))

typedef struct _DinoPluginsOpenPgpPlugin DinoPluginsOpenPgpPlugin;
typedef struct _DinoPluginsOpenPgpPluginClass DinoPluginsOpenPgpPluginClass;

#define DINO_PLUGINS_OPEN_PGP_TYPE_PGP_FILE_DECRYPTOR (dino_plugins_open_pgp_pgp_file_decryptor_get_type ())
#define DINO_PLUGINS_OPEN_PGP_PGP_FILE_DECRYPTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_PGP_FILE_DECRYPTOR, DinoPluginsOpenPgpPgpFileDecryptor))
#define DINO_PLUGINS_OPEN_PGP_PGP_FILE_DECRYPTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_PGP_FILE_DECRYPTOR, DinoPluginsOpenPgpPgpFileDecryptorClass))
#define DINO_PLUGINS_OPEN_PGP_IS_PGP_FILE_DECRYPTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_PGP_FILE_DECRYPTOR))
#define DINO_PLUGINS_OPEN_PGP_IS_PGP_FILE_DECRYPTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_PGP_FILE_DECRYPTOR))
#define DINO_PLUGINS_OPEN_PGP_PGP_FILE_DECRYPTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_PGP_FILE_DECRYPTOR, DinoPluginsOpenPgpPgpFileDecryptorClass))

typedef struct _DinoPluginsOpenPgpPgpFileDecryptor DinoPluginsOpenPgpPgpFileDecryptor;
typedef struct _DinoPluginsOpenPgpPgpFileDecryptorClass DinoPluginsOpenPgpPgpFileDecryptorClass;
typedef struct _DinoPluginsOpenPgpPgpFileDecryptorPrivate DinoPluginsOpenPgpPgpFileDecryptorPrivate;

#define DINO_PLUGINS_OPEN_PGP_TYPE_PGP_FILE_ENCRYPTOR (dino_plugins_open_pgp_pgp_file_encryptor_get_type ())
#define DINO_PLUGINS_OPEN_PGP_PGP_FILE_ENCRYPTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_PGP_FILE_ENCRYPTOR, DinoPluginsOpenPgpPgpFileEncryptor))
#define DINO_PLUGINS_OPEN_PGP_PGP_FILE_ENCRYPTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_PGP_FILE_ENCRYPTOR, DinoPluginsOpenPgpPgpFileEncryptorClass))
#define DINO_PLUGINS_OPEN_PGP_IS_PGP_FILE_ENCRYPTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_PGP_FILE_ENCRYPTOR))
#define DINO_PLUGINS_OPEN_PGP_IS_PGP_FILE_ENCRYPTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_PGP_FILE_ENCRYPTOR))
#define DINO_PLUGINS_OPEN_PGP_PGP_FILE_ENCRYPTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_PGP_FILE_ENCRYPTOR, DinoPluginsOpenPgpPgpFileEncryptorClass))

typedef struct _DinoPluginsOpenPgpPgpFileEncryptor DinoPluginsOpenPgpPgpFileEncryptor;
typedef struct _DinoPluginsOpenPgpPgpFileEncryptorClass DinoPluginsOpenPgpPgpFileEncryptorClass;
typedef struct _DinoPluginsOpenPgpPgpFileEncryptorPrivate DinoPluginsOpenPgpPgpFileEncryptorPrivate;

#define GPG_HELPER_TYPE_DECRYPTED_DATA (gpg_helper_decrypted_data_get_type ())
#define GPG_HELPER_DECRYPTED_DATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GPG_HELPER_TYPE_DECRYPTED_DATA, GPGHelperDecryptedData))
#define GPG_HELPER_DECRYPTED_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GPG_HELPER_TYPE_DECRYPTED_DATA, GPGHelperDecryptedDataClass))
#define GPG_HELPER_IS_DECRYPTED_DATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GPG_HELPER_TYPE_DECRYPTED_DATA))
#define GPG_HELPER_IS_DECRYPTED_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GPG_HELPER_TYPE_DECRYPTED_DATA))
#define GPG_HELPER_DECRYPTED_DATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GPG_HELPER_TYPE_DECRYPTED_DATA, GPGHelperDecryptedDataClass))

typedef struct _GPGHelperDecryptedData GPGHelperDecryptedData;
typedef struct _GPGHelperDecryptedDataClass GPGHelperDecryptedDataClass;
typedef struct _GPGHelperDecryptedDataPrivate GPGHelperDecryptedDataPrivate;

#define DINO_PLUGINS_OPEN_PGP_TYPE_MANAGER (dino_plugins_open_pgp_manager_get_type ())
#define DINO_PLUGINS_OPEN_PGP_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_MANAGER, DinoPluginsOpenPgpManager))
#define DINO_PLUGINS_OPEN_PGP_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_MANAGER, DinoPluginsOpenPgpManagerClass))
#define DINO_PLUGINS_OPEN_PGP_IS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_MANAGER))
#define DINO_PLUGINS_OPEN_PGP_IS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_MANAGER))
#define DINO_PLUGINS_OPEN_PGP_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_MANAGER, DinoPluginsOpenPgpManagerClass))

typedef struct _DinoPluginsOpenPgpManager DinoPluginsOpenPgpManager;
typedef struct _DinoPluginsOpenPgpManagerClass DinoPluginsOpenPgpManagerClass;
typedef struct _DinoPluginsOpenPgpManagerPrivate DinoPluginsOpenPgpManagerPrivate;
typedef struct _DinoPluginsOpenPgpPluginPrivate DinoPluginsOpenPgpPluginPrivate;

#define DINO_PLUGINS_OPEN_PGP_TYPE_MODULE (dino_plugins_open_pgp_module_get_type ())
#define DINO_PLUGINS_OPEN_PGP_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_MODULE, DinoPluginsOpenPgpModule))
#define DINO_PLUGINS_OPEN_PGP_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_MODULE, DinoPluginsOpenPgpModuleClass))
#define DINO_PLUGINS_OPEN_PGP_IS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_MODULE))
#define DINO_PLUGINS_OPEN_PGP_IS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_MODULE))
#define DINO_PLUGINS_OPEN_PGP_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_MODULE, DinoPluginsOpenPgpModuleClass))

typedef struct _DinoPluginsOpenPgpModule DinoPluginsOpenPgpModule;
typedef struct _DinoPluginsOpenPgpModuleClass DinoPluginsOpenPgpModuleClass;

#define DINO_PLUGINS_OPEN_PGP_TYPE_FLAG (dino_plugins_open_pgp_flag_get_type ())
#define DINO_PLUGINS_OPEN_PGP_FLAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_FLAG, DinoPluginsOpenPgpFlag))
#define DINO_PLUGINS_OPEN_PGP_FLAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_FLAG, DinoPluginsOpenPgpFlagClass))
#define DINO_PLUGINS_OPEN_PGP_IS_FLAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_FLAG))
#define DINO_PLUGINS_OPEN_PGP_IS_FLAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_FLAG))
#define DINO_PLUGINS_OPEN_PGP_FLAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_FLAG, DinoPluginsOpenPgpFlagClass))

typedef struct _DinoPluginsOpenPgpFlag DinoPluginsOpenPgpFlag;
typedef struct _DinoPluginsOpenPgpFlagClass DinoPluginsOpenPgpFlagClass;
typedef struct _DinoPluginsOpenPgpFlagPrivate DinoPluginsOpenPgpFlagPrivate;
typedef struct _DinoPluginsOpenPgpModulePrivate DinoPluginsOpenPgpModulePrivate;

#define DINO_PLUGINS_OPEN_PGP_TYPE_MESSAGE_FLAG (dino_plugins_open_pgp_message_flag_get_type ())
#define DINO_PLUGINS_OPEN_PGP_MESSAGE_FLAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_MESSAGE_FLAG, DinoPluginsOpenPgpMessageFlag))
#define DINO_PLUGINS_OPEN_PGP_MESSAGE_FLAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_MESSAGE_FLAG, DinoPluginsOpenPgpMessageFlagClass))
#define DINO_PLUGINS_OPEN_PGP_IS_MESSAGE_FLAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_MESSAGE_FLAG))
#define DINO_PLUGINS_OPEN_PGP_IS_MESSAGE_FLAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_MESSAGE_FLAG))
#define DINO_PLUGINS_OPEN_PGP_MESSAGE_FLAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_MESSAGE_FLAG, DinoPluginsOpenPgpMessageFlagClass))

typedef struct _DinoPluginsOpenPgpMessageFlag DinoPluginsOpenPgpMessageFlag;
typedef struct _DinoPluginsOpenPgpMessageFlagClass DinoPluginsOpenPgpMessageFlagClass;
typedef struct _DinoPluginsOpenPgpMessageFlagPrivate DinoPluginsOpenPgpMessageFlagPrivate;

#define DINO_PLUGINS_OPEN_PGP_TYPE_RECEIVED_PIPELINE_DECRYPT_LISTENER (dino_plugins_open_pgp_received_pipeline_decrypt_listener_get_type ())
#define DINO_PLUGINS_OPEN_PGP_RECEIVED_PIPELINE_DECRYPT_LISTENER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_RECEIVED_PIPELINE_DECRYPT_LISTENER, DinoPluginsOpenPgpReceivedPipelineDecryptListener))
#define DINO_PLUGINS_OPEN_PGP_RECEIVED_PIPELINE_DECRYPT_LISTENER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_RECEIVED_PIPELINE_DECRYPT_LISTENER, DinoPluginsOpenPgpReceivedPipelineDecryptListenerClass))
#define DINO_PLUGINS_OPEN_PGP_IS_RECEIVED_PIPELINE_DECRYPT_LISTENER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_RECEIVED_PIPELINE_DECRYPT_LISTENER))
#define DINO_PLUGINS_OPEN_PGP_IS_RECEIVED_PIPELINE_DECRYPT_LISTENER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DINO_PLUGINS_OPEN_PGP_TYPE_RECEIVED_PIPELINE_DECRYPT_LISTENER))
#define DINO_PLUGINS_OPEN_PGP_RECEIVED_PIPELINE_DECRYPT_LISTENER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DINO_PLUGINS_OPEN_PGP_TYPE_RECEIVED_PIPELINE_DECRYPT_LISTENER, DinoPluginsOpenPgpReceivedPipelineDecryptListenerClass))

typedef struct _DinoPluginsOpenPgpReceivedPipelineDecryptListener DinoPluginsOpenPgpReceivedPipelineDecryptListener;
typedef struct _DinoPluginsOpenPgpReceivedPipelineDecryptListenerClass DinoPluginsOpenPgpReceivedPipelineDecryptListenerClass;
typedef struct _DinoPluginsOpenPgpReceivedPipelineDecryptListenerPrivate DinoPluginsOpenPgpReceivedPipelineDecryptListenerPrivate;

struct _DinoPluginsOpenPgpContactDetailsProvider {
	GObject parent_instance;
	DinoPluginsOpenPgpContactDetailsProviderPrivate * priv;
};

struct _DinoPluginsOpenPgpContactDetailsProviderClass {
	GObjectClass parent_class;
};

struct _DinoPluginsOpenPgpDatabase {
	QliteDatabase parent_instance;
	DinoPluginsOpenPgpDatabasePrivate * priv;
};

struct _DinoPluginsOpenPgpDatabaseClass {
	QliteDatabaseClass parent_class;
};

struct _DinoPluginsOpenPgpDatabaseAccountSetting {
	QliteTable parent_instance;
	DinoPluginsOpenPgpDatabaseAccountSettingPrivate * priv;
	QliteColumn* account_id;
	QliteColumn* key;
};

struct _DinoPluginsOpenPgpDatabaseAccountSettingClass {
	QliteTableClass parent_class;
};

struct _DinoPluginsOpenPgpDatabaseContactKey {
	QliteTable parent_instance;
	DinoPluginsOpenPgpDatabaseContactKeyPrivate * priv;
	QliteColumn* jid;
	QliteColumn* key;
};

struct _DinoPluginsOpenPgpDatabaseContactKeyClass {
	QliteTableClass parent_class;
};

struct _DinoPluginsOpenPgpPgpPreferencesEntry {
	DinoPluginsEncryptionPreferencesEntry parent_instance;
	DinoPluginsOpenPgpPgpPreferencesEntryPrivate * priv;
};

struct _DinoPluginsOpenPgpPgpPreferencesEntryClass {
	DinoPluginsEncryptionPreferencesEntryClass parent_class;
};

struct _DinoPluginsOpenPgpPgpFileDecryptor {
	GObject parent_instance;
	DinoPluginsOpenPgpPgpFileDecryptorPrivate * priv;
};

struct _DinoPluginsOpenPgpPgpFileDecryptorClass {
	GObjectClass parent_class;
};

struct _DinoPluginsOpenPgpPgpFileEncryptor {
	GObject parent_instance;
	DinoPluginsOpenPgpPgpFileEncryptorPrivate * priv;
};

struct _DinoPluginsOpenPgpPgpFileEncryptorClass {
	GObjectClass parent_class;
};

struct _GPGHelperDecryptedData {
	GTypeInstance parent_instance;
	volatile int ref_count;
	GPGHelperDecryptedDataPrivate * priv;
};

struct _GPGHelperDecryptedDataClass {
	GTypeClass parent_class;
	void (*finalize) (GPGHelperDecryptedData *self);
};

struct _DinoPluginsOpenPgpManager {
	GObject parent_instance;
	DinoPluginsOpenPgpManagerPrivate * priv;
};

struct _DinoPluginsOpenPgpManagerClass {
	GObjectClass parent_class;
};

struct _DinoPluginsOpenPgpPlugin {
	GObject parent_instance;
	DinoPluginsOpenPgpPluginPrivate * priv;
	DinoApplication* app;
	DinoPluginsOpenPgpDatabase* db;
	GeeHashMap* modules;
};

struct _DinoPluginsOpenPgpPluginClass {
	GObjectClass parent_class;
};

struct _DinoPluginsOpenPgpFlag {
	XmppXmppStreamFlag parent_instance;
	DinoPluginsOpenPgpFlagPrivate * priv;
	GeeHashMap* key_ids;
};

struct _DinoPluginsOpenPgpFlagClass {
	XmppXmppStreamFlagClass parent_class;
};

struct _DinoPluginsOpenPgpModule {
	XmppXmppStreamModule parent_instance;
	DinoPluginsOpenPgpModulePrivate * priv;
};

struct _DinoPluginsOpenPgpModuleClass {
	XmppXmppStreamModuleClass parent_class;
};

struct _DinoPluginsOpenPgpMessageFlag {
	XmppMessageFlag parent_instance;
	DinoPluginsOpenPgpMessageFlagPrivate * priv;
	gboolean decrypted;
};

struct _DinoPluginsOpenPgpMessageFlagClass {
	XmppMessageFlagClass parent_class;
};

struct _DinoPluginsOpenPgpReceivedPipelineDecryptListener {
	XmppStanzaListener parent_instance;
	DinoPluginsOpenPgpReceivedPipelineDecryptListenerPrivate * priv;
};

struct _DinoPluginsOpenPgpReceivedPipelineDecryptListenerClass {
	XmppStanzaListenerClass parent_class;
};

VALA_EXTERN GType dino_plugins_open_pgp_contact_details_provider_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOpenPgpContactDetailsProvider, g_object_unref)
VALA_EXTERN DinoPluginsOpenPgpContactDetailsProvider* dino_plugins_open_pgp_contact_details_provider_new (DinoStreamInteractor* stream_interactor);
VALA_EXTERN DinoPluginsOpenPgpContactDetailsProvider* dino_plugins_open_pgp_contact_details_provider_construct (GType object_type,
                                                                                                    DinoStreamInteractor* stream_interactor);
VALA_EXTERN GType dino_plugins_open_pgp_database_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOpenPgpDatabase, qlite_database_unref)
VALA_EXTERN DinoPluginsOpenPgpDatabase* dino_plugins_open_pgp_database_new (const gchar* filename);
VALA_EXTERN DinoPluginsOpenPgpDatabase* dino_plugins_open_pgp_database_construct (GType object_type,
                                                                      const gchar* filename);
VALA_EXTERN void dino_plugins_open_pgp_database_set_contact_key (DinoPluginsOpenPgpDatabase* self,
                                                     XmppJid* jid,
                                                     const gchar* key);
VALA_EXTERN gchar* dino_plugins_open_pgp_database_get_contact_key (DinoPluginsOpenPgpDatabase* self,
                                                       XmppJid* jid);
VALA_EXTERN void dino_plugins_open_pgp_database_set_account_key (DinoPluginsOpenPgpDatabase* self,
                                                     DinoEntitiesAccount* account,
                                                     const gchar* key);
VALA_EXTERN gchar* dino_plugins_open_pgp_database_get_account_key (DinoPluginsOpenPgpDatabase* self,
                                                       DinoEntitiesAccount* account);
VALA_EXTERN GType dino_plugins_open_pgp_database_account_setting_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOpenPgpDatabaseAccountSetting, qlite_table_unref)
VALA_EXTERN DinoPluginsOpenPgpDatabaseAccountSetting* dino_plugins_open_pgp_database_get_account_setting_table (DinoPluginsOpenPgpDatabase* self);
VALA_EXTERN GType dino_plugins_open_pgp_database_contact_key_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOpenPgpDatabaseContactKey, qlite_table_unref)
VALA_EXTERN DinoPluginsOpenPgpDatabaseContactKey* dino_plugins_open_pgp_database_get_contact_key_table (DinoPluginsOpenPgpDatabase* self);
VALA_EXTERN GType dino_plugins_open_pgp_pgp_preferences_entry_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOpenPgpPgpPreferencesEntry, g_object_unref)
VALA_EXTERN GType dino_plugins_open_pgp_plugin_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOpenPgpPlugin, g_object_unref)
VALA_EXTERN DinoPluginsOpenPgpPgpPreferencesEntry* dino_plugins_open_pgp_pgp_preferences_entry_new (DinoPluginsOpenPgpPlugin* plugin);
VALA_EXTERN DinoPluginsOpenPgpPgpPreferencesEntry* dino_plugins_open_pgp_pgp_preferences_entry_construct (GType object_type,
                                                                                              DinoPluginsOpenPgpPlugin* plugin);
VALA_EXTERN GType dino_plugins_open_pgp_pgp_file_decryptor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOpenPgpPgpFileDecryptor, g_object_unref)
VALA_EXTERN DinoPluginsOpenPgpPgpFileDecryptor* dino_plugins_open_pgp_pgp_file_decryptor_new (void);
VALA_EXTERN DinoPluginsOpenPgpPgpFileDecryptor* dino_plugins_open_pgp_pgp_file_decryptor_construct (GType object_type);
VALA_EXTERN GType dino_plugins_open_pgp_pgp_file_encryptor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOpenPgpPgpFileEncryptor, g_object_unref)
VALA_EXTERN DinoPluginsOpenPgpPgpFileEncryptor* dino_plugins_open_pgp_pgp_file_encryptor_new (DinoStreamInteractor* stream_interactor);
VALA_EXTERN DinoPluginsOpenPgpPgpFileEncryptor* dino_plugins_open_pgp_pgp_file_encryptor_construct (GType object_type,
                                                                                        DinoStreamInteractor* stream_interactor);
VALA_EXTERN gchar* gpg_helper_encrypt_armor (const gchar* plain,
                                 struct _gpgme_key** keys,
                                 gint keys_length1,
                                 gpgme_encrypt_flags_t flags,
                                 GError** error);
VALA_EXTERN guint8* gpg_helper_encrypt_file (const gchar* uri,
                                 struct _gpgme_key** keys,
                                 gint keys_length1,
                                 gpgme_encrypt_flags_t flags,
                                 const gchar* file_name,
                                 gint* result_length1,
                                 GError** error);
VALA_EXTERN gchar* gpg_helper_decrypt (const gchar* encr,
                           GError** error);
VALA_EXTERN gpointer gpg_helper_decrypted_data_ref (gpointer instance);
VALA_EXTERN void gpg_helper_decrypted_data_unref (gpointer instance);
VALA_EXTERN GParamSpec* gpg_helper_param_spec_decrypted_data (const gchar* name,
                                                  const gchar* nick,
                                                  const gchar* blurb,
                                                  GType object_type,
                                                  GParamFlags flags);
VALA_EXTERN void gpg_helper_value_set_decrypted_data (GValue* value,
                                          gpointer v_object);
VALA_EXTERN void gpg_helper_value_take_decrypted_data (GValue* value,
                                           gpointer v_object);
VALA_EXTERN gpointer gpg_helper_value_get_decrypted_data (const GValue* value);
VALA_EXTERN GType gpg_helper_decrypted_data_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GPGHelperDecryptedData, gpg_helper_decrypted_data_unref)
VALA_EXTERN GPGHelperDecryptedData* gpg_helper_decrypted_data_new (void);
VALA_EXTERN GPGHelperDecryptedData* gpg_helper_decrypted_data_construct (GType object_type);
VALA_EXTERN guint8* gpg_helper_decrypted_data_get_data (GPGHelperDecryptedData* self,
                                            gint* result_length1);
VALA_EXTERN void gpg_helper_decrypted_data_set_data (GPGHelperDecryptedData* self,
                                         guint8* value,
                                         gint value_length1);
VALA_EXTERN const gchar* gpg_helper_decrypted_data_get_filename (GPGHelperDecryptedData* self);
VALA_EXTERN void gpg_helper_decrypted_data_set_filename (GPGHelperDecryptedData* self,
                                             const gchar* value);
VALA_EXTERN GPGHelperDecryptedData* gpg_helper_decrypt_data (guint8* data,
                                                 gint data_length1,
                                                 GError** error);
VALA_EXTERN gchar* gpg_helper_sign (const gchar* plain,
                        gpgme_sig_mode_t mode,
                        struct _gpgme_key* key,
                        GError** error);
VALA_EXTERN gchar* gpg_helper_get_sign_key (const gchar* signature,
                                const gchar* text,
                                GError** error);
VALA_EXTERN GeeList* gpg_helper_get_keylist (const gchar* pattern,
                                 gboolean secret_only,
                                 GError** error);
VALA_EXTERN struct _gpgme_key* gpg_helper_get_public_key (const gchar* sig,
                                              GError** error);
VALA_EXTERN struct _gpgme_key* gpg_helper_get_private_key (const gchar* sig,
                                               GError** error);
VALA_EXTERN GType dino_plugins_open_pgp_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOpenPgpManager, g_object_unref)
VALA_EXTERN DinoModuleIdentity* dino_plugins_open_pgp_manager_IDENTITY;
VALA_EXTERN void dino_plugins_open_pgp_manager_start (DinoStreamInteractor* stream_interactor,
                                          DinoPluginsOpenPgpDatabase* db);
VALA_EXTERN struct _gpgme_key** dino_plugins_open_pgp_manager_get_key_fprs (DinoPluginsOpenPgpManager* self,
                                                                DinoEntitiesConversation* conversation,
                                                                gint* result_length1,
                                                                GError** error);
VALA_EXTERN gchar* dino_plugins_open_pgp_manager_get_key_id (DinoPluginsOpenPgpManager* self,
                                                 DinoEntitiesAccount* account,
                                                 XmppJid* jid);
VALA_EXTERN GType dino_plugins_open_pgp_module_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOpenPgpModule, g_object_unref)
VALA_EXTERN DinoPluginsOpenPgpPlugin* dino_plugins_open_pgp_plugin_new (void);
VALA_EXTERN DinoPluginsOpenPgpPlugin* dino_plugins_open_pgp_plugin_construct (GType object_type);
VALA_EXTERN GType register_plugin (GModule* module);
VALA_EXTERN GType dino_plugins_open_pgp_flag_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOpenPgpFlag, g_object_unref)
VALA_EXTERN XmppFlagIdentity* dino_plugins_open_pgp_flag_IDENTITY;
VALA_EXTERN gchar* dino_plugins_open_pgp_flag_get_key_id (DinoPluginsOpenPgpFlag* self,
                                              XmppJid* jid);
VALA_EXTERN void dino_plugins_open_pgp_flag_set_key_id (DinoPluginsOpenPgpFlag* self,
                                            XmppJid* jid,
                                            const gchar* key);
VALA_EXTERN DinoPluginsOpenPgpFlag* dino_plugins_open_pgp_flag_new (void);
VALA_EXTERN DinoPluginsOpenPgpFlag* dino_plugins_open_pgp_flag_construct (GType object_type);
VALA_EXTERN XmppModuleIdentity* dino_plugins_open_pgp_module_IDENTITY;
VALA_EXTERN DinoPluginsOpenPgpModule* dino_plugins_open_pgp_module_new (const gchar* own_key_id);
VALA_EXTERN DinoPluginsOpenPgpModule* dino_plugins_open_pgp_module_construct (GType object_type,
                                                                  const gchar* own_key_id);
VALA_EXTERN void dino_plugins_open_pgp_module_set_private_key_id (DinoPluginsOpenPgpModule* self,
                                                      const gchar* own_key_id);
VALA_EXTERN gboolean dino_plugins_open_pgp_module_encrypt (DinoPluginsOpenPgpModule* self,
                                               XmppMessageStanza* message,
                                               struct _gpgme_key** keys,
                                               gint keys_length1);
VALA_EXTERN void dino_plugins_open_pgp_module_require (XmppXmppStream* stream);
VALA_EXTERN GType dino_plugins_open_pgp_message_flag_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOpenPgpMessageFlag, g_object_unref)
VALA_EXTERN DinoPluginsOpenPgpMessageFlag* dino_plugins_open_pgp_message_flag_get_flag (XmppMessageStanza* message);
VALA_EXTERN DinoPluginsOpenPgpMessageFlag* dino_plugins_open_pgp_message_flag_new (void);
VALA_EXTERN DinoPluginsOpenPgpMessageFlag* dino_plugins_open_pgp_message_flag_construct (GType object_type);
VALA_EXTERN GType dino_plugins_open_pgp_received_pipeline_decrypt_listener_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DinoPluginsOpenPgpReceivedPipelineDecryptListener, g_object_unref)
VALA_EXTERN DinoPluginsOpenPgpReceivedPipelineDecryptListener* dino_plugins_open_pgp_received_pipeline_decrypt_listener_new (void);
VALA_EXTERN DinoPluginsOpenPgpReceivedPipelineDecryptListener* dino_plugins_open_pgp_received_pipeline_decrypt_listener_construct (GType object_type);
VALA_EXTERN gchar* dino_plugins_open_pgp_markup_id (const gchar* s,
                                        gboolean is_fingerprint);

G_END_DECLS

#endif
