[balsa] GMimeGpgmeSigstat: use modern macros



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]