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
