[balsa] GMimeGpgmeSigstat: use modern macros
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa] GMimeGpgmeSigstat: use modern macros
- Date: Sun, 2 Jun 2019 22:29:56 +0000 (UTC)
commit bb928a11ae381bedca96f49c9fd0128908bd8325
Author: Albrecht Dreß <albrecht dress arcor de>
Date: Sun Jun 2 18:28:01 2019 -0400
GMimeGpgmeSigstat: use modern macros
GMimeGpgmeSigstat: use G_DECLARE_FINAL_TYPE(), G_DEFINE_TYPE()
* libbalsa/gmime-gpgme-signature.ch: implement GMimeGpgmeSigstat
using G_DECLARE_FINAL_TYPE() and G_DEFINE_TYPE();
implement getter/setter functions
* libbalsa/body.c, libbalsa/gmime-multipart-crypt.c, libbalsa/rfc3156.c,
src/balsa-message.c, src/balsa-mime-widget-crypto.c,
src/balsa-mime-widget-message.c, src/balsa-print-object-header.c:
use getter functions instead of accessing the object properties
* libbalsa/libbalsa-gpgme.c: use setter functions
instead of manipulating the object propertiy directly
* libbalsa/libbalsa-gpgme-widgets.[ch]: key argument to libbalsa_gpgme_key() is const
ChangeLog | 15 +++++
libbalsa/body.c | 13 ++--
libbalsa/gmime-gpgme-signature.c | 129 +++++++++++++++++++++++++-------------
libbalsa/gmime-gpgme-signature.h | 43 ++++---------
libbalsa/gmime-multipart-crypt.c | 2 +-
libbalsa/libbalsa-gpgme-widgets.c | 2 +-
libbalsa/libbalsa-gpgme-widgets.h | 2 +-
libbalsa/libbalsa-gpgme.c | 2 +-
libbalsa/rfc3156.c | 10 +--
src/balsa-message.c | 6 +-
src/balsa-mime-widget-crypto.c | 18 +++---
src/balsa-mime-widget-message.c | 2 +-
src/balsa-print-object-header.c | 2 +-
13 files changed, 143 insertions(+), 103 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index b5c4557c6..6e27b50f9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2019-06-02 Albrecht Dreß <albrecht dress arcor de>
+
+ GMimeGpgmeSigstat: use G_DECLARE_FINAL_TYPE(), G_DEFINE_TYPE()
+
+ * libbalsa/gmime-gpgme-signature.ch: implement GMimeGpgmeSigstat
+ using G_DECLARE_FINAL_TYPE() and G_DEFINE_TYPE();
+ implement getter/setter functions
+ * libbalsa/body.c, libbalsa/gmime-multipart-crypt.c, libbalsa/rfc3156.c,
+ src/balsa-message.c, src/balsa-mime-widget-crypto.c,
+ src/balsa-mime-widget-message.c, src/balsa-print-object-header.c:
+ use getter functions instead of accessing the object properties
+ * libbalsa/libbalsa-gpgme.c: use setter functions
+ instead of manipulating the object propertiy directly
+ * libbalsa/libbalsa-gpgme-widgets.[ch]: key argument to libbalsa_gpgme_key() is const
+
2019-06-02 Albrecht Dreß <albrecht dress arcor de>
Make GpgME/E2EE support a hard requirement
diff --git a/libbalsa/body.c b/libbalsa/body.c
index 6c27efe7a..ffcd9738b 100644
--- a/libbalsa/body.c
+++ b/libbalsa/body.c
@@ -878,12 +878,13 @@ libbalsa_message_body_protect_state(const LibBalsaMessageBody *body)
{
LibBalsaMsgProtectState state;
- if ((body == NULL) || (body->sig_info == NULL) || (body->sig_info->status == GPG_ERR_NOT_SIGNED) ||
- (body->sig_info->status == GPG_ERR_CANCELED)) {
+ if ((body == NULL) || (body->sig_info == NULL) ||
+ (g_mime_gpgme_sigstat_status(body->sig_info) == GPG_ERR_NOT_SIGNED) ||
+ (g_mime_gpgme_sigstat_status(body->sig_info) == GPG_ERR_CANCELED)) {
state = LIBBALSA_MSG_PROTECT_NONE;
- } else if (body->sig_info->status != GPG_ERR_NO_ERROR) {
+ } else if (g_mime_gpgme_sigstat_status(body->sig_info) != GPG_ERR_NO_ERROR) {
state = LIBBALSA_MSG_PROTECT_SIGN_BAD;
- } else if ((body->sig_info->summary & GPGME_SIGSUM_VALID) == GPGME_SIGSUM_VALID) {
+ } else if ((g_mime_gpgme_sigstat_summary(body->sig_info) & GPGME_SIGSUM_VALID) == GPGME_SIGSUM_VALID)
{
state = LIBBALSA_MSG_PROTECT_SIGN_GOOD;
} else {
state = LIBBALSA_MSG_PROTECT_SIGN_NOTRUST;
@@ -911,7 +912,7 @@ libbalsa_message_body_multipart_signed(const LibBalsaMessageBody *body)
(body->parts->next != NULL) && /* must have *two* child
parts... */
(body->parts->next->next == NULL) && /* ...but not more */
(body->parts->next->sig_info != NULL) &&
- (body->parts->next->sig_info->status != GPG_ERR_NOT_SIGNED);
+ (g_mime_gpgme_sigstat_status(body->parts->next->sig_info) != GPG_ERR_NOT_SIGNED);
}
@@ -930,5 +931,5 @@ libbalsa_message_body_inline_signed(const LibBalsaMessageBody *body)
{
return (body != NULL) &&
(body->sig_info != NULL) &&
- (body->sig_info->status != GPG_ERR_NOT_SIGNED);
+ (g_mime_gpgme_sigstat_status(body->sig_info) != GPG_ERR_NOT_SIGNED);
}
diff --git a/libbalsa/gmime-gpgme-signature.c b/libbalsa/gmime-gpgme-signature.c
index 330c396ba..7fa015169 100644
--- a/libbalsa/gmime-gpgme-signature.c
+++ b/libbalsa/gmime-gpgme-signature.c
@@ -40,45 +40,33 @@
#define G_LOG_DOMAIN "crypto"
-/* stuff for the signature status as returned by gpgme as an GObject */
-static GObjectClass *g_mime_gpgme_sigstat_parent_class = NULL;
+struct _GMimeGpgmeSigstat {
+ GObject parent;
+
+ /* results form gpgme's verify operation */
+ gpgme_protocol_t protocol;
+ gpgme_sigsum_t summary;
+ gpgme_error_t status;
+ gpgme_validity_t validity;
+ gchar *fingerprint;
+ time_t sign_time;
+
+ /* information about the key used to create the signature */
+ gpgme_key_t key;
+};
+
+
+G_DEFINE_TYPE(GMimeGpgmeSigstat, g_mime_gpgme_sigstat, G_TYPE_OBJECT)
-static void g_mime_gpgme_sigstat_class_init(GMimeGpgmeSigstatClass *
- klass);
-static void g_mime_gpgme_sigstat_finalize(GMimeGpgmeSigstat * self);
+
+/* stuff for the signature status as returned by gpgme as an GObject */
+static void g_mime_gpgme_sigstat_finalize(GObject *object);
static gchar *cert_subject_cn_mail(const gchar *subject)
G_GNUC_WARN_UNUSED_RESULT;
/* GMimeGpgmeSigstat related stuff */
-GType
-g_mime_gpgme_sigstat_get_type(void)
-{
- static GType g_mime_gpgme_sigstat_type = 0;
-
- if (!g_mime_gpgme_sigstat_type) {
- static const GTypeInfo g_mime_gpgme_sigstat_info = {
- sizeof(GMimeGpgmeSigstatClass), /* class_size */
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) g_mime_gpgme_sigstat_class_init, /* class_init */
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof(GMimeGpgmeSigstat), /* instance_size */
- 0, /* n_preallocs */
- NULL, /* instance_init */
- /* no value_table */
- };
-
- g_mime_gpgme_sigstat_type =
- g_type_register_static(G_TYPE_OBJECT, "GMimeGpgmeSigstat",
- &g_mime_gpgme_sigstat_info, 0);
- }
-
- return g_mime_gpgme_sigstat_type;
-}
-
GMimeGpgmeSigstat *
g_mime_gpgme_sigstat_new(gpgme_ctx_t ctx)
@@ -137,6 +125,14 @@ g_mime_gpgme_sigstat_new_from_gpgme_ctx(gpgme_ctx_t ctx)
return sig_stat;
}
+void
+g_mime_gpgme_sigstat_set_status(GMimeGpgmeSigstat *sigstat,
+ gpgme_error_t status)
+{
+ g_return_if_fail(GMIME_IS_GPGME_SIGSTAT(sigstat));
+ sigstat->status = status;
+}
+
static inline void
append_time_t(GString *str,
const gchar *format,
@@ -153,8 +149,8 @@ append_time_t(GString *str,
}
gchar *
-g_mime_gpgme_sigstat_info(const GMimeGpgmeSigstat *info,
- gboolean with_signer)
+g_mime_gpgme_sigstat_info(GMimeGpgmeSigstat *info,
+ gboolean with_signer)
{
gchar *signer_str = NULL;
gchar *status_str;
@@ -178,9 +174,9 @@ g_mime_gpgme_sigstat_info(const GMimeGpgmeSigstat *info,
}
gchar *
-g_mime_gpgme_sigstat_to_gchar(const GMimeGpgmeSigstat *info,
- gboolean full_details,
- const gchar *date_string)
+g_mime_gpgme_sigstat_to_gchar( GMimeGpgmeSigstat *info,
+ gboolean full_details,
+ const gchar *date_string)
{
GString *msg;
gchar *status_str;
@@ -217,7 +213,7 @@ g_mime_gpgme_sigstat_to_gchar(const GMimeGpgmeSigstat *info,
gchar *
-g_mime_gpgme_sigstat_signer(const GMimeGpgmeSigstat *sigstat)
+g_mime_gpgme_sigstat_signer(GMimeGpgmeSigstat *sigstat)
{
gchar *result = NULL;
@@ -250,26 +246,73 @@ g_mime_gpgme_sigstat_signer(const GMimeGpgmeSigstat *sigstat)
}
+gpgme_protocol_t
+g_mime_gpgme_sigstat_protocol(GMimeGpgmeSigstat *sigstat)
+{
+ g_return_val_if_fail(GMIME_IS_GPGME_SIGSTAT(sigstat), GPGME_PROTOCOL_UNKNOWN);
+ return sigstat->protocol;
+}
+
+
+gpgme_error_t
+g_mime_gpgme_sigstat_status(GMimeGpgmeSigstat *sigstat)
+{
+ g_return_val_if_fail(GMIME_IS_GPGME_SIGSTAT(sigstat), GPG_ERR_GENERAL);
+ return sigstat->status;
+}
+
+
+gpgme_sigsum_t
+g_mime_gpgme_sigstat_summary(GMimeGpgmeSigstat *sigstat)
+{
+ g_return_val_if_fail(GMIME_IS_GPGME_SIGSTAT(sigstat), GPGME_SIGSUM_SYS_ERROR);
+ return sigstat->summary;
+}
+
+
+const gpgme_key_t
+g_mime_gpgme_sigstat_key(GMimeGpgmeSigstat *sigstat)
+{
+ g_return_val_if_fail(GMIME_IS_GPGME_SIGSTAT(sigstat), NULL);
+ return sigstat->key;
+}
+
+
+const gchar *
+g_mime_gpgme_sigstat_fingerprint(GMimeGpgmeSigstat *sigstat)
+{
+ g_return_val_if_fail(GMIME_IS_GPGME_SIGSTAT(sigstat), NULL);
+ return sigstat->fingerprint;
+}
+
+
static void
g_mime_gpgme_sigstat_class_init(GMimeGpgmeSigstatClass * klass)
{
GObjectClass *gobject_klass = G_OBJECT_CLASS(klass);
- g_mime_gpgme_sigstat_parent_class = g_type_class_peek(G_TYPE_OBJECT);
- gobject_klass->finalize =
- (GObjectFinalizeFunc) g_mime_gpgme_sigstat_finalize;
+ gobject_klass->finalize = g_mime_gpgme_sigstat_finalize;
}
static void
-g_mime_gpgme_sigstat_finalize(GMimeGpgmeSigstat * self)
+g_mime_gpgme_sigstat_init(G_GNUC_UNUSED GMimeGpgmeSigstat *self)
{
+ /* nothing to do */
+}
+
+static void
+g_mime_gpgme_sigstat_finalize(GObject *object)
+{
+ GMimeGpgmeSigstat *self = GMIME_GPGME_SIGSTAT(object);
+ const GObjectClass *parent_class = G_OBJECT_CLASS(g_mime_gpgme_sigstat_parent_class);
+
g_free(self->fingerprint);
self->fingerprint = NULL;
if (self->key)
gpgme_key_unref(self->key);
self->key = NULL;
- g_mime_gpgme_sigstat_parent_class->finalize(G_OBJECT(self));
+ (*parent_class->finalize)(object);
}
static gchar *
diff --git a/libbalsa/gmime-gpgme-signature.h b/libbalsa/gmime-gpgme-signature.h
index b03039cb2..5839cfc2a 100644
--- a/libbalsa/gmime-gpgme-signature.h
+++ b/libbalsa/gmime-gpgme-signature.h
@@ -27,51 +27,30 @@ G_BEGIN_DECLS
/* the signature status as returned by gpgme as a GObject */
#define GMIME_TYPE_GPGME_SIGSTAT (g_mime_gpgme_sigstat_get_type())
-#define GMIME_GPGME_SIGSTAT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GMIME_TYPE_GPGME_SIGSTAT,
GMimeGpgmeSigstat))
-#define GMIME_GPGME_SIGSTAT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GMIME_TYPE_GPGME_SIGSTAT,
GMimeGpgmeSigstatClass))
-#define GMIME_IS_GPGME_SIGSTAT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GMIME_TYPE_GPGME_SIGSTAT))
-#define GMIME_IS_GPGME_SIGSTAT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GMIME_TYPE_GPGME_SIGSTAT))
-#define GMIME_GPGME_SIGSTAT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GMIME_TYPE_GPGME_SIGSTAT,
GMimeGpgmeSigstatClass))
+G_DECLARE_FINAL_TYPE(GMimeGpgmeSigstat, g_mime_gpgme_sigstat, GMIME, GPGME_SIGSTAT, GObject)
-typedef struct _GMimeGpgmeSigstat GMimeGpgmeSigstat;
-typedef struct _GMimeGpgmeSigstatClass GMimeGpgmeSigstatClass;
-typedef struct _sig_uid_t sig_uid_t;
-struct _GMimeGpgmeSigstat {
- GObject parent;
-
- /* results form gpgme's verify operation */
- gpgme_protocol_t protocol;
- gpgme_sigsum_t summary;
- gpgme_error_t status;
- gpgme_validity_t validity;
- gchar *fingerprint;
- time_t sign_time;
-
- /* information about the key used to create the signature */
- gpgme_key_t key;
-};
-
-struct _GMimeGpgmeSigstatClass {
- GObjectClass parent;
-};
-
-
-GType g_mime_gpgme_sigstat_get_type(void);
GMimeGpgmeSigstat *g_mime_gpgme_sigstat_new(gpgme_ctx_t ctx)
G_GNUC_WARN_UNUSED_RESULT;
GMimeGpgmeSigstat *g_mime_gpgme_sigstat_new_from_gpgme_ctx(gpgme_ctx_t ctx)
G_GNUC_WARN_UNUSED_RESULT;
+void g_mime_gpgme_sigstat_set_status(GMimeGpgmeSigstat *sigstat,
+ gpgme_error_t status);
-gchar *g_mime_gpgme_sigstat_info(const GMimeGpgmeSigstat *info,
+gchar *g_mime_gpgme_sigstat_info(GMimeGpgmeSigstat *info,
gboolean with_signer)
G_GNUC_WARN_UNUSED_RESULT;
-gchar *g_mime_gpgme_sigstat_to_gchar(const GMimeGpgmeSigstat *info,
+gchar *g_mime_gpgme_sigstat_to_gchar(GMimeGpgmeSigstat *info,
gboolean
full_details,
const gchar *date_string)
G_GNUC_WARN_UNUSED_RESULT;
-gchar *g_mime_gpgme_sigstat_signer(const GMimeGpgmeSigstat *sigstat)
+gchar *g_mime_gpgme_sigstat_signer(GMimeGpgmeSigstat *sigstat)
G_GNUC_WARN_UNUSED_RESULT;
+gpgme_protocol_t g_mime_gpgme_sigstat_protocol(GMimeGpgmeSigstat *sigstat);
+gpgme_error_t g_mime_gpgme_sigstat_status(GMimeGpgmeSigstat *sigstat);
+gpgme_sigsum_t g_mime_gpgme_sigstat_summary(GMimeGpgmeSigstat *sigstat);
+const gpgme_key_t g_mime_gpgme_sigstat_key(GMimeGpgmeSigstat *sigstat);
+const gchar *g_mime_gpgme_sigstat_fingerprint(GMimeGpgmeSigstat *sigstat);
gchar *libbalsa_cert_subject_readable(const gchar *subject)
G_GNUC_WARN_UNUSED_RESULT;
diff --git a/libbalsa/gmime-multipart-crypt.c b/libbalsa/gmime-multipart-crypt.c
index 94571960a..922cc87f9 100644
--- a/libbalsa/gmime-multipart-crypt.c
+++ b/libbalsa/gmime-multipart-crypt.c
@@ -537,7 +537,7 @@ g_mime_gpgme_mpe_decrypt(GMimeMultipartEncrypted * mpe,
/* cache the decrypted part */
if (signature) {
- if (sigstat->status != GPG_ERR_NOT_SIGNED)
+ if (g_mime_gpgme_sigstat_status(sigstat) != GPG_ERR_NOT_SIGNED)
*signature = sigstat;
else
g_object_unref(G_OBJECT(sigstat));
diff --git a/libbalsa/libbalsa-gpgme-widgets.c b/libbalsa/libbalsa-gpgme-widgets.c
index 814ee6deb..cd752cb89 100644
--- a/libbalsa/libbalsa-gpgme-widgets.c
+++ b/libbalsa/libbalsa-gpgme-widgets.c
@@ -70,7 +70,7 @@ static gchar *create_subkey_type_str(gpgme_subkey_t subkey)
/* documentation: see header file */
GtkWidget *
-libbalsa_gpgme_key(gpgme_key_t key,
+libbalsa_gpgme_key(const gpgme_key_t key,
const gchar *fingerprint,
lb_gpg_subkey_capa_t subkey_capa,
gboolean expanded)
diff --git a/libbalsa/libbalsa-gpgme-widgets.h b/libbalsa/libbalsa-gpgme-widgets.h
index 0cda36177..70a5ceb0f 100644
--- a/libbalsa/libbalsa-gpgme-widgets.h
+++ b/libbalsa/libbalsa-gpgme-widgets.h
@@ -57,7 +57,7 @@ typedef enum {
* only). Note that no information about the OpenPGP signatures of the UID's are included, as it is
expensive to retrieve all
* signatures of a key.
*/
-GtkWidget *libbalsa_gpgme_key(gpgme_key_t key,
+GtkWidget *libbalsa_gpgme_key(const gpgme_key_t key,
const gchar *fingerprint,
lb_gpg_subkey_capa_t subkey_capa,
gboolean expanded)
diff --git a/libbalsa/libbalsa-gpgme.c b/libbalsa/libbalsa-gpgme.c
index a7dc98841..d81a0ea35 100644
--- a/libbalsa/libbalsa-gpgme.c
+++ b/libbalsa/libbalsa-gpgme.c
@@ -394,7 +394,7 @@ libbalsa_gpgme_verify(GMimeStream * content, GMimeStream * sig_plain,
libbalsa_gpgme_set_error(error, err,
_("signature verification failed"));
result = g_mime_gpgme_sigstat_new(ctx);
- result->status = err;
+ g_mime_gpgme_sigstat_set_status(result, err);
} else
result = g_mime_gpgme_sigstat_new_from_gpgme_ctx(ctx);
diff --git a/libbalsa/rfc3156.c b/libbalsa/rfc3156.c
index 52d91a4e6..d31fbd171 100644
--- a/libbalsa/rfc3156.c
+++ b/libbalsa/rfc3156.c
@@ -458,7 +458,7 @@ libbalsa_body_decrypt(LibBalsaMessageBody *body, gpgme_protocol_t protocol, GtkW
libbalsa_message_body_set_mime_body(body, mime_obj);
if (sig_state) {
- if (sig_state->status != GPG_ERR_NOT_SIGNED)
+ if (g_mime_gpgme_sigstat_status(sig_state) != GPG_ERR_NOT_SIGNED)
body->sig_info = sig_state;
else
g_object_unref(G_OBJECT(sig_state));
@@ -545,7 +545,7 @@ libbalsa_rfc2440_verify(GMimePart * part, GMimeGpgmeSigstat ** sig_info)
retval = GPG_ERR_GENERAL;
}
} else
- retval = result->status;
+ retval = g_mime_gpgme_sigstat_status(result);
/* return the signature info if requested */
if (result) {
@@ -601,13 +601,13 @@ libbalsa_rfc2440_decrypt(GMimePart * part, GMimeGpgmeSigstat ** sig_info,
retval = GPG_ERR_GENERAL;
}
} else {
- if (result->status == GPG_ERR_NOT_SIGNED)
+ if (g_mime_gpgme_sigstat_status(result) == GPG_ERR_NOT_SIGNED)
retval = GPG_ERR_NO_ERROR;
else
- retval = result->status;
+ retval = g_mime_gpgme_sigstat_status(result);
/* return the signature info if requested */
- if (sig_info && result->status != GPG_ERR_NOT_SIGNED)
+ if (sig_info && g_mime_gpgme_sigstat_status(result) != GPG_ERR_NOT_SIGNED)
*sig_info = result;
else
g_object_unref(G_OBJECT(result));
diff --git a/src/balsa-message.c b/src/balsa-message.c
index a8b29f3fb..614f7f2c4 100644
--- a/src/balsa-message.c
+++ b/src/balsa-message.c
@@ -2985,7 +2985,7 @@ libbalsa_msg_try_mp_signed(LibBalsaMessage * message, LibBalsaMessageBody *body,
_("Detected a good signature"));
break;
case LIBBALSA_MSG_PROTECT_SIGN_NOTRUST:
- if (body->parts->next->sig_info->protocol == GPGME_PROTOCOL_CMS)
+ if (g_mime_gpgme_sigstat_protocol(body->parts->next->sig_info) == GPGME_PROTOCOL_CMS)
libbalsa_information
(LIBBALSA_INFORMATION_MESSAGE,
_("Detected a good signature with insufficient "
@@ -2999,7 +2999,7 @@ libbalsa_msg_try_mp_signed(LibBalsaMessage * message, LibBalsaMessageBody *body,
case LIBBALSA_MSG_PROTECT_SIGN_BAD: {
gchar *status;
- status = libbalsa_gpgme_sig_stat_to_gchar(body->parts->next->sig_info->status);
+ status =
libbalsa_gpgme_sig_stat_to_gchar(g_mime_gpgme_sigstat_status(body->parts->next->sig_info));
libbalsa_information
(chk_crypto->chk_mode == LB_MAILBOX_CHK_CRYPT_ALWAYS ?
LIBBALSA_INFORMATION_ERROR : LIBBALSA_INFORMATION_MESSAGE,
@@ -3110,7 +3110,7 @@ libbalsa_msg_part_2440(LibBalsaMessage * message, LibBalsaMessageBody * body,
libbalsa_mailbox_unlock_store(body->message->mailbox);
if (body->sig_info && sig_res == GPG_ERR_NO_ERROR) {
- if ((body->sig_info->summary & GPGME_SIGSUM_VALID) == GPGME_SIGSUM_VALID) {
+ if ((g_mime_gpgme_sigstat_summary(body->sig_info) & GPGME_SIGSUM_VALID) == GPGME_SIGSUM_VALID) {
g_debug("%s: detected a good signature", __func__);
} else {
libbalsa_information
diff --git a/src/balsa-mime-widget-crypto.c b/src/balsa-mime-widget-crypto.c
index 1d93db928..e01ccdf33 100644
--- a/src/balsa-mime-widget-crypto.c
+++ b/src/balsa-mime-widget-crypto.c
@@ -95,14 +95,15 @@ GtkWidget *
balsa_mime_widget_signature_widget(LibBalsaMessageBody * mime_body,
const gchar * content_type)
{
- gchar *infostr;
+ gpgme_key_t key;
+ gchar *infostr;
GtkWidget *expander;
GtkWidget *vbox, *label;
GtkWidget *signature_widget;
gchar **lines;
if (!mime_body->sig_info ||
- mime_body->sig_info->status == GPG_ERR_NOT_SIGNED)
+ g_mime_gpgme_sigstat_status(mime_body->sig_info) == GPG_ERR_NOT_SIGNED)
return NULL;
infostr = g_mime_gpgme_sigstat_to_gchar(mime_body->sig_info, FALSE, balsa_app.date_string);
@@ -117,13 +118,14 @@ balsa_mime_widget_signature_widget(LibBalsaMessageBody * mime_body,
gtk_label_set_selectable(GTK_LABEL(label), TRUE);
gtk_widget_set_halign(label, GTK_ALIGN_START);
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
- if (mime_body->sig_info->key != NULL) {
+ key = g_mime_gpgme_sigstat_key(mime_body->sig_info);
+ if (key != NULL) {
GtkWidget *key_widget;
- key_widget = libbalsa_gpgme_key(mime_body->sig_info->key, mime_body->sig_info->fingerprint,
0U, FALSE);
+ key_widget = libbalsa_gpgme_key(key, g_mime_gpgme_sigstat_fingerprint(mime_body->sig_info),
0U, FALSE);
gtk_box_pack_start(GTK_BOX(vbox), key_widget, FALSE, FALSE, 0);
}
- if (mime_body->sig_info->protocol == GPGME_PROTOCOL_OpenPGP) {
+ if (g_mime_gpgme_sigstat_protocol(mime_body->sig_info) == GPGME_PROTOCOL_OpenPGP) {
GtkWidget *hbox;
GtkWidget *button;
@@ -131,11 +133,11 @@ balsa_mime_widget_signature_widget(LibBalsaMessageBody * mime_body,
gtk_button_box_set_layout(GTK_BUTTON_BOX(hbox), GTK_BUTTONBOX_EXPAND);
gtk_box_set_spacing(GTK_BOX(hbox), BMW_HBOX_SPACE);
gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0);
- if (mime_body->sig_info->status == GPG_ERR_NO_PUBKEY) {
+ if (g_mime_gpgme_sigstat_status(mime_body->sig_info) == GPG_ERR_NO_PUBKEY) {
#ifdef ENABLE_AUTOCRYPT
GBytes *autocrypt_key;
- autocrypt_key = autocrypt_get_key(mime_body->sig_info->fingerprint, NULL);
+ autocrypt_key = autocrypt_get_key(g_mime_gpgme_sigstat_fingerprint(mime_body->sig_info),
NULL);
if (autocrypt_key != NULL) {
button = gtk_button_new_with_mnemonic(_("_Import Autocrypt key"));
g_object_set_data_full(G_OBJECT(button), "autocrypt_key", autocrypt_key,
(GDestroyNotify) g_bytes_unref);
@@ -149,7 +151,7 @@ balsa_mime_widget_signature_widget(LibBalsaMessageBody * mime_body,
}
g_signal_connect(G_OBJECT(button), "clicked",
G_CALLBACK(on_gpg_key_button),
- (gpointer) mime_body->sig_info->fingerprint);
+ (gpointer) g_mime_gpgme_sigstat_fingerprint(mime_body->sig_info));
gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
}
diff --git a/src/balsa-mime-widget-message.c b/src/balsa-mime-widget-message.c
index 2778394a0..01cf8a6c1 100644
--- a/src/balsa-mime-widget-message.c
+++ b/src/balsa-mime-widget-message.c
@@ -838,7 +838,7 @@ add_header_sigstate(GtkGrid * grid, GMimeGpgmeSigstat * siginfo)
GtkWidget *label;
info_str = g_mime_gpgme_sigstat_info(siginfo, TRUE);
- format = (siginfo->status == GPG_ERR_NO_ERROR) ? "<i>%s</i>" : "<b><i>%s</i></b>";
+ format = (g_mime_gpgme_sigstat_status(siginfo) == GPG_ERR_NO_ERROR) ? "<i>%s</i>" : "<b><i>%s</i></b>";
msg = g_markup_printf_escaped(format, info_str);
g_free(info_str);
diff --git a/src/balsa-print-object-header.c b/src/balsa-print-object-header.c
index 798245008..ce1f587ee 100644
--- a/src/balsa-print-object-header.c
+++ b/src/balsa-print-object-header.c
@@ -366,7 +366,7 @@ balsa_print_object_header_crypto(GList *list, GtkPrintContext * context,
GList *this_chunk;
/* only if the body has an attached signature info */
- if ((body->sig_info == NULL) || (body->sig_info->status == GPG_ERR_NOT_SIGNED)) {
+ if ((body->sig_info == NULL) || (g_mime_gpgme_sigstat_status(body->sig_info) == GPG_ERR_NOT_SIGNED)) {
return balsa_print_object_default(list, context, body, psetup);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]