Slightly reorganized the default imports in pgpy/__init__.py
First pass at updating the ascii_unarmor regex to support cleartext signatures - #102, #27, #28
Added pypy3 to the test matrix as an allowed failure
- Added stub classes for Symmetric-Key Encrypted Session Key v4 packets, One-Pass Signature v4 packets, Symmetric-Key Encrypted Data packets, Marker packets, Symmetric-Key Encrypted and Integrity Protected Data v1 packets, and Modification Detection Code packets
- Updated PGPKeyring a bit; now returns a list of unique fingerprints loaded by PPGKeyring.load and PGPKeyring.fingerprints
- Added a shortcut property to PrivKeyV4 that returns True if the secret key material is encrypted, otherwise False
- Fixed a small parsing bug in Opaque(Packet) that parsed incorrect lengths on versioned packets. This was previously dead code, so it would not have appeared before adding the versioned packet stubs.
- fixed a typo in UserID packet regex that was causing it to capture well-formatted comments as part of the name
- changed _signature fields for PGPKey and PGPUID to deques
- moved is_ascii and is_path into FileLoader as staticmethods
- fixed comment0 header in pubtest.asc
- changed Fingerprint.__hash__ to return the hash of the fingerprint without any spaces
- partially added first unit test for PGPKeyring
incremental update to test_reg_bug_56 to begin transitioning into using PGPKey and PGPSignature instead of directly using the packets and TempExportableSig
added stub property __key__ to PGPKey
[skip ci]
- 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
- Two property methods are not yet because I don't have test data for them yet
- Added __sig__ method to Signature(MPIs). DSASignature.__sig__ outputs in (hopefully) correct ASN.1 DER format
- Removed keyfields.py finally
- Changed expiration subpacket payloads to timedelta objects (as they should have been already)
- Changed SignatureV4.hleft to SignatureV4.hash2 for consistency
- Added unit test harness for basic loading of PGP blocks
- Added unit test harness for loading/testing signature blocks
- Added unit test stub for (eventual) loading/testing key blocks
- store key parts as integers #94
- private MPI classes now also store the public key fields - #92
- do the work to set up the Cryptography public/private key objects. Private key field objects can also return public key objects, so this is part of what is needed for #92
- updated unit tests to work with the refactored code
- modified the header in compressed.08 to use a one-byte length instead of an indeterminate length
- changed the keyserver in signature.0x18 to fakekey.server.tld
- modified the parametrization of packet headers and parsing tests to append CAFEBABE to the end of each packet as a sentinel value to ensure that none of the parsed packets are being overly greedy; modified the tests to take this into account
- filled out all missing pgpdump strings for subpackets
-
- renamed some packet files to pad single-digit tag ids to 2 digits
- added alternate keyring location keyword argument to gpg_verify
- added support for parsing indeterminate packet lengths with old type headers (assumes the length is all the remaining bytes)
- added stripped down pubkey to bug_56 regression test
- changed internal keys in SubPackets to tuples
- stopped storing the {,un}hashed packet block lengths for SubPackets as it's trivial to compute those anyway, and doesn't need to be done often