a buffer can be supplied in which the digest will be written. It needs to be able to hold 2 * digestSize chars
Remarks: If the buffer is not large enough to hold the hex digest, a new buffer is allocated and returned. The algorithm state is always reset after a call to hexDigest.
Computes the digest as a hex string and resets the state