1. 01 Jun, 2018 1 commit
  2. 14 Mar, 2018 1 commit
  3. 11 Jan, 2018 1 commit
    • Kevin J. McCarthy's avatar
      Create pgp and s/mime default and sign_as key vars. (see #3983) · db252e61
      Kevin J. McCarthy authored
      The $postpone_encrypt and $(pgp/smime)_self_encrypt configuration
      variables have created a somewhat messier situation for users.  Many
      of them now have to specify their keys across multiple configuration
      (Trac) Ticket #3983 had a reasonable request: "if my encrypt and
      signing keys are the same, why can't I just specify my key once in my
      The problem currently is that $smime_default_key and $pgp_sign_as are
      both used to specify signing keys, and are set by the "sign (a)s"
      security menu choice.  So we can't store encryption keys there because
      some users have separate sign-only capability keys.
      Create $pgp_default_key to store the default encryption key.  Change
      signing to use $pgp_default_key, unless overridden by $pgp_sign_as.
      The pgp "sign (a)s" will continue setting $pgp_sign_as.
      Create $smime_sign_as.  Change signing to use $smime_default_key
      unless overridden by $smime_sign_as.  Change s/mime "sign (a)s" menu
      to set $smime_sign_as instead.
      Change $postpone_encrypt and $(pgp/smime)_self_encrypt to use
      $(pgp/smime)_default_key by default.
      Mark $(pgp/smime)_self_encrypt_as deprecated.  They are now aliases
      for the $(pgp/smime)_default_key config vars.
      Change $(pgp/smime)_self_encrypt default to set.
      The intent is that most users now need only set
      $(pgp/smime)_default_key.  If they have a sign-only key, or have
      separate signing and encryption keys, they can put that in
      $(pgp/smime)_sign_as.  This also enables to default self_encrypt on
      and solve a very common request.
      Thanks to Michele Marcionelli and Vincent Lefèvre for gently pushing
      me towards a solution.
  4. 04 Sep, 2017 1 commit
  5. 29 May, 2017 1 commit
    • Kevin J. McCarthy's avatar
      Add self-encrypt options for PGP and S/MIME. · 54544e6a
      Kevin J. McCarthy authored
      Add $pgp_self_encrypt, $pgp_self_encrypt_as, $smime_self_encrypt,
      $pgp_sign_as and $smime_default_key are inappropriate to use, as they
      specify signing key/certs.  In some cases, this is a different value
      than the encryption key/cert.
  6. 23 Aug, 2016 1 commit
    • Kevin J. McCarthy's avatar
      Remove the $locale configuration variable. · deb6db77
      Kevin J. McCarthy authored
      $locale was only used to set the LC_TIME locale.  Unfortunately, Mutt
      previously defaulted to using "C".  This overrode the user's locale
      setting and forced them to re-specify their locale inside their
      Remove $locale and instead use the locale specified by the
      environment.  Mutt still allows "C locale" dates by using a leading
      "!" in $date_format, ${}, etc.
      Another use of $locale was to customize attribution dates using hooks.
      The next commit will introduce $attribution_locale, which can be used
      for this instead.
      Thanks to Derek Martin for the original patch!
  7. 09 May, 2016 1 commit
    • Derek Martin's avatar
      Change M_* symbols to MUTT_* · 9cafb05c
      Derek Martin authored
      Changeset 23334e967dd7 created a workaround for a namespace conflict
      with Solaris and derivatives.  After some discussion, the team decided
      it would be best to move away from using the "M_" prefix for macros.
      This patch was automatically generated by running:
        perl -wpi -e 's/\bM_(\w+)\b/MUTT_$1/g' `find . -name '*.[ch]' -print`
      with the exception that sys_socket.h was exempted.  (That file will
      be backed out subsequent to this commit.)
      Thanks to Andras Salamon for supplying the perl script used to make
      this change.
  8. 10 Apr, 2016 1 commit
    • Kevin J. McCarthy's avatar
      Fix mutt_protect() when INLINE is set. (closes #3828) · 80e314f2
      Kevin J. McCarthy authored
      The oppenc changes allow security bits to be set even when not
      encrypting or signing (for instance, OPPENCRYPT and INLINE).
      mutt_protect() assumed that if INLINE is set, then either ENCRYPT or
      SIGN must also be set.  Specifically, it would end up inline-signing
      the message even though neither was set.
      Ensure mutt_protect() is a noop if neither SIGN or ENCRYPT are set.
      In ci_send_message(), check for sign or encrypt before calling the
      crypt_get_keys() / mutt_protect() block, and also in the fcc section
      (since clear_content would be NULL if not).
      The second change to the fcc part is somewhat redundant, but better to
      be explicit and avoid the case where the subtype is somehow
      "encrypted" or "signed" even though msg->security wasn't set thus.
  9. 01 Jan, 2016 1 commit
  10. 03 Dec, 2015 1 commit
  11. 02 Dec, 2015 1 commit
    • Kevin J. McCarthy's avatar
      Loosen mutt_signed_handler() protocol value consistency check. (closes #3639) · caf9a8e4
      Kevin J. McCarthy authored
      Apparently, for S/MIME, some MUAs mismatch the protocol value of
      the multipart/signed and the content-type of the signature: putting
      "pkcs7-signature" in one and "x-pkcs7-signature" in the other.
      Change mutt_signed_handler() to independently verify the values of the
      protocol and the content-type.  This still checks for correct values but
      doesn't ensure they match between the two (for S/MIME).
  12. 26 Jul, 2015 1 commit
    • Kevin J. McCarthy's avatar
      Handle malformed ms-exchange pgp-encrypted block. (closes #3742) · 5360d1d5
      Kevin J. McCarthy authored
      In certain circumstances, Exchange corrupts a multipart/encrypted block
          <application/pgp-encrypted> [BASE64-encoded]
          <application/octet-stream> [BASE64-encoded]
      This patch pulls the full detection of valid/invalid multiparts
      into mutt_body_handler().  It extracts a run_decode_and_handler()
      function, which is reused by new intermediate handlers to decode
      the application/octet-stream part before passing it directly to
      crypt_pgp_encrypted_handler.  These intermediate handlers then check
      and set any GOODSIG flags back into the parent part.
      This change may result in less error messages for invalid
      multipart/encrypted parts.  Instead, mutt will default to the
      multipart_handler if it isn't fully "correct".
      Viewing attachments uses crypt_pgp_decrypt_mime() which bypasses the
      handler mechanism.  Add decoding to the decrypt_mime() functions for pgp
      and gpgme.
      Thanks to Vincent Brillault for his analysis and initial patch.
  13. 30 Mar, 2015 6 commits
    • Kevin J. McCarthy's avatar
      Add a security bit to the message for oppenc mode. · 15b61571
      Kevin J. McCarthy authored
      This allows oppenc to be enabled/disabled on a message level.  If
      something initially enables encryption, such as crypt_autoencrypt or
      crypt_replyencrypt, oppenc is turned off for the message.
      Change the postpone/resume code to persist the oppenc bit.
      Also change resend message to enable and invoke oppenc if the option is
    • Kevin J. McCarthy's avatar
      Add the crypt_opportunistic_encrypt option and calls. · 1d72a322
      Kevin J. McCarthy authored
      This patch creates the OPTCRYPTOPPORTUNISTICENCRYPT option and
      It also adds calls to crypt_opportunistic_encrypt() during initial
      message composition, after updating to, cc, or bcc, and after editing
      the message (if edit_headers is enabled).
    • Kevin J. McCarthy's avatar
      Implement crypt_opportunistic_encrypt(). · fb0f9c8b
      Kevin J. McCarthy authored
      This function will be called to flip encryption on and off based on
      message recipients.
    • Kevin J. McCarthy's avatar
      Pull is_numerical_keyid() into crypt.c. · dedb0a6f
      Kevin J. McCarthy authored
      A subsequent patch (re?)-introduces a call to is_numerical_keyid inside
      find_keys().  Rather than duplicate the function, this patch pulls it
      into crypt.c, where find_keys() and pgp_findKeys() can both call it.
    • Kevin J. McCarthy's avatar
      Introduce an oppenc_mode parameter · 4615a829
      Kevin J. McCarthy authored
      It's added to the parameter lists through the call stack down to the
      find_keys calls.
      No functionality is implemented yet.  This patch is separated just to
      keep other patches more readable.
    • Kevin J. McCarthy's avatar
      Refactor the address list generation out of the find_keys routines. · ecbba07c
      Kevin J. McCarthy authored
      All four find_keys routines have a similar set up code for generating a
      single address list out of the to, cc, bcc lists.  This patch pulls all
      the code into crypt_get_keys.
      This is done to simplify the functions before later patches make them
      more complicated (with the oppenc_mode parameter).
  14. 11 Feb, 2015 1 commit
    • Eike Rathke's avatar
      Allow fingerprint user input for key selection. (see #3695) · ccd098b8
      Eike Rathke authored
      Accept and check input of a fingerprint and find the matching key.
      Note that for both to work, match against and display of fingerprint, the
      pgp_list_pubring_command and pgp_list_secring_command need to contain the
      --with-fingerprint option, or have with-fingerprint in ~/.gnupg/gpg.conf.
  15. 09 Jul, 2012 1 commit
  16. 21 Jun, 2009 1 commit
  17. 15 Mar, 2009 1 commit
  18. 04 Jan, 2009 1 commit
    • Brendan Cully's avatar
      Update copyrights. Closes #3016. · ecad84f5
      Brendan Cully authored
      I went through the logs of each file with a copyright header and
      updated the years for the authors in the headers for any non-comment
      changes they introduced. What a pain!
  19. 17 Dec, 2008 1 commit
  20. 24 Feb, 2007 1 commit
  21. 08 Jun, 2006 1 commit
  22. 16 Dec, 2005 1 commit
  23. 21 Oct, 2005 1 commit
  24. 17 Sep, 2005 2 commits
  25. 11 Aug, 2005 1 commit
  26. 24 Jun, 2005 1 commit
  27. 05 Mar, 2005 1 commit
  28. 03 Feb, 2005 1 commit
  29. 17 Jun, 2004 1 commit
    • Moritz Schulte's avatar
      This is the sequel to the crypto modularization changes I did on · e48dd50a
      Moritz Schulte authored
      2003-01-21.  Moritz added another abstraction layer which cleans up
      the code and allows the crypto modules to use their own option menu.
      Everything should work as it used to but is now in a really good
      shape for part III, the Return of the GnuPG Easy Makers. -wk
      * crypt-mod-pgp-classic.c, crypt-mod-smime-classic.c, crypt-mod.c,
      crypt-mod.h: New files.
      * smime.c (smime_valid_passphrase, smime_send_menu): New functions.
      * smime.h: Removed macro: smime_valid_passphrase.
      Declared: smime_valid_passphrase, smime_send_menu.
      * pgp.c: Include "mutt_menu.h".
      (pgp_valid_passphrase, pgp_send_menu): New functions.
      * pgp.h: Removed macro: pgp_valid_passphrase.
      Declared: pgp_valid_passphrase, pgp_send_menu.
      * mutt_curses.h: Declare: mutt_need_hard_redraw.
      * mutt_crypt.h: Declare: crypt_pgp_valid_passphrase,
      crypt_pgp_send_menu, crypt_smime_valid_passphrase,
      crypt_smime_send_menu, crypt_init.
      Adjust WithCrypto definition since the GPGME backend does not
      exclude anymore the other `classic' backends.
      (KEYFLAG_ISX509): New symbol.
      * mutt.h (enum): New symbol: OPTCRYPTUSEGPGME.
      (struct body): New member: is_signed_data, warnsig.
      * main.c (main): Call crypt_init.
      * keymap.c (km_get_table): Support for MENU_KEY_SELECT_PGP and
      (Menus): Added entries fuer MENU_KEY_SELECT_PGP and
      (km_init): Create bindings for MENU_KEY_SELECT_PGP and
      * keymap.h (enum): New enum symbols: MENU_KEY_SELECT_PGP,
      * init.h: New configuration variable: crypt_use_gpgme.
      * compose.c (pgp_send_menu, smime_send_menu): Removed functions,
      they are now contained in the crypto backend modules.
      (mutt_compose_menu): Use crypt_pgp_send_menu and
      crypt_smime_send_menu instead pgp_send_menu and smime_send_menu.
      * cryptglue.c: Slightly rewritten in order to make use of the
      module mechanism used to access crypto backends.
      * curs_lib.c (mutt_need_hard_redraw): New function.
      * crypt.c (crypt_forget_passphrase): Adjust for new crypto backend
      (crypt_valid_passphrase): Stripped, use calls to
      crypt_pgp_valid_passphrase and crypt_smime_valid_passphrase.
  30. 13 Apr, 2004 1 commit
  31. 12 Apr, 2004 1 commit
  32. 12 Jan, 2004 1 commit
  33. 30 Dec, 2003 1 commit
  34. 17 Dec, 2003 1 commit