Aiootp

Latest version: v0.23.15

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

Scan your dependencies

Page 5 of 10

0.20.4

Not secure
--------------------------


Major Changes
^^^^^^^^^^^^^

- Add ``python3.10`` support by copying the ``async_lru`` package's main module
from their more up-to-date github repository instead of from PyPI.


Minor Changes
^^^^^^^^^^^^^

- Small refactorings & code cleanups.
- Documentation updates.
- Type-hinting updates.
- Cleanups to the package's module API.
- Improve CI & extend to ``python3.10``.

0.20.3

Not secure
--------------------------


Minor Changes
^^^^^^^^^^^^^

- Small refactorings.
- Documentation updates.
- Type-hinting updates.
- Additional tests.

0.20.2

Not secure
--------------------------


Major Changes
^^^^^^^^^^^^^

- Changed the ``Padding`` class' ``(a)check_timestamp`` methods to
``(a)test_timestamp``, to better match the naming convention in the
rest of the package.
- Removed the ``(a)sum_sha3__(256/512)`` chainable generator methods from
the ``Comprende`` class.
- Removed the ``os.urandom`` based functions in the ``randoms.py`` module.


Minor Changes
^^^^^^^^^^^^^

- Fixes & improvements to out of date documentation.
- Small fixes to type-hints.
- Small refactorings.
- Add ``(a)generate_key`` functions to the package & ``(Async)Keys`` classes.
- Fix some exception messages.

0.20.1

Not secure
--------------------------


Minor Changes
^^^^^^^^^^^^^

- Small fixes & improvements to documentation.
- Small fixes & improvements to tests.
- Small fixes to type-hints.
- Small re-organization of source file contents.
- Small bug fixes.




Changes for version 0.20.0 (Backwards incompatible updates)
-----------------------------------------------------------


Major Changes
^^^^^^^^^^^^^

- The ``(a)json_(en/de)crypt`` & ``(a)bytes_(en/de)crypt`` functions &
methods now only expect to work with ``bytes`` type ciphertext. And,
the low-level cipher generators expect iterables of bytes where they
used to expect iterables of integers.
- The ``pid`` keyword-only argument throughout the package was changed
to ``aad`` to more clearly communicate its purpose as authenticated
additional data.
- The ``key``, ``salt`` & ``aad`` values throughout the package are now
expected to be ``bytes`` type values.
- The ``key`` must now be at least 32-bytes for use within the ``Chunky2048``
cipher & its interfaces.
- The ``salt``, for use in the ``Chunky2048`` cipher & its interfaces,
was decreased from needing to be 32-bytes to 24-bytes.
- The ``siv``, for use in the ``Chunky2048`` cipher & its interfaces, was
increased from needing to be 16-bytes to 24-bytes.
- The new ``KeyAADBundle`` class was created as the primary interface
for consuming ``key``, ``salt``, ``aad`` & ``siv`` values. This class'
objects are the only ones that are used to pass around these values
in low-level ``Chunky2048`` cipher functionalities. The higher-level
cipher functions are the only public interfaces that still receive
these ``key``, ``salt``, & ``aad`` values.
- The ``KeyAADBundle`` now manages the new initial key derivation of the
``Chunky2048`` cipher. This new algorithm is much more efficient,
utilizing the output of the keystream's first priming call instead of
throwing it away, removing the need for several other previously used
hashing calls.
- The ``bytes_keys`` & ``abytes_keys`` keystream generator algorithms
were improved & made more efficient. They also now only receive ``bytes``
type coroutine values or ``None``.
- The ``StreamHMAC`` algorithms were improved & made more efficient.
- The ``Chunky2048`` class now creates instance's that initialize, & who's
methods are callable, much more efficiently by reducing its previously
dynamic structure. Its now reasonable to use these instances in code
that has strict performance requirements.
- The ``Keys`` & ``AsyncKeys`` classes were trimmed of all instance
behaviour. They are now strictly namespaces which contain static or
class methods.
- All instance's of the word `password` throughout the package have been
replaced with the word `passphrase`. The ``Passcrypt`` class now only
accepts ``bytes`` type ``passphrase`` & ``salt`` values. The returned
hashes are also now always ``bytes``.
- The ``Padding`` & ``BytesIO`` classes' functionalities were made more
efficient & cleaned up their implementations.
- New ``PackageSigner`` & ``PackageVerifier`` classes were added to the
``keygens.py`` module to provide an intuituve API for users to sign their
own packages. This package now also uses these classes to sign itself.
- The new ``gentools.py`` module was created to organize the generator
utilities that were previously scattered throughout the package's
top-level namespaces.
- The new ``_exceptions.py`` module was created to help organize the
exceptions raised throughout the package, improving readability
& maintainability.
- The new ``_typing.py`` module was added to assist in the long process
of adding functional type-hinting throughout the package. For now,
the type hints that have been added primarily function as documentation.
- A new ``Slots`` base class was added to the ``commons.py`` module to
simplify the creation of more memory efficient & performant container
classes. The new ``_containers.py`` module was made for such classes
for use throughout the package. And, most classes throughout the
package were given ``__slots__`` attributes.
- A new ``OpenNamespace`` class was added, which is a subclass of ``Namespace``,
with the only difference being that instances do not omit attributes
from their repr's.
- The new ``(a)bytes_are_equal`` functions, which are pointers to
``hmac.compare_digest`` from the standard library, have replaced the
``(a)time_safe_equality`` functions.
- The ``(a)sha_256(_hmac)`` & ``(a)sha_512(_hmac)`` functions have had
their names changed to ``(a)sha3__256(_hmac)`` & ``(a)sha3__512(_hmac)``.
This was done to communicate that they are actually SHA3 functions,
but the double underscore is to keep them differentiable from the
standard library's ``hashlib`` objects. They can now also return
``bytes`` instead of hex strings if their ``hex`` keyword argument is truthy.
- The base functionality of the ``Comprende`` class was refactored out into a
``BaseComprende`` class. The chainable data processor generator methods
remain in the ``Comprende`` class. Their endpoint methods (such as ``(a)list``
& ``(a)join``) have also been changed so they don't cache results by default.
- The ``Passcrypt`` class' ``kb`` & ``hardness`` can now be set to values
independently from one another. The algorithm runs on the new
``(a)bytes_keys`` coroutines, & a slightly more effective cache building
procedure.
- The databases classes now don't preload their values by default. And,
various methods which work with tags & metatags have been given a
``cache`` keyword-only argument to toggle on/off the control of using
the cache for each operation.
- New method additions/changes to the database classes:

- ``(a)rollback_tag``, ``(a)clear_cache``, & a ``filenames`` property
were added.
- ``(a)hmac`` was changed to ``(a)make_hmac``, & now returns ``bytes`` hashes.
- ``(a)save`` was changed to ``(a)save_database``.
- ``(a)query`` was changed to ``(a)query_tag``.
- ``(a)set`` was changed to ``(a)set_tag``.
- ``(a)pop`` was changed to ``(a)pop_tag``.
- The ``tags``, ``metatags`` & ``filenames`` properties now return sets
instead of lists.

- The ``Ropake`` class has been removed from the package pending changes to
the protocol & its implementation.
- The ``(a)generate_salt`` function now returns ``bytes`` type values,
& takes a ``size`` keyword-only argument, with no default, that determines
the number of bytes returned between [8, 64].
- The ``(a)random_512`` & ``(a)random_256`` public functions can now cause
their underlying random number generators to fill their entropy pools
when either the ``rounds`` or ``refresh`` keyword arguments are specified.
- The following variables were removed from the package:

- ``(a)keys``, ``(a)passcrypt``, ``(a)seeder``, ``(a)time_safe_equality``,
``Datastream``, ``bits``, ``(a)seedrange``, ``(a)build_tree``,
``(a)customize_parameters``, ``convert_class_method_to_member``,
``convert_static_method_to_member``, ``(a)xor``, ``(a)padding_key``,
``(a)prime_table``, ``(a)unique_range_gen``, ``(a)non_0_digits``,
``(a)bytes_digits``, ``(a)digits``, ``(a)permute``, ``(a)shuffle``,
``(a)unshuffle``, ``(a)create_namespace``,
(``(a)depad_plaintext``, ``(a)pad_plaintext`` & their generator forms.
Only the non-generator forms remain in the ``Padding`` class), (The
``(a)passcrypt``, ``(a)uuids``, ``(a)into_namespace`` methods from the
database classes), (The ``(a)csprbg`` functions were removed & instead
the ``(a)csprng`` functions produce ``bytes`` type values.)

- Thorough & deep refactorings of modules, classes & methods. Many methods
& functions were made private, cleaning up the APIs of the package,
focusing on bringing the highest-level functionalities to top level
namespaces accessible to users. Some purely private functionalities
were entirely moved to private namespaces not readily accessible to
users.
- Most of the constants which determine the functionalities throughout
the package were refactored out into ``commons.py``. This allows
for easy changes to protocols & data formats.


Minor Changes
^^^^^^^^^^^^^

- Many documentation improvements, fixes, trimmings & updates.
- Added a ``WeakEntropy`` class to the ``randoms.py`` module.

0.19.4

Not secure
--------------------------


Major Changes
^^^^^^^^^^^^^

- Created a private ``EntropyDaemon`` class to run a thread in the
background which feeds into & extracts entropy from some of the
package's entropy pools. Also moved the separate private ``_cache``
entropy pools from the parameters to the random number generators.
They're now a single private ``_pool`` shared global that's
asynchronously & continuously updated by the background daemon thread.
- Switched the ``random`` portion of function names in the ``randoms.py``
module to read ``unique`` instead. This was done to the functions which
are actually pseudo-random. This should give users a better idea of
which functions do what. The exception is that the ``random_sleep`` &
``arandom_sleep`` functions have kept their names even though they
sleep a pseudo-randomly variable amount of time. Their names may
cause more confusion if they were either ``(a)unique_sleep`` or
``(a)urandom_sleep``. Because they don't use ``os.urandom`` & what
is a ``unique_sleep``? When / if a better name is found these
function names will be updated as well.


Minor Changes
^^^^^^^^^^^^^

- Various docstring / documentation fixes & refactorings.

0.19.3

Not secure
--------------------------


Major Changes
^^^^^^^^^^^^^

- Removed ``ascii_encipher``, ``ascii_decipher``, ``aascii_encipher`` &
``aascii_decipher`` generators from the ``Chunky2048`` & ``Comprende``
classes, & the package. It was unnecessary, didn't fit well with the
intended use of the ``Padding`` class, & users would be much better
served by converting their ascii to bytes to use the ``bytes_``
generators instead.
- Removed the ``map_encipher``, ``map_decipher``, ``amap_encipher`` &
``amap_decipher`` generators from the ``Chunky2048`` & ``Comprende``
classes, & the package. They were not being used internally to the
package anymore, & their functionality, security & efficiency could
not be guaranteed to track well with the changes in the rest of the
library.
- Added domain specificity to the ``X25519`` protocols' key derivations.
- Renamed the database classes' ``(a)encrypt`` & ``(a)decrypt`` methods
to ``(a)json_encrypt`` & ``(a)json_decrypt`` for clarity & consistency
with the rest of the package. Their signatures, as well as those in
``(a)bytes_encrypt`` & ``(a)bytes_decrypt``, were also altered to
receive plaintext & ciphertext as their only positional arguments.
The ``filename`` argument is now a keyword-only argument with a default
``None`` value. This allows databases to be used more succinctly for
manual encryption & decryption by making the filename tweak optional.
- The ``runs`` keyword argument for the functions in ``randoms.py`` was
renamed to ``rounds``. It seems more clear that it is controlling the
number of rounds are internally run within the ``(a)random_number_generator``
functions when deriving new entropy.


Minor Changes
^^^^^^^^^^^^^

- Fixes to docstrings & tutorials. Rewrite & reorganization of the
``PREADME.rst`` & ``README.rst``. More updates to the readme's are still
on the way.
- Slight fix to the Passcrypt docstring's algorithm diagram.
- Moved the default passcrypt settings to variables in the ``Passcrypt``
class.
- Added the ability to send passcrypt settings into the ``mnemonic`` &
``amnemonic`` coroutines, which call the algorithm internally but
previously could only use the default settings.
- Some code cleanups & refactorings.

Page 5 of 10

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.