Process as many blocks as possible everywhere.
…hange If an empty bytestring is use to call update, it could trigger the processing of the buf, that could be holding the data for finalize (the last block). That would give bad calculations.
…r size. When the buffer is full, we need to process it before appending the padding. fix #18
compute the block on the contextinstead of the hash algorithm itself, as it's easier to automatically infer a context with hashInit. make the hmac API to not take a hash algorithm parameter, but infer the algorithm used by the a type. add a hmacAlg, that just like hashInitAlg take an explicit algorithm as parameter to infer the HMAC type. this function is better when type inference is not able to automatically deduce the phantom.