Hello, with respect to my post "get id of key used for s/mime signature" on the mutt-users list, I have written a brief patch to show the key id. To reduce code duplication, I added a function mutt_align to curs_lib.c, but I am not sure whether that's the best place to go. I hope my aged C skills have not introduced too many errors, so feedback is very welcome.
Best regards,
Robert
-- >8 --
---
crypt-gpgme.c | 21 +++++++--------------
curs_lib.c | 12 ++++++++++++
protos.h | 1 +
3 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/crypt-gpgme.c b/crypt-gpgme.c
index ccae5503..e42be23d 100644
--- a/crypt-gpgme.c
+++ b/crypt-gpgme.c
@@ -1619,9 +1619,8 @@ static void show_one_sig_validity(gpgme_ctx_t ctx, int
idx, STATE *s)
static void print_smime_keyinfo(const char *msg, gpgme_signature_t sig,
gpgme_key_t key, STATE *s)
{
- int msgwid;
gpgme_user_id_t uids = NULL;
- int i, aka = 0;
+ int aka = 0;
state_puts(msg, s);
state_puts(" ", s);
@@ -1634,18 +1633,17 @@ static void print_smime_keyinfo(const char *msg,
gpgme_signature_t sig,
continue;
if (aka)
{
- msgwid = mutt_strwidth(msg) - mutt_strwidth(_("aka: ")) + 1;
- if (msgwid < 0)
- msgwid = 0;
- for (i = 0; i < msgwid; i++)
- state_puts(" ", s);
- state_puts(_("aka: "), s);
+ mutt_align(msg, _("aka: "), s);
}
state_puts(uids->uid, s);
state_puts("\n", s);
aka = 1;
}
+
+ mutt_align(msg, _("KeyId: "), s);
+ state_puts(key->fpr, s);
+ state_puts("\n", s);
}
else
{
@@ -1666,12 +1664,7 @@ static void print_smime_keyinfo(const char *msg,
gpgme_signature_t sig,
"Jan 1 1970" is not the created date. */
if (sig->timestamp)
{
- msgwid = mutt_strwidth(msg) - mutt_strwidth(_("created: ")) + 1;
- if (msgwid < 0)
- msgwid = 0;
- for (i = 0; i < msgwid; i++)
- state_puts(" ", s);
- state_puts(_("created: "), s);
+ mutt_align(msg, _("created: "), s);
print_time(sig->timestamp, s);
state_puts("\n", s);
}
diff --git a/curs_lib.c b/curs_lib.c
index 5c93cbb0..e6d1f7d5 100644
--- a/curs_lib.c
+++ b/curs_lib.c
@@ -1654,3 +1654,15 @@ int mutt_strwidth(const char *s)
}
return w;
}
+
+void mutt_align(const char *msg, const char *key, STATE *s)
+{
+ int msgwid = mutt_strwidth(msg) - mutt_strwidth(_(key)) + 1;
+ int i;
+
+ if (msgwid < 0)
+ msgwid = 0;
+ for (i = 0; i < msgwid; i++)
+ state_puts(" ", s);
+ state_puts(key, s);
+}
diff --git a/protos.h b/protos.h
index 4958aa0e..407f4859 100644
--- a/protos.h
+++ b/protos.h
@@ -407,6 +407,7 @@ int mutt_smtp_send(const ADDRESS *, const ADDRESS *, const
ADDRESS *,
size_t mutt_wstr_trunc(const char *, size_t, size_t, size_t *);
int mutt_charlen(const char *s, int *);
int mutt_strwidth(const char *);
+void mutt_align(const char *msg, const char *key, STATE *s);
int mutt_compose_menu(SEND_CONTEXT *);
int mutt_thread_set_flag(HEADER *, int, int, int);
int mutt_user_is_recipient(HEADER *);
--
2.47.3
smime.p7s
Description: S/MIME cryptographic signature
