Tiny-gnupg

Latest version: v0.9.0

Safety actively analyzes 626474 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 10

0.9.0

=========================


Major Changes
-------------

- The ``passphrase`` keyword argument is now processed through the
``hashlib.scrypt`` function before being stored within a ``User`` instance
& used within the ``GnuPG`` & ``BaseGnuPG`` classes. The ``GnuPG`` & ``BaseGnuPG``
classes also accept an optional ``salt`` keyword-only argument. These
changes secure user keys & passwords by default with a memory-hard
key derivation function & the uniqueness of the user-specified random
salt. These changes provide better security & aren't backwards
compatible.
- The ``email`` keyword argument to the ``User``, ``BaseGnuPG`` & ``GnuPG``
classes was changed to ``email_address``. The attributes in the ``User``
class have also mirrored this change. As well, the ``key_email`` method
on the ``GnuPG`` & ``BaseGnuPG`` classes is now ``key_email_address``.
- The ``User`` class now does type & value checking on the ``username``,
``email_address`` & ``passphrase`` strings passed into the ``__init__``,
as well as whenever their associated property attributes are set.


Minor Changes
-------------

- Documentation improvements.
- Various refactorings & code cleanups.
- More type hinting was added & improved upon.
- Removed the improper usage of the ``NoneType`` for type hinting.
- New constants were added to the ``tiny_gnupg.py`` module to specify
problematic control & whitespace characters that shouldn't be used in
various user-defined inputs & credentials.
- The ``file_export`` methods of the ``GnuPG`` & ``BaseGnuPG`` classes now
saves key files with either ``"public-key_"`` or ``"secret-key_"`` strings
prepended to them to better specify for users the context of files
saved to their filesystems.
- Removed the svg image file which didn't accurately report the line
coverage with the new changes to the package.

0.8.2

=========================


Minor Changes
-------------

- Documentation improvements.
- The ``username`` keyword-only argument to the ``User`` & ``GnuPG`` classes
was given a default empty string. This change allows the ``username``
to be optional & ignorable by the user. When generating a key with an
instance which doesn't have a ``username`` specified, then the associated
key will also not contain a username field.

0.8.1

=========================


Minor Changes
-------------

- Documentation improvements & typo fixes.

0.8.0

=========================


Major Changes
-------------

- The new ``GnuPGConfig`` & ``Keyserver`` classes were extracted from
the ``GnuPG`` class. ``GnuPGConfig`` holds onto each instance's path
strings to the system resources (like the gpg2 binary, the .conf
file, & the home directory), as well as other static constants &
instance specific settings (like the torify boolean flag). And, the
``Keyserver`` class separates the Tor networking & key upload,
download, & searching logic.
- The ``GnuPG`` class was given a super class, ``BaseGnuPG``, which is
initialized using ``User`` & ``GnuPGConfig`` objects instead of the
strings & booleans which have until now been used to initialize a
``GnuPG`` instance. This allows users to choose between initializing
instances using the package's higher-level types or python built-in
types.
- The ``gen_key`` method of ``GnuPG`` & ``BaseGnuPG`` was changed to
``generate_key``.


Minor Changes
-------------

- Docstring, documentation & type annotation fixes.
- Improved the clarity of error messages & the UX of error handling.
- Improved various GnuPG terminal output parsing logics.
- Heavy factorings to improve clarity & better organize the codebase.

0.7.9

=========================


Minor Changes
-------------

- Docstring & type annotation fixes.
- Small internal refactorings.

0.7.8

=========================


Major Changes
-------------

- Security Alert: Users' separate ``GnuPG`` instance's with the same
home directory, which represent distinct & different secret keys,
can only be considered to represent separate identities during
runtime if the ``passphrase`` for each instance is distinct &
different. Past updates of the package have mentioned separate
identities as if one instance won't be able to access another's
secret keys, and this is **not** true unless their passphrases are
different. This is how GnuPG itself is designed, where all public &
secret keys are stored together in the home directory, & an identity
is more strongly considered to be the current operating system's user.
A more effective way a user can separate identities is by setting a
unique home directory for each identity. However, the GnuPG program
wasn't designed safely as it regards anonymity, so gaining confidence
in its ability to respect more nuanced identity boundaries is dubious
at best.
- The values that are inserted into raised exceptions were renamed to
be declarative of exactly what has been inserted. I.e., instead of
calling all the inserted exception object attributes something as
generic as ``value``, they are now ``inputs``, ``uid``, ``output``,
etc. This helps improve readability & clarity.


Minor Changes
-------------

- Various documentation improvements & fixes.
- Various code cleanups & refactorings.
- Added type hints to many of the codebase's parameters.

Page 1 of 10

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.