=========================
Minor Changes
-------------
- Style edits to ``PREADME.rst``.
Major Changes
-------------
- Fixed a major bug in ``decrypt()`` which miscategorized a fingerprint scraped
from a message as the sender's, when in fact it should be the recipient's.
Getting the sender's fingerprint requires successfully decrypting the
message & scraping the signature from inside if it exists. We do this
now, raising ``LookupError`` if the signature inside has no corresponding
public key in the package keyring.
- Added new ``auto_encrypt()`` method which follows after ``auto_decrypt()``
in allowing a user to attempt to encrypt a message to a recipient's
key using the value in the ``uid`` kwarg. If there's no matching key
in the package keyring, then the keyserver is queried for a key
that matches ``uid`` where then ``message`` is encrypted if found, or
``FileNotFoundError`` is raised if not.
- Added better exception raising throughout the ``GnuPG`` class:
- Now, instead of calling ``read_output()`` when the supplied ``uid``
has no key in the package keyring, a ``LookupError`` is raised.
- The best attempt at deriving a 40-byte key fingerprint from ``uid`` is
returned back through the ``LookupError`` exception object's ``value``
attribute for downstream error handling.
- ``verify()`` raises ``PermissionError`` if verification cannot be
done on the ``message`` kwarg. Raises ``LookupError`` instead if
a public key is needed in order to attempt verification. ``verify``
can't be used on an encrypted messages in general, unless ``message``
is specifcally a signature, not encrypted plaintext. This is just
not how verify works. Signatures are on the inside on encrypted
messages. So ``decrypt()`` should be used for those instead, it
throws if a signature is invalid on a message.
- A rough guide now exists for what exceptions mean, since we've given
names & messages to the most likely errors, & helper functions
to resolve them. Users can now expect to run into more than just
the in decript ``CalledProcessError``. Exceptions currently being
used include: ``LookupError``, ``PermissionError``, ``TypeError``,
``ValueError``, ``KeyError``, & ``FileNotFoundError``.
- ``ValueError`` raised in ``text_export()`` & ``sign()`` switched to
``TypeError`` as it's only raised when their ``secret`` or ``key``
kwargs, respectively, are not of type ``bool``.