This is the fingerprint 0.60 package, gamma. 931101 Daniel J. Bernstein, djb@silverton.berkeley.edu. The fingerprint program produces a base-64-sanely-encoded fingerprint of its input. I imagine this fingerprint as something universal and permanent, which people will use forever. If the fingerprint is ever broken, I'd rather make an entirely new version than try to extend this one. A fingerprint is 76 characters long. What does it contain? Here's a list: 1. A Snefru-8 (version 2.5, 8 passes, 512->256) hash. (Code derived from the Xerox Secure Hash Function.) 2. An MD5 hash, as per RFC 1321. (Code derived from the RSADSI MD5 Message-Digest Algorithm.) 3. A CRC checksum, as in the new cksum utility. 4. Length modulo 2^40. The output format is not expected to be compatible with anything. However, I have helper utilities which take a fingerprint and produce the purported output of Merkle's snefru program (fptosnefru), the purported output of RSADSI's mddriver -x (fptomd5), or the purported output of the POSIX cksum program (fptocksum). Also included: (1) a clone of the snefru program, with some extra features; (2) a cksum implementation; (3) an md5 driver; (4) libraries with a uniform interface for calculating these hashes; (5) some documentation. To compile, just make. To try a few simple tests, make test. To see how fast the various hash functions can handle a megabyte of data on your machine, make speedtest. I've written this because I want to set up a global database which maps fingerprints to network locations. Thanks to the tripwire authors for unknowingly giving this project a push, and thanks of course to the hash function designers and implementors. Thanks to the alpha testers for their comments and criticism: Eric Backus Alan Barrett Paul Haahr Mark C. Henderson Stephan Neuhaus Danny Padwa Eric Rescorla Icarus Sparry No thanks to the beta testers---there weren't any, as far as I can tell. This package is essentially unchanged since beta version 0.50, which I posted to alt.sources in early August 1993. Continuing worries: I still have to make sure I'm giving all appropriate credit here. Also, I haven't tested *_addn properly. I'm not too happy with the man pages, which were to a large extent mechanically produced; I'd appreciate any suggestions for improvement. echo hi | fingerprint: JoXEhdflGxZdS89tDd5zpFx0JRJyX0k67EH0Jod7aet4hIjB.hGhon0veN0BZRfi058HZQ06U0JD