Releases: rmlibre/tiny_gnupg
v0.7.5: Cleaner, more efficient code & better documentation
This release adds the User
, Network
, Terminal
, MessageBus
& Error
classes to the package. They greatly improve the readability, usability, expressiveness & concern separation of the codebase. The resulting code is heavily refactored & much cleaner.
The aiofiles
dependency was also removed since GnuPG in general doesn't play well with asynchronous or multi-threaded code. The asynchronous networking code will, however, stay with the package.
Simplified manual commands, SKS imports now allowed
This release adds a new manual
keyword argument to the command()
method, allowing users to more easily interact with the gpg2 binary's native interface.
The new network_sks_import()
method was also added. This allow users to import keys from the sks/pks network by querying the onion address mirror available here: http://pgpkeysximvxiazm.onion.
Instance-isolated identities
This update adds automatic enforcement of instance identities, preventing one instance from using the gpg-agent cache to access secret keys which aren't associated to that instance's key. This check is enforced by the passphrase
attribute. If a user creates instance identities with the same passphrase, then this check can be side-stepped.
CI Build Passing
Some exploration into the world where Docker and gnupg meet started where builds fail. We've now arrived at passing builds. Rejoice.
Less Pretty, More Correct
This release fixes some major bugs in the logic & assumptions made about the information the packet parser gives when scraping different kinds of OpenPGP data. In the decrypt()
method, it was wrongly assumed that packets would have details about the sender, but that's not true. The metadata on the outside of encrypted messages points to the intended recipient, even if the messages are signed.
This all means, the effort to pull OpenPGP information from inside of encrypted messages based on variable circumstances was difficult. But it fit right along with the overhaul to add informative and correct error messages.
Clean and pretty.
Fix ups to documentation & code to be consistent and display well on github and PyPI. Also includes the latest, best tests and code yet.
Parser bugfix! Tests fixed!
There were some mistakes and overlooked drafting code in the tests that were fixed and made relevant. Added tests and functionality for parsing the packets of some additional legacy key types.
100% Test Coverage!
This release is the most stable version of the software yet. It comes with various major bug fixes and improved functionality. Everyone should upgrade to this release!
new auto_decrypt() and auto_verify() methods!
After disabling the default gnupg keyserver lookups, it became apparent that the functionality could be useful, although potentially dangerous if set as defaults. So, we added some exception hooks into decrypt()
and verify()
to automatically stuff the signing key fingerprint, from message or signature data, into the exception value that's thrown.
Now decrypt()
and verify()
have better error messages, raising KeyError instead of the generic subprocess CalledProcessError. And they remain off the network, while auto_decrypt()
and auto_verify()
easily pull the relevant data from them and are explicit about reaching for keys from the keyserver.
Bugfixes and docstrings
Turned off options in gpg2.conf require-cross-certification
and no-comment
because one or both may have been causing some private keys to become unusable. GnuPG would raise an "unusable private key" error.
Improved documantation by adding docstrings to all methods of the main GnuPG class.