- added missing OIDs for EllipticCurveOID enum members
- expanded test of expected key generation failures to test all ECC OIDs that aren't implemented yet
- some minor code cleanups
- Additional code needed to generate ECDH keys also added
- Encrypt/decrypt using ECDH also works
- Added some code to the test harness to start making it work with gpg 2.1
- Fixed key generation tests to test generating keys using all possible algorithms
- Updated documentation sources to reflect these changes
value must be constrained to the range
0-255 inclusive
- reversed six.PY2/3 checks so six.PY2 is the special case
- singledispatch import now tries the one in functools if singledispatch is not installed
- Added ECDSA signing and verification - closes#111
- ECDSA key generation is also supported
- refactored some of the signing/verification machinery to simplify code in PGPKey._sign and PGPKey.verify
- fixed a bug with Signature subpacket ByteFlags where the byte output was not being properly null-padded to the length of the subpacket when necessary, which led to the potential for key outputs that would fail to parse properly if update_hlen was not called (which is silly)
- fixed string formatting UserID packets when the comment and/or email address are missing - closes#142
- implemented OpaquePubKey and OpaquePrivKey so that keys using unimplemented formats can still be loaded without error, even if they can't be used
- enabled initial key action testing using ecc.1.pub.asc and ecc.1.sec.asc (which also required copying the two signatures from ecc.1.pub.asc to ecc.1.sec.asc)
- improved test output for some tests with auto-ids that were formed in an unfortunate manner
- modified tox.ini so that py32 can continue to be tested even though cryptography no longer supports it
- Key Generation - #147 :
- implemented new API method
- added unit tests for generating keys, adding user ids, and adding new subkeys
- added unit tests to test basic expected exception raising when trying to use incomplete keys
- added a very basic key-completeness test to the @KeyAction decorator
- added __contains__ to SignatureVerification
- Forced ByteFlag subpackets to take/return sets now instead of lists
- removed some properties from PGPKey
- added new classmethod `from_blob` to Armorable
- made some modifications to the unit tests to work with this stuff
Moved session key generator method to constants.gen_key, to facilitate encrypting messages with multiple decryption methods (e.g. several recipients private keys, or multiple passwords)
- Filled out EmbeddedSignature finally
- Added EmbeddedSignatureHeader since Embeded Signatures don't have a tag or a length, just a version
- Fixed a logic error in SubPackets.__contains__
- Added tag class bases to *Key classes
- Added a PacketTag enum
- Shortened the names of the certification signature types in SignatureType
- Expanded PGPSignature.prefs into separate methods
- Added unit tests for PGPKey (for an rsa public key and an rsa private key)
- This also brings us one step away from completing #76 and #71
- Sped up String2Key.derive_key significantly by doing math instead of a dumb loop
- Implemented {Pub,Priv}{,Sub}KeyV4
- Moved implementation of key decryption to Priv{RSA,DSA,ElG}
- Added series of unit tests to test parsing many types of String-To-Key data
- Added new unit test to test decrypting encrypted key material
- Copied some encrypted private keys from the old test material into the new test material set for testing the decryption of encrypted secret key material
- Minor code organization changes to prevent stupid circular import problems
- now explicitly decoding to latin-1 when trying to decode strings
- Issuer payload is now forced to 8 octets in length
- moved the cool docstring for Header.parse that I made a long time ago 'cause I like it, into the new Header.parse
- commented out ElGSignature for the time being
- finished SignatureV4(VersionedPacket)
- removed some commented lines that no longer needed to be kept around
- added some reserved constants to HashAlgorithm
- added Unknown to KeyServerPreferences; made it an IntEnum