* hal King <hck@xxxxxxx> [14-10-2003 18:27]: > Thanks for the response but, > The patch addresses 1.5.1 I'm using 1.5.4i. The patch does not function in > the source directory, nor above (where it would fail on directory). Are you > saying I need to go back to 1.5.1? The patch you attached looks like something that was mocked up by me, indeed for mutt 1.5.1. But it was not the patch I referred to, nor was it attached to message <20031007222829.GF5516@xxxxxxxx>.. Here is the patch I meant.. -- René Clerc - (rene@xxxxxxxx) - PGP: 0x9ACE0AC7 No woman, no cry. -Bob Marley
? core.28264
? core.3732
? core.3789
? patch-1.5.3-CVS.tlr.idna.1
? patch-1.5.4.tlr.pgpsmimeautoselect.1
? typescript
Index: init.h
===================================================================
RCS file: /cvs/mutt/mutt/init.h,v
retrieving revision 3.37
diff -u -r3.37 init.h
--- init.h 2 Apr 2003 08:28:24 -0000 3.37
+++ init.h 11 Apr 2003 19:48:42 -0000
@@ -359,6 +359,22 @@
** will be saved for later references. Also see ``$$record'',
** ``$$save_name'', ``$$force_name'' and ``$fcc-hook''.
*/
+ { "crypt_autopgp", DT_BOOL, R_NONE, OPTCRYPTAUTOPGP, 1 },
+ /*
+ ** .pp
+ ** This variable controls whether or not mutt may automatically enable
+ ** PGP encryption/signing for messages. See also ``$$crypt_autoencrypt'',
+ ** ``$$crypt_replyencrypt'',
+ ** ``$$crypt_autosign'', ``$$crypt_replysign'' and ``$$smime_is_default''.
+ */
+ { "crypt_autosmime", DT_BOOL, R_NONE, OPTCRYPTAUTOSMIME, 1 },
+ /*
+ ** .pp
+ ** This variable controls whether or not mutt may automatically enable
+ ** S/MIME encryption/signing for messages. See also ``$$crypt_autoencrypt'',
+ ** ``$$crypt_replyencrypt'',
+ ** ``$$crypt_autosign'', ``$$crypt_replysign'' and ``$$smime_is_default''.
+ */
{ "date_format", DT_STR, R_BOTH, UL &DateFmt, UL "!%a, %b %d, %Y at
%I:%M:%S%p %Z" },
/*
** .pp
@@ -1287,7 +1303,7 @@
** operations. To override and to use OpenSSL instead this must be set.
** However, this has no effect while replying, since mutt will automatically
** select the same application that was used to sign/encrypt the original
- ** message.
+ ** message. (Note that this variable can be overridden by unsetting
$$crypt_autosmime.)
** (S/MIME only)
*/
{ "smime_ask_cert_label", DT_BOOL, R_NONE, OPTASKCERTLABEL, 1 },
Index: mutt.h
===================================================================
RCS file: /cvs/mutt/mutt/mutt.h,v
retrieving revision 3.16
diff -u -r3.16 mutt.h
--- mutt.h 2 Apr 2003 08:28:24 -0000 3.16
+++ mutt.h 11 Apr 2003 19:48:42 -0000
@@ -427,6 +427,8 @@
OPTCRYPTAUTOSIGN,
OPTCRYPTAUTOENCRYPT,
+ OPTCRYPTAUTOPGP,
+ OPTCRYPTAUTOSMIME,
OPTCRYPTREPLYENCRYPT,
OPTCRYPTREPLYSIGN,
OPTCRYPTREPLYSIGNENCRYPTED,
Index: send.c
===================================================================
RCS file: /cvs/mutt/mutt/send.c,v
retrieving revision 3.23
diff -u -r3.23 send.c
--- send.c 11 Apr 2003 15:15:04 -0000 3.23
+++ send.c 11 Apr 2003 19:48:42 -0000
@@ -1250,36 +1250,50 @@
msg->security |= ENCRYPT;
if (option (OPTCRYPTREPLYSIGN) && cur && (cur->security & SIGN))
msg->security |= SIGN;
- if (option (OPTCRYPTREPLYSIGNENCRYPTED) && cur && cur->security &
ENCRYPT)
+ if (option (OPTCRYPTREPLYSIGNENCRYPTED) && cur && (cur->security &
ENCRYPT))
msg->security |= SIGN;
}
- if (WithCrypto && msg->security && cur)
+ if (WithCrypto && msg->security)
{
- if ((WithCrypto & APPLICATION_SMIME)
- && ((cur->security & APPLICATION_SMIME)
- || option (OPTSMIMEISDEFAULT)))
- msg->security |= APPLICATION_SMIME;
-
- if ((WithCrypto & APPLICATION_PGP) && (cur->security & APPLICATION_PGP))
+ /*
+ * When reypling / forwarding, use the original message's
+ * crypto system. According to the documentation,
+ * smime_is_default should be disregarded here.
+ *
+ * Problem: At least with forwarding, this doesn't really
+ * make much sense. Should we have an option to completely
+ * disable individual mechanisms at run-time?
+ */
+ if (cur)
{
- msg->security &= ~APPLICATION_SMIME;
- msg->security |= APPLICATION_PGP;
+ if ((WithCrypto & APPLICATION_PGP) && option (OPTCRYPTAUTOPGP)
+ && (cur->security & APPLICATION_PGP))
+ msg->security |= APPLICATION_PGP;
+ else if ((WithCrypto & APPLICATION_SMIME) && option (OPTCRYPTAUTOSMIME)
+ && (cur->security & APPLICATION_SMIME))
+ msg->security |= APPLICATION_SMIME;
}
- if ((WithCrypto & APPLICATION_SMIME)
- && !(cur->security & (APPLICATION_PGP|APPLICATION_SMIME)))
- msg->security |= APPLICATION_PGP;
- }
- else if ((WithCrypto & APPLICATION_PGP) && msg->security)
- {
- msg->security |= APPLICATION_PGP;
- if ((WithCrypto & APPLICATION_SMIME) && option (OPTSMIMEISDEFAULT))
+
+ /*
+ * No crypto mechanism selected? Use availability + smime_is_default
+ * for the decision.
+ */
+ if (!(msg->security & (APPLICATION_SMIME | APPLICATION_PGP)))
{
- msg->security |= APPLICATION_SMIME;
- msg->security &= ~APPLICATION_PGP;
+ if ((WithCrypto & APPLICATION_SMIME) && option (OPTCRYPTAUTOSMIME)
+ && option (OPTSMIMEISDEFAULT))
+ msg->security |= APPLICATION_SMIME;
+ else if ((WithCrypto & APPLICATION_PGP) && option (OPTCRYPTAUTOPGP))
+ msg->security |= APPLICATION_PGP;
+ else if ((WithCrypto & APPLICATION_SMIME) && option (OPTCRYPTAUTOSMIME))
+ msg->security |= APPLICATION_SMIME;
}
}
-
+
+ /* No permissible mechanisms found. Don't sign. */
+ if (!(msg->security & (APPLICATION_SMIME|APPLICATION_PGP)))
+ msg->security = 0;
}
/* wait until now to set the real name portion of our return address so
that $realname can be set in a send-hook */
Attachment:
pgp4o6tNByxoo.pgp
Description: PGP signature