From 5acad9396fc7ffa71952ac2e86be428e328dd0e8 Mon Sep 17 00:00:00 2001 From: Brendan Cully Date: Wed, 25 Jun 2008 23:40:39 -0700 Subject: [PATCH] Check S/MIME signing ID exists before attempting to use it. Closes #3069. Also make (s)ign automatically ask for a key if no default is defined. --- ChangeLog | 7 ++++++- smime.c | 19 +++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 16cd60a2..70fd25aa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,9 @@ -2008-06-25 22:43 -0700 Brendan Cully (e2780a423d96) +2008-06-25 23:13 -0700 Brendan Cully (d2134eced31b) + + * init.h: Make $move default to no instead of ask-no. Closes #2945. + + * doc/manual.xml.head: Document difference between index and pager + search. Closes #2886. * commands.c, copy.c, crypt-gpgme.c, handler.c, mbox.c, pgp.c: Make mutt_copy_message distinguish between fatal and non-fatal errors. diff --git a/smime.c b/smime.c index 437b62fb..31a0ccab 100644 --- a/smime.c +++ b/smime.c @@ -1386,6 +1386,12 @@ BODY *smime_sign_message (BODY *a ) pid_t thepid; char *intermediates = smime_get_field_from_db(NULL, SmimeDefaultKey, 1, 1); + if (!SmimeDefaultKey) + { + mutt_error _("Can't sign: No key specified. Use Sign As."); + return NULL; + } + if (!intermediates) { mutt_message(_("Warning: Intermediate certificate not found.")); @@ -2023,12 +2029,17 @@ int smime_send_menu (HEADER *msg, int *redraw) case 2: /* (s)ign */ if(!SmimeDefaultKey) - mutt_message _("Can't sign: No key specified. Use Sign As."); - else { - msg->security |= SIGN; - msg->security &= ~ENCRYPT; + *redraw = REDRAW_FULL; + + if ((p = smime_ask_for_key (_("Sign as: "), NULL, 0))) + mutt_str_replace (&SmimeDefaultKey, p); + else + break; } + + msg->security |= SIGN; + msg->security &= ~ENCRYPT; break; case 4: /* sign (a)s */ -- 2.40.0