This releases 1168 bytes back to the heap.
Uses both existing MD2/MD5/SHA1 and the Gifford SHA256-512, unless WITHOUT_SHA2 is defined.