micropython-lib/python-stdlib/hashlib
Jim Mussared da5ddfc6e2 hashlib: Refactor, split, and optimise.
This splits out each algorithm into its own extension package, so that only
the necessary algorithms can be installed.

This allows for a significant reduction in RAM and flash. i.e. previously
installing hashlib meant that all algorithms were imported.

Additionally ensures that any built-in hash algorithms (from uhashlib) are
still exposed (e.g. `md5`), and retains the existing behavior to use the
built-in preferentially.

Also includes a refactoring of the algorithms to reduce code size and
reduce the number of allocations they do as well as using bytearrays in
place of list-of-int where possible.

Add more comprehensive tests (using unittest).

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-07-20 23:28:08 +10:00
..
tests hashlib: Refactor, split, and optimise. 2023-07-20 23:28:08 +10:00
manifest.py hashlib: Refactor, split, and optimise. 2023-07-20 23:28:08 +10:00