Skip to content

Releases: rmlibre/tiny_gnupg

v0.7.5: Cleaner, more efficient code & better documentation

01 May 18:40
Compare
Choose a tag to compare

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

18 Jan 23:41
Compare
Choose a tag to compare

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

25 Dec 02:05
a65a95a
Compare
Choose a tag to compare
Pre-release

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

23 Dec 10:46
Compare
Choose a tag to compare
CI Build Passing Pre-release
Pre-release

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

21 Dec 13:01
Compare
Choose a tag to compare
Pre-release

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.

19 Dec 11:53
Compare
Choose a tag to compare
Clean and pretty. Pre-release
Pre-release

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!

19 Dec 04:50
Compare
Choose a tag to compare
Pre-release

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!

19 Dec 02:44
Compare
Choose a tag to compare
100% Test Coverage! Pre-release
Pre-release

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!

17 Dec 14:58
Compare
Choose a tag to compare

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

17 Dec 01:29
Compare
Choose a tag to compare
Pre-release

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.