Hi all,

I wrote the MD5 and SHA1 checksums a very long time ago, before Factor  
had all the great abstractions it has now.  I just finished rewriting  
them with all using modern coding style and more features.

First, all of the state for the checksum computations is now kept in  
tuples instead of in dynamic variables.  Doing it this way should be a  
lot faster when it's fully optimized sometime later.

Also, the algorithms are now incremental, and there are new words to  
add bytes/streams/files to the checksum without having to ask for the  
answer immediately.  You can call ``get-checksum'' at any time for the  
current checksum, which clones the relevant state (very small  
overhead) and returns the checksum at that point.  You can resume  
adding bytes to the same checksum state.

Building HMAC and checksum interleave with the above features is now  
trivial.  The HMAC is a way of combining a key or password with the  
data you want to checksum.  You can transmit the HMAC'd checksum to a  
server that has your key can verify that the data came from you.  An  
interleaved checksum hashes together all the odd bytes of the input,  
and then all the even bytes, and then recombines them, alternating  
bytes for a sequence of bytes that is twice the length of a regular  
checksum.

The SHA1 and SHA2 words are now in basis/checksums/sha.

If someone wants to implement SHA-384 and SHA-512 for fun, go ahead.   
Otherwise, I'll do it eventually.


Doug

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables 
unlimited royalty-free distribution of the report engine 
for externally facing server and web deployment. 
http://p.sf.net/sfu/businessobjects
_______________________________________________
Factor-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to