This is a SHA-256 implementation that allows for setting and getting the mid-state information. This was needed to enable repeated hashing against a (potentially large) fixed prefix.
The original version of this was written in Python. While the Cython version will be much faster, this is not a highly optimized library and relies on the native C compiler for optimization.
This repository does not contain the generated C code from Cython. To recreate the C code run the cythonize step via:
python3 -m pip install --upgrade build python3 -m build
To run the unit test suite:
python3 -m pip install --upgrade nox python3 -m nox
The original author was Thomas Dixon for a python version of this code. Sam Rushing added the midstate access and converted it to Cython. Nigel Drego added the context state setter/getter.
This is licensed under the MIT license based on the original license from Thomas Dixon.