From: Kevin Sopp (baraclese_at_[hidden])
Date: 2007-08-07 07:55:42
On 8/7/07, Kimon Hoffmann <Kimon.Hoffmann_at_[hidden]> wrote:
> * The library should definitely be made header-only, and during my quick
> inspection I did not discover anything that would stand in the way of that.
All that is needed is a bit of work.
> * The library should be extended into a more general framework into
> which other MD algorithms can easily be integrated.
I have done that, in fact in the meantime I have implemented MD4,
SHA-1, SHA224, SHA256, SHA384 and SHA512 in addition to MD5. I have
added testing for these and added a benchmark. I am now finalizing the
message digest lazily, which saves a context switch and saves cpu time
and a little memory because only one context is now needed instead of
two. This is still on my disk though and not in the vault.
> * The implementation should be endian invariant to make cross platform
> digest checks feasible.
The message digest algorithms cannot know the layout of your data,
i.e. is the data you're passing in a bunch of int32_t or int64_t, etc.
or mixed types (which will be the case for many binary formats).
However the implementation _is_ endian invariant in the sense that if
you pass in the same data on big/low endian machines you will receive
the same digest.
> The last observation sparked the idea of introducing a simple
> abstraction layer I call octet iterators.
It sounds interesting but I doubt there are many people who would use
it to iterate over homogeneous binary data. Maybe there is an audience
for endian conversion functions which anyone has written or seen at
least once ;)
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk