[Haskell-cafe] ANNOUNCE: hs-cryptohash 0.4

Ivan Lazar Miljenovic ivan.miljenovic at gmail.com
Fri Jul 2 06:10:19 EDT 2010

Vincent Hanquez <tab at snarc.org> writes:

> On Fri, Jul 02, 2010 at 12:55:03PM +1000, Ivan Miljenovic wrote:
>> On 1 July 2010 17:25, Vincent Hanquez <tab at snarc.org> wrote:
>> > The main reason for this library is the lack of incremental api exposed by
>> > current digest libraries, and filling the void about some missing digest
>> > algorithms; Also the speed comes as a nice bonus.
>> Can you explain what you mean by "incremental API"?
> The incremental API is the init/update/finalize functions where you can call
> update as many time as you need, instead of a single function "hash" where you
> need to hash all your data in one-go.
> It's necessary in my case since i receive chunks of data to be hashed from the
> network, and I don't want to carry a buffer of data (with potential security
> issues), until i can hash everything.
> The few existing packages that exposes the incremental API, usually do it
> in the IO monad; cryptohash do it purely, creating a new context as it get updated.
> (this has a cost but remains fast globally with the C implementation)
> i.e.
> 	update : ctx -> bytestring -> IO ()
> becomes:
> 	update : ctx -> bytestring -> ctx

So you're using explicit state parsing?  Any particular reason for not
using the State monad or something like that?

Ivan Lazar Miljenovic
Ivan.Miljenovic at gmail.com

More information about the Haskell-Cafe mailing list