Revision history and release notes for Mail::GPG.

1.0.13 Tue Feb 13, 2018, joern
    - This is a CPAN testers TRIAL release which uses
      AnyEvent again, but forces the EV loop implementation.
      After some discussion on and a report
      from Nick Tonkin (thanks Nick) this seems to solve
      the issues with the AnyEvent implementation. From
      my own tests I found that at leat the "Event"
      module needs to be avoided, because the test suite
      gets stucked when it is used. So forcing EV seems
      to be a good solution here. So let's see what the
      CPAN testers will report.
    - I am aware of problems with newer gpg versions. But
      these are out of the scope of Mail::GPG and have to
      be adressed by GnuPG::Interface. If you suffer from
      this, please contact the author or create a GitHub

1.0.12 Mon Feb 12, 2018, joern
    - Reverted 1.0.11 changes to I/O multiplexing and
      put back IO::Select implementation. Event/AnyEvent
      method dropped completely due to bad results on
      CPAN testing and reports of a blocking test suite.
      Tuned IO::Select for better performance on big
      message bodies.

1.0.11 Sat Aug 26, 2017, joern
    - Fixed I/O issue on (specific) bigger message bodies.
      Thanks for report and test material to Markus Wernig
      and Frank Fichtner.

      Mail::GPG now depends on AnyEvent for I/O with GnuPG.
      The alternative IO::Select based implementation (in
      case no Event is installed) was dropped.

    - Tests now use "./mail-gpg-test" temp dir instead
      of /tmp/mail-gpg-test, which could cause issues
      when tests are executed with different users on
      the same machine.

1.0.10 Sat Sep 19, 2015, joern
    - Fixed incorrect and potentially insecure UTF8 handling.
      Thanks for the report to Juerd Waalboer <juerd AT>.

1.0.9 Mon May 18, 2015, joern
    - Fixed unneeded usage of // operator in test suite
      which is not available with Perl 5.8 (thanks to
      cpantesters :)

1.0.8 Sat May 16, 2015, joern
    - Added support for GnuPG 2.x by applying patch from
      Perlbotics (Thanks!) fixing RT103828, RT81082, and
    - Mail::GPG->query_keyring() has new 'coerce' option
      which gives full control about multiple email addresses
      per user (refer to manpage for details).

1.0.7 Wed Aug 3, 2011, joern
    - Added support for empty passphrases. Thanks for the patch
      to hlein AT korelogic DOT com.
    - Improved gpg I/O performance and prevent rare blocking
      cases by using the Event module (if installed).
      Note: you can force the old IO::Select based algorithm
            by setting $Mail::GPG::SKIP_EVENT = 1 or
            $ENV{MAIL_GPG_SKIP_EVENT} = 1 before loading

1.0.6 Sat Nov 18, 2006, joern
    - Mail::GPG->parse() missed setting MIME::Parser->output_to_core(1)
      so temporary files were left. Thanks for the hint to
      David Morel <david.morel AT>. As well changed
      the test suite to make use of Mail::GPG->parse().

1.0.5 Sun Nov 12, 2006, joern
    - Applied a patch from Alwin Stolk <pastolk AT>
      which increases message decryption performance for big
      mail bodies.
    - Fixed POD typo. Thanks to Edward J. Sabol for the hint.

1.0.4 Fri Apr 14, 2006, joern
    - Report signer's key fingerprint with get_sign_fingerprint()
      of Mail::GPG::Result. Requested by Peter Conrad <conrad AT>.
    - Report multiple encryption recipients with the new methods
      get_enc_key_ids() and get_enc_mails() of Mail::GPG::Result.
    - Switch key id reporting from 32 to 64 bit length with
      the Mail::GPG attribute use_long_key_ids.
    - Suppress warnings from GnuPG::Interface about unknown recored
      type 'tru', making my patch at least in conjunction with
      Mail::GPG obsolete. The maintainer of GnuPG::Interface
      obviously isn't interested in new releases of his module :(.
    - Don't rely on gnupg's exit code anywhere but inspect
      its status fd output only. Thanks for the hint to
      Peter Conrad.

1.0.3 Fri Dec 22, 2005, joern
    - No code changes, just removed MIME-tools patches from the
      distribution because the official MIME-tools 5.419 package
      now contains them.
    - That's why Mail::GPG instists on MIME-tools 5.419 from now on.
    - Removed all pointers to the MIME-tools patch from the

1.0.2 Sat Dec 17, 2005, joern
    - Added a patch against MIME-tools 5.418, which hopefully
      gets into the official distribution soon. Thanks to
      Edward J. Sabol who helped me to get this patch right.

    - Fixed a (potential) bug with Mail::GPG->get_key_trust(),
      which was reported and debugged by Edward J. Sabol, but
      couldn't be reproduced on my system. However the fix
      is harmless, so I added it.

1.0.1 Sun Dec 5, 2004, joern
    - New methods requested by Kjetil Kjernsmo <kjetil AT>
      - Mail::GPG->is_signed_quick()
      - Mail::GPG->get_key_trust()
      - Mail::GPG::Result->get_sign_trust()
      - Mail::GPG::Result->get_enc_trust()
    - A patch for GnuPG::Interface 0.33 fixing a (harmless but
      annoying ;) warning about unknown record types on keyring
      inspection with newer GnuPG versions.

1.0.0 Sat Nov 20, 2004, joern
    - New parse() convenience method for parsing a mail message.
      It uses MIME::Parser and distinguish between MIME and
      non-MIME messages, doing the right thing regarding reading
      decoded or encoded bodies.

    - decrypt(): used encoded entity instead of decoded in case
      of a MIME message. Thanks for the report to Paul Murphy
      <pmurphy AT>.

0.98 Sun Jun 27, 2004, joern
    - Mail::GPG->decrypt() died on encrypted+signed mails for
      which the public key was missing (and thus no verification
      possible). That's not what we expect, instead we can check
      the verification through the returned result object but
      have a successfully decrypted mail.

0.97 Tue Jun 15, 2004, joern
    - Mail::GPG::Result->as_string() reported some warnings
      regarding uninitialized values. Thanks to Edward J. Sabol
      <sabol AT> for his patch.
    - mgpg-test script now has the -w switch

0.96 Sat May 29, 2004, joern
    - Added missing dependency GnuPG::Interface in Makefile.PL
      Reported through cpan-testers.

0.95 Sat May 29, 2004, joern
    - query_keyring() now returns all matching entries as a
      list of key-id/address pairs, which can be slurped
      into a hash. The old behaviour is still warranted, so
      this extension is backward compatible.
    - The signer's aliases are now reported with the new
      sign_mail_aliases attribute of Mail::GPG::Result. Thanks
      for the suggestion to Piotr Maj <ant AT>.

    - Some methods failed on systems with non-english
      locales. Thanks to Daniel Ciaglia <daniel AT>
      and Piotr Maj for their reports.
    - Not a fix in Mail::GPG but in MIME-tools: some mail
      user agents (like mutt and sylpheed) add an empty line
      as a preamble before the first part of a MIME signed
      mail, if the message itself has attachments. MIME-tools
      suppress this line on output, so the signature gets
      invalid. Mail::GPG ships with a new patch to MIME-tools
      5.411 which fixes this problem. Thanks for the report
      to Daniel Ciaglia.

0.94 Sun Feb 15, 2004, joern
    - New I/O multiplex code needed some adjustments to
      work with Perl 5.005_03, because its read() and seek()
      functions work on native filehandles only.

0.93 Sat Feb 14 2004, joern
    - Perform multiplexed I/O with gpg to prevent buffering
      deadlocks which may occur with huge amounts of data.
      Added a new test t/04.big.t, which creates a 4 MB
      entity and signs it. This test takes some time (on
      an Athlon 1800XP about 20 seconds), so be patient ;)
    - Set LC_MESSAGES=C where output of gpg is parsed to
      get status information. Without this some Mail::GPG
      methods didn't work on systems with non english locales.

0.92 Fri Feb 13 2004, joern
    - make test failed on systems without the MIME-tools
      patch, although the corresponding tests were skipped.

0.91 Wed Feb 11 2004, joern
    - mime_sign_encrypt: check key_id only if entity should
      be signed
    - Ignore SIGPIPE from gpg

0.90 Sun Feb 8 2004 joern
    First public release, including the following methods:
    - mime_sign
    - mime_encrypt
    - mime_sign_encrypt
    - armor_sign
    - armor_encrypt
    - armor_sign_encrypt
    - decrypt
    - verify
    - is_encrypted
    - is_signed
    - query_keyring
    - get_decrypt_key