add documentation + utility functions to reuse input and output buffers during large # of hash calculations