Aiootp

Latest version: v0.23.7

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

Scan your dependencies

Page 8 of 9

0.7.1

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


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

- Fix a mistake in the signatures of ``passcrypt`` & ``apasscrypt. The args
``kb``, ``cpu`` & ``hardness`` were changed into keyword only arguments
to mitigate user mistakes, but the internal calls to those functions were
still using positional function calls, which broke the api. This issue
is now fixed.

0.7.0

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


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

- Replaced usage of bare ``random`` module functions, to usage of an
instance of ``random.Random`` to keep from messing with user's settings
on that module.
- Finalized the algorithm for the ``passcrypt`` & ``apasscrypt`` functions.
The algorithm is now provably memory & cpu hard with a wide security
margin with adequate settings. The algorithm isn't likely change with
upcoming versions unless a major flaw is found.
- The default value for the ``cpu`` argument in ``passcrypt`` & ``apasscrypt``
is now ``3`` & now directly determines how many hash iterations are done
for each element in the memory cache. This provides much more
responsiveness to users & increases the capacity to impact resource cost
with less tinkering.
- Switched the ``AsyncKeys.atest_hmac`` & ``Keys.test_hmac`` methods to a
scheme which is not constant time, but which instead does not leak useful
information. It does this by not comparing the hmacs of the data, but of
a pair of secondary hmacs. The timing analysis itself is now dependant
on knowledge of the key, since any conclusions of such an analysis would
be unable correlate its findings with any supplied hmac without it.
- Added ``test_hmac`` & ``atest_hmac`` to the database classes, & changed
their hmac algorithm from ``sha3_512`` to ``sha3_256``.


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

- Various code cleanups, refactorings & speedups.
- Several fixes to inaccurate documentation.
- Several fixes to inaccurate function signatures.
- Added ``mnemonic`` & ``amnemonic`` key generators to ``keygens.py`` with
a wordlist 2048 entries long. A custom wordlist can also be passed in.
- Minor changes in ``Comprende`` to track down a bug in the functions that
use the asyncio_contextmanager package. It causes a warning when asking
async generators to return (not yield) values.
- Some refactoring of ``random_number_generator`` & ``arandom_number_generator``.

0.6.0

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


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

- Replaced the usage of ``os.urandom`` within the package with
``secrets.token_bytes`` to be more reliable across platforms.
- Replaced several usages of ``random.randrange`` within ``randoms.py`` to
calls to ``secrets.token_bytes`` which is faster & more secure. It
now also seeds ``random`` module periodically prior to usage.
- Changed the internal cache sorting algorithm of ``passcrypt`` &
``apasscrypt`` functions. The key function passed to ``list.sort(key=key)``
now not only updates the ``hashlib.sha3_512`` proof object with
each element in the cache, but with it's own current output. This change
is incompatible with previous versions of the functions. The key function
is also trimmed down of unnecessary value checking.
- The default value for the ``cpu`` argument in ``passcrypt`` & ``apasscrypt``
is now ``40_000``. This is right at the edge of when the argument begins
impacting the cpu work needed to comptute the password hash when the ``kb``
argument is the default of ``1024``.
- Switched the ``AsyncKeys.atest_hmac`` & ``Keys.test_hmac`` methods to a
constant time algorithm.


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

- Various code cleanups, refactorings & speedups.
- Added a ``concurrent.futures.ThreadPoolExecutor`` instance to the ``asynchs``
module for easily spinning off threads. It's available under
``asynchs.thread_pool``.
- Added ``sort`` & ``asort`` chainable generator method to the ``Comprende``
class. They support sorting by a ``key`` sorting function as well.
- Changed the name of ``asynchs.executor_wrapper`` to ``asynchs.wrap_in_executor``.
- Changed the name of ``randoms.non0_digit_stream``, ``randoms.anon0_digit_stream``,
``randoms.digit_stream`` & ``randoms.adigit_stream`` to ``randoms.non_0_digits``,
``randoms.anon_0_digits``, ``randoms.digits`` & ``randoms.adigits``.
- Several fixes to inaccurate documentation.
- ``apasscrypt`` & ``Passcrypt.anew`` now use the synchronous version of the
algorithm internally because it's faster & it doesn't change the
parallelization properties of the function since it's already run
automatically in another process.
- Added ``shuffle``, ``ashuffle``, ``unshuffle``, & ``aunshuffle`` functions
to ``randoms.py`` that reorder sequences pseudo-randomly based on their
``key`` & ``salt`` keyword arguments.
- Fixed bugs in ``AsyncKeys`` & ``debuggers.py``.
- Added ``debugger`` & ``adebugger`` chainable generator methods to the
``Comprende`` class which benchmarks & inspects running generators with
an inline syntax.

0.5.1

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


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

- Fixed a bug in the methods ``auuids`` & ``uuids`` of the database classes
that assigned to a variable within a closure that was nonlocal but which
wasn't declared non-local. This caused an error which made the methods
unusable.
- Added ``passcrypt`` & ``apasscrypt`` functions which are designed to be
tunably memory & cpu hard password-based key derivation function. It was
inspired by the scrypt protocol but internally uses the library's tools.
It is a first attempt at the protocol, it's internal details will likely
change in future updates.
- Added ``bytes_keys`` & ``abytes_keys`` generators, which are just like
the library's ``keys`` generator, except they yield the concatenated
``sha3_512.digest`` instead of the ``sha3_512.hexdigest``.
- Added new chainable generator methods to the ``Comprende`` class for
processing bytes, integers, & hex strings into one another.


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

- Various code cleanups.
- New tests added to the test suite for ``passcrypt`` & ``apasscrypt``.
- The ``Comprende`` class' ``alist`` & ``list`` methods can now be passed
a boolean argument to return either a ``mutable`` list directly from the
lru_cache, or a copy of the cached list. This list is used by the
generator itself to yield its values, so wilely magic can be done on the
list to mutate the underlying generator's results.

0.5.0

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


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

- Added interfaces in ``Database`` & ``AsyncDatabase`` to handle encrypting
& decrypting streams (``Comprende`` generators) instead of just raw json
data. They're methods called ``encrypt_stream``, ``decrypt_stream``,
``aencrypt_stream``, & ``adecrypt_stream``.
- Changed the attribute ``_METATAG`` used by ``Database`` & ``AsyncDatabase``
to name the metatags entry in the database. This name is smaller, cleaner
& is used to prevent naming collisions between user entered values & the
metadata the classes need to organize themselves internally. This change
will break databases from older versions keeping them from accessing their
metatag child databases.
- Added the methods ``auuids`` & ``uuids`` to ``AsyncDatabase`` & ``Database``
which return coroutines that accept potentially sensitive identifiers &
turns them into salted ``size`` length hashes distinguished by a ``salt``
& a ``category``.


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

- Various code & logic cleanups / speedups.
- Refactorings of the ``Database`` & ``AsyncDatabase`` classes.
- Various inaccurate docstrings fixed.

0.4.0

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


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

- Fixed bug in ``aiootp.abytes_encrypt`` function which inaccurately called
a synchronous ``Comprende`` end-point method on the underlying async
generator, causing an exception and failure to function.
- Changed the procedures in ``akeys`` & ``keys`` that generate their internal
key derivation functions. They're now slightly faster to initialize &
more theoretically secure since each internal state is fed by a seed
which isn't returned to the user. This encryption algorithm change is
incompatible with the encryption algorithms of past versions.


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

- Various code cleanups.
- Various inaccurate docstrings fixed.
- Keyword arguments in ``Keys().test_hmac`` & ``AsyncKeys().atest_hmac``
had their order switched to be slightly more friendly to use.
- Added documentation to ``README.rst`` on the inner workings of the
one-time-pad algorithm's implementation.
- Made ``Compende.arandom_sleep`` & ``Compende.random_sleep`` chainable
generator methods.
- Changed the ``Compende.adelimit_resize`` & ``Compende.delimit_resize``
algorithms to not yield inbetween two joined delimiters in a sequence
being resized.

Page 8 of 9

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.