195 lines
7.1 KiB
ReStructuredText
195 lines
7.1 KiB
ReStructuredText
:tocdepth: 2
|
|
|
|
*********
|
|
Changelog
|
|
*********
|
|
|
|
v0.4.0
|
|
======
|
|
|
|
Released: |today|
|
|
|
|
Bugs Fixed
|
|
----------
|
|
* Armorable.from_blob was incorrectly not accepting bytes objects; this has been fixed (#140)
|
|
* Fixed an issue where string-formatting PGPUID objects would sometimes raise an exception (#142)
|
|
* Occasionally, the ASN.1 encoding of DSA signatures was being built in a way that although GPG could parse and verify them,
|
|
it was incorrect, and PGPy incorrectly failed to verify them. (#143)
|
|
* Fixed an issue where keys with expiration dates set would have the wrong value returned from the ``key.is_expired`` property (#151)
|
|
* Fixed an issue where PGPy would try to incorrectly coerce non-ASCII-compatible characters to ASCII-compatible bytes, potentially resulting in mojibake. (#154)
|
|
|
|
New Features
|
|
------------
|
|
* ECDSA and ECDH keys can now be loaded (#109, #110)
|
|
* Keys can be generated with the following algorithms:
|
|
|
|
- RSA
|
|
- DSA
|
|
- ECDSA
|
|
- ECDH
|
|
|
|
* Keys can now be passphrase-protected. It is also possible to change the passphrase on a key that is already protected. (#149)
|
|
* ECDSA keys can now be used to sign and verify (#111)
|
|
* ECDH keys can now be used to encrypt and decrypt
|
|
* It is now possible to recover a public key from a private key (#92)
|
|
* Marker packets are now understood
|
|
|
|
Other Changes
|
|
-------------
|
|
* Removed support for Python 3.2, as multiple dependency libraries have already done so
|
|
* Added explicit support for Python 3.5
|
|
* Updated library dependencies where required or useful
|
|
* Reworked some IO-intensive routines to be less IO-intensive, and therefore faster
|
|
|
|
v0.3.0
|
|
======
|
|
|
|
Released: November 19, 2014
|
|
|
|
PGPy v0.3.0 is a major feature release.
|
|
|
|
.. warning::
|
|
The API changed significantly in this version. It is likely that anything using a previous version will need to be
|
|
updated to work correctly with PGPy 0.3.0 or later.
|
|
|
|
Bugs Fixed
|
|
----------
|
|
* When keys are exported, any certification signatures that are marked as being non-exportable are now skipped (#101)
|
|
* When the wrong key is used to validate a signature, the error message in the raised exception
|
|
now makes that clear (#106)
|
|
|
|
New Features
|
|
------------
|
|
* Standalone sigantures can now be generated
|
|
* Can now specify which User ID to use when signing things (#121)
|
|
* Can now create new User IDs and User Attributes (#118)
|
|
* Can now add new User IDs and User Attributes to keys (#119)
|
|
* Timestamp signatures can now be generated
|
|
* Can now sign keys, user ids, and user attributes (#104)
|
|
* Can now create new PGPMessages (#114)
|
|
* Key flags are now respected by PGPKey objects (#99)
|
|
* Multiple signatures can now be validated at once in cases where that makes sense, such as when validating
|
|
self-signatures on keys/user ids (#120)
|
|
* Message signatures can now be verified (#117)
|
|
* Messages can now be encrypted/decrypted using a passphrase (#113)
|
|
* Cleartext messages can now be created and signed (#26)
|
|
* Cleartext messages with inline sigantures can now be verified (#27)
|
|
* Messages can now be loaded (#102)
|
|
* Messages can now be compressed (#100)
|
|
|
|
Other Changes
|
|
-------------
|
|
* CRC24 computation is now much faster than previous versions (#68)
|
|
* PGPKey and PGPKeyring APIs have changed significantly (#76)
|
|
* String2Key computation is now much faster than previous versions (#94)
|
|
* key material parts are now stored as integers (or ``long`` on Python 2.x) (#94)
|
|
|
|
v0.2.3
|
|
======
|
|
|
|
Released: July 31, 2014
|
|
|
|
PGPy v0.2.3 is a bugfix release
|
|
|
|
Bugs Fixed
|
|
----------
|
|
* Fixed an issue where explicitly selecting a key and then trying to validate with it would erroneously raise an exception as though the wrong key were selected.
|
|
|
|
v0.2.2
|
|
======
|
|
|
|
Released: July 31, 2014
|
|
|
|
PGPy v0.2.2 is primarily a bugfix release.
|
|
|
|
Bugs Fixed
|
|
----------
|
|
* Fixed a typo that would cause TypeError to be raised as bytecode was being generated (#85)
|
|
* Fixed an issue where unicode input on Python 2.7 could result in unexpected UnicodeDecodeError exceptions being raised
|
|
|
|
New Features
|
|
------------
|
|
* Switched the main parse loop to use a bytearray instead of slicing a bytes, resulting in a ~160x speedup in parsing large blocks of pasing. (#87)
|
|
|
|
v0.2.1
|
|
======
|
|
|
|
Released: July 31, 2014
|
|
|
|
PGPy v0.2.1 is primarily a bugfix release.
|
|
|
|
Bugs Fixed
|
|
----------
|
|
|
|
* Critical bit on signature subpackets was being ignored, and when set, causing a ValueError to be raised when trying to parse it.
|
|
The critical bit is now being parsed and masked out correctly. (#81)
|
|
* No longer raises exceptions on unrecognized subpackets; instead, it now treats them as opaque.
|
|
* No longer raises exceptions on unrecognized packets; instead, it now treats them as opaque.
|
|
This also applies to signature and key packets with versions other than v4.
|
|
* Fixed an issue where a User ID packet that lacked both a comment and an email address was failing to be found by the uid regex in KeyCollection.
|
|
* Fixed an issue where an old-format packet header with a length_type set longer than needed was resulting in the packet getting truncated.
|
|
* Fixed an issue where parsing a subpacket with a 2-byte length was erroneously being parsed as a 5-byte length.
|
|
* Fixed an issue where parsing a subpacket with a 5-byte length where the value was < 8434 was causing an error
|
|
* Fixed an issue where a packet or subpacket reporting a value marked reserved in RFC 4880 would cause ValueError to be raised during parsing.
|
|
* Key material marked as public key algorithm 20 (Reserved - Formerly ElGamal Encrypt or Sign) is now parsed as ElGamal key material.
|
|
* Fixed an issue where parsing a new-format packet header length where the first octet was 223 was erroneously reported as being malformed.
|
|
|
|
New Features
|
|
------------
|
|
* Added support for parsing the 'Preferred Key Server' signature subpacket
|
|
* Added support for loading unsupported or unrecognized signature subpackets.
|
|
* Added support for loading unsupported or unrecognized packets.
|
|
|
|
v0.2.0
|
|
======
|
|
|
|
Released: July 20, 2014
|
|
|
|
Starting with v0.2.0, PGPy is now using the BSD 3-Clause license. v0.1.0 used the MIT license.
|
|
|
|
New Features
|
|
------------
|
|
|
|
* Subkeys can now be accessed and used for actions supported by PGPKeyring (#67)
|
|
* DSA:
|
|
|
|
- Signing of binary documents now works (#16)
|
|
- Verification of signatures of binary documents now works (#15)
|
|
|
|
* Can now decrypt secret key material that was encrypted using:
|
|
|
|
- Camellia128 (#36)
|
|
- Camellia192 (#37)
|
|
- Camellia256 (#38)
|
|
- AES128 (#32)
|
|
- AES192 (#33)
|
|
- AES256 (#34)
|
|
- Blowfish (#31)
|
|
- Triple-DES (#30)
|
|
- IDEA (#29)
|
|
|
|
* PGP packets generated by PGPy now exclusively use new-style header lengths (#47)
|
|
* GPG Trust Packets are now understood and fully parsed (#14)
|
|
* Lots more packet types are now fully parsed
|
|
|
|
Known Issues
|
|
------------
|
|
|
|
* Signing with 1024-bit DSA keys does not work with OpenSSL 0.9.8 (#48) - this primarily affects Mac OS X.
|
|
* Verifying signatures signed with any DSA key length other than 2048-bits does not work with OpenSSL 0.9.8 -
|
|
this primarily affects Mac OS X.
|
|
|
|
Bugs Fixed
|
|
----------
|
|
|
|
* PGP blocks loaded from ASCII armored blocks now retain their ASCII headers (#54)
|
|
* PGP new-style packet headers were not being properly parsed in all cases
|
|
* Many unit test enhancements
|
|
|
|
v0.1.0
|
|
======
|
|
|
|
Released: May 02, 2014
|
|
|
|
* Initial release.
|