The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
$Id: Changes,v 1.36 2001/07/30 05:38:46 btrott Exp $

Revision history for Crypt::OpenPGP

0.12  2001.07.29
    - Added support for clear-text signatures, both creating (Clearsign
      param to 'sign') and verifying (transparent support).
    - For the time being Makefile.PL will not give a choice of
      public key algorithms; you will have to install support for
      both DSA and RSA. This will last until the test suite has been
      reworked to auto-detect which module is installed and run the
      tests with the appropriate key types.

0.11  2001.07.29
    - Added support for symmetric-key encrypted session key packets,
      which means that Crypt::OpenPGP now supports "conventional"
      encryption of data, in addition to the public-key encryption that
      was already supported.
    - Added KeyRing::find_keyblock_by_uid to find a keyblock in a keyring
      given a user id (or part of a user id).
    - KeyRing::find_keyblock_by_keyid now caches keyblocks/certs that
      it has found, so for any given key ID it only needs to look up
      that key ID once, then the block will be cached.
    - Added tests for Digest factory objects (t/07-digest.t).
    - Added tests for mod_exp and mod_inverse in t/01-util.t.
    - Added docs for all main classes/modules.
    - Fix Compat settings for PGP5, 3DES => DES3. Thanks to Vipul
      for the spot and patch.

0.10  2001.07.27
    - Added Compat flag to encrypt and sign, added docs. Thanks to
      Vipul for the idea.
    - Added support for Twofish and Rijndael ciphers (128-, 192-, and
      256-bit keys for Rijndael).
    - Added support for RIPE-MD/160 digest algorithm.
    - Added Digest param to Crypt::OpenPGP::sign to specify message
      digest algorithm.
    - Changed semantics of Compress param to Crypt::OpenPGP::encrypt;
      it is no longer a simple flag but now the name of a compression
      algorithm (Zlib or ZIP).
    - Ciphertext::init and Ciphertext::decrypt were making assumptions
      about cipher blocksizes; they were using a fixed sync padding of
      8 bytes, rather than adjusting based on the blocksize. Now fixed.
    - Cipher::key_len => Cipher::keysize.
    - Added t/06-cipher.t, test all installed cipher packages.

0.09  2001.07.27
    - Fixed incompatibility with PGP2: PGP2 expects packets of certain
      types to have certain header len sizes, no matter the actual len
      of the data. eg. all Signature packets have to have 2 len bytes,
      even if the data is < 255 bytes long and the len would fit in
      1 len byte. So to be compatible we need to let the object set
      the number of len bytes, if it wants to.
    - Plaintext packets generated in encrypt and sign will now have
      the proper 'filename' attribute set, if the Filename param was
      passed to the respective method.
    - Crypt::OpenPGP::verify now handles compressed signature packets
      properly.
    - Version 3 signatures now default to MD5 digests for compatibility
      with PGP2.
    - Added tests for Crypt::OpenPGP::PacketFactory (t/05-packets.t).

0.08  2001.07.26
    - Fixed DEK encoding on encrypted session keys; the padding size
      was incorrect, which meant that PGP5 could not recognize it
      as a valid encoding.
    - Added support for compressed data packets for encryption and
      decryption. 'Compress' param controls compression when
      encrypting, and compressed packets will be automatically
      decompressed when decrypting.
    - Detect and skip Marker packets in encrypted messages.
    - Force generated RSA keys to be version 3 for compatibility with
      PGP5, which automatically assumes that all RSA keys are version
      3.
    - Detect pubring.pkr and secring.skr files, thanks to Vipul for
      the spot and patch (reworked).
    - Fix Armour so that armoured lines are max 64 columns. Add test
      for this case. Thanks to Vipul for spot and patch (reworked
      slightly).
    - Fix misc. warnings. Thanks to Vipul for spot and patch.
    - Fix PacketFactory so that it doesn't enter deep recursion when
      looking for specific packet types. Thanks to Vipul for the spot.
    - Fix PARI error Util::mp2bin by casting 4*8 to PARI. Thanks to
      Vipul for the spot and patch.

0.07  2001.07.26
    - Added key generation, in low-end Key etc. modules and in
      high-level Crypt::OpenPGP frontend, which returns two
      keyblocks.
    - Added Certificate->lock to encrypt secret key data.
    - Applied Vipul's patch to fix warnings about GNUPGHOME
      and to add pubring.pkr and secring.skr. Thanks to Vipul.

0.06  2001.07.25
    - Fixed bug in SessionKey::_decode with using ciphers with
      keys != 16 bytes. This caused incorrect checksums on the
      key data.
    - 3DES is now the default cipher (not Blowfish).
    - Armoured keyrings (eg. PGP PUBLIC KEY BLOCK strings) are
      now automatically unarmoured in Crypt::OpenPGP::KeyRing.
    - Added docs for Crypt::OpenPGP, ie. the high-level DWIM
      interface to the rest of the system.
    - Improved speed of octet-string => integer and vice versa
      operations. Crypt::OpenPGP::Util::bin2mp is now 3 times
      faster than in the last release, and mp2bin is almost
      twice as fast. Added lots more tests for these functions
      (in 01-util.t).
    - Changed Certificate->decrypt to Certificate->unlock.

0.05  2001.07.23
    - Started test suite: currently it tests high-level OpenPGP
      interface using keyrings from GnuPG.
    - Rewrote CFB implementation (now faster).
    - Improved installation process (ask questions, check for
      required modules, etc.).

0.04  2001.07.22
    - Added support RSA signing and verification.
    - Added support for ElGamal encryption/decryption.
    - Added second arg to Crypt::OpenPGP::PacketFactory::parse that
      allows finding only specific packet types; unspecified packet
      types are not even parsed (save the header).
    - Added Crypt::OpenPGP::KeyRing::find_keyblock_by_keyid, which
      looks up a keyblock by key ID, without requiring the entire
      keyring to be parsed (just key certificates).
    - Changed Crypt::OpenPGP methods to use find_keyblock_by_keyid
      instead of reading in entire keyring.

0.03  2001.07.20
    - Fixed bug in un-armouring where checksum would not be picked up
      properly if base64-encoded data had '=' at the end.
    - Improved first crack at CRC24 implementation by using lookup
      tables. This helps a lot.

0.02  2001.07.20
    - Added armouring in Crypt::OpenPGP::Armour.
    - Added high-level DWIM interface to Crypt::OpenPGP.
    - Now generate fingerprint on version 4 key certificates while
      reading in key; since we already have the serialized data, we
      can just generate the fingerprint using that data, rather than
      having to serialize to get the key ID.

0.01  2001.07.19
    - Initial version.