Crypt-OpenPGP
view release on metacpan or search on metacpan
more PGP messages/signatures.
- Fixed a nasty, evil, stupid compatibility bug with canonical text.
Namely, pgp2 and pgp5 do not trim trailing whitespace from "canonical
text" signatures, only from cleartext signatures. This was causing
invalid signatures which should not have been invalid. Thanks to
Erik Arneson for the spot.
- Added Crypt::OpenPGP::KeyServer, which does lookups against an HKP
keyserver.
1.00 2002-02-26
- CAST5 is now supported thanks to Crypt::CAST5_PP from Bob Mathews.
- bin/pgplet now supports encrypting and decrypting symmetrically-
encrypted messages.
- The PassphraseCallback argument to Crypt::OpenPGP::decrypt can now
be used to supply a callback for symmetrically-encrypted packets,
as well as public-key-encrypted packets.
- Fix a bug with encrypted, signed text--the signature was being
armoured, which led to errors from the process trying to decrypt and
verify.
- Fix a bug with symmetric-encrypted session keys w/r/t generation for
PGP2--PGP2 doesn't understand symmetric-encrypted session keys, so we
need to leave them out when Compat is PGP2. Also, we need to use the
'Simple' S2k rather than the default, 'Salt_Iter'.
- Fix a key generation bug where GnuPG will not import generated public
keys, because the self-signature is invalid; signature needs to be on
key data *and* user ID. Thanks to Joel Rowles for the spot.
- Fix bug in ElGamal encryption and k generation.
0.18 2002-01-29
- Added IsPacketStream parameter to Crypt::OpenPGP::Message; this turns
off armour detection when initializing the message, and can be used
when you *know* that the message is a stream of packets, and not an
ASCII-armoured stream of packets.
- When unarmouring, remove \r characters from the armoured text end
of lines.
- Added Crypt::OpenPGP::KeyRing::save method. Thanks to Ben Xain for
the idea and a patch.
- Added compatibility with symmetric-key-encrypted files that do not
have a symmetric-key session key packet. The assumption with these
encrypted messages is that they are PGP2-encrypted, using the IDEA
cipher, MD5 digests, and a Simple s2k. So that is how the fix has
been implemented. Thanks to Ben Xain for the bug report.
- Win32 fixes: use binmode when reading files that might be binary.
- Added --symmetric and --digest options to Makefile.PL to set
symmetric and digest algorithms when using --sdk.
- Fixed subkey IDs in list-keys with bin/pgplet.
- Check for errors when reading keyring.
0.17 2001-09-15
- Added Crypt::OpenPGP::Config to hold per-instance configuration
information, either specified through the constructor, or set
in a config file. Reads from existing PGP/GnuPG config files.
- Added --compat arg to bin/pgplet for demonstration of usage of
Compat flag to constructor, which then gets propagated down to
methods, selects keyrings, etc.
- Made keyring selection based on compatibility mode, if given.
- Automatically read in appropriate config file if Compat flag
given.
- Added tests for encrypting/decrypting block of text to t/06-cipher.t.
- Added --sdk option to Makefile.PL to bypass interactive prompts.
- Removed Crypt::DES_EDE3 from this distribution, moved into its own
distribution.
0.16 2001-08-15
- Took stupid extraneous files out of lib. Ick.
0.15 2001-08-15
- Added bin/pgplet as an example of Crypt::OpenPGP usage.
- Added PassphraseCallback parameter to Crypt::OpenPGP::decrypt
and Crypt::OpenPGP::sign; this callback will be invoked when a
passphrase to unlock the secret key is not provided, but is needed.
Allows more flexibility etc.
- Added RecipientsCallback parameter to Crypt::OpenPGP::encrypt;
this callback will be invoked after recipients have been mapped
to public keys, and allows review/modification of that key list.
- Crypt::OpenPGP::decrypt will now look through all encrypted
session key packets until it finds one for which we have a
secret key. Once it finds that known key, it uses that key to
decrypt the message.
- Added Recipients param to Crypt::OpenPGP::encrypt, accepts either
key IDs or user IDs. Deprecated usage of KeyID.
- Fixed bug in Certificate::fingerprint with version 3 keys. Was
concatenating integers when should have been concatenating octet
string representations.
- Added Crypt::OpenPGP::Words, which encodes octet/hex strings into
lists of English words. Thanks to Mike Dillon for sending me his
PGPWords.pm, which this module is based on.
- Added Certificate::fingerprint_words and fingerprint_hex. The
former uses Crypt::OpenPGP::Words to encode the fingerprint into a
list of English words; the latter returns the fingerprint as a
string of hex digits.
- Added KeyRing::find_keyblock_by_index, which, given an index into
a list of keyblocks, returns the keyblock at that index. Thanks to
Vipul for the idea.
- Crypt::OpenPGP::Message interface changed: instead of passing
params to read, now pass params to new, and read is called
automatically. Then call pieces to get pieces of message. This
should not affect anyone, unless you were directly accessing
the $msg->{pieces} member, for lack of a better interface :).
- Added Key param to Crypt::OpenPGP::decrypt and Crypt::OpenPGP::verify;
Key should be a Certificate object. This has the effect of bypassing
the keyring lookup and might be useful for decrypting using a key
deserialized from some external source (network, database, etc.).
Thanks to Vipul for the idea.
0.14 2001-08-09
- Crypt::OpenPGP::CFB now works in both standard and PGP-variant
mode (where PGP-variant is the slightly strange mode with the
resyncs). Support added via a 'sync' method to manually resync.
- Added support for encrypted-MDC packets, a more secure variant
on standard encrypted data packets. Encrypted-MDC packets are
followed by a SHA-1 hash of the plaintext so that modifications
to the ciphertext can be detected.
- Added support for writing version-4 packet headers to
Crypt::OpenPGP::PacketFactory.
- Added signing capabilities to Crypt::OpenPGP::encrypt, and
verification to Crypt::OpenPGP::decrypt. This lets you create
encrypted & signed messages, as well as decrypt & verify such
messages. For this purpose, SignKeyID and SignPassphrase have
been added as params to 'encrypt'.
- KeyRing::find_keyblock_by_keyid changed behavior of return value
( run in 2.334 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )