'\" t .\" aegis - project change supervisor .\" Copyright (C) 1994, 1995, 2005-2008 Peter Miller .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 3 of the License, or .\" (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program. If not, see .\" . .\" .ds n) aefp .TH \*(n) 1 \*(N) "Reference Manual" .SH NAME aefp \- calculate file fingerprint .XX "aefp(1)" "calculate file fingerprint" .SH SYNOPSIS .B \*(n) [ .IR option \&... ][ .IR filename \&... ] .br .B \*(n) .B -Help .br .B \*(n) .B -VERSion .SH DESCRIPTION The .I \*(n) program is used to calculate the fingerprints of files. A fingerprint is a hash of the contents of a file. The default fingerprint is cryptographically strong, so the probability of two different files having the same fingerprint is less than 1 in 2**200. .PP The fingerprint is based on Dan Berstien public domain fingerprint 0.50 beta package 930809, posted to the alt.sources newsgroup. This program produces identical results; the expected test results were generated using Dan's package. .PP The fingerprint is a base-64-sanely-encoded fingerprint of the input. Imagine this fingerprint as something universal and permanent. A fingerprint is 76 characters long, containing the following: .TP 4n 1. A Snefru-8 (version 2.5, 8 passes, 512->256) hash. (Derived from the Xerox Secure Hash Function.) .TP 4n 2. An MD5 hash, as per RFC 1321. (Derived from the RSADSI MD5 Message-Digest Algorithm.) .TP 4n 3. A CRC checksum, as in the new cksum utility. .TP 4n 4. Length modulo 2^40. .PP The output format is not expected to be compatible with anything. However, options are available to produce the purported output of Merkle's snefru program, the purported output of RSADSI's mddriver -x, or the purported output of the POSIX cksum program. .PP If no files are named as input, the standard input will be used. The special file name \[lq]-\[rq] is understood to mean the standard input. .br .ne 1i .SH OPTIONS The following options are understood: .TP 8n .B -Checksum Print the CRC32 checksum and length of the named file(s). .TP 8n .B -Identifier Print a condensed form of the fingerprint (obtained by performing a CRC32 checksum on the full fingerprint described above - a definite overkill). This is an 8-digit hexadecimal number, useful for generating unique short identifiers out of long names. The first character is forced to be a letter (g-p), so there is no problem in using the output as a variable name. .TP 8n .B -Help .br Provide some help with using the .I \*(n) program. .TP 8n .B -Message_Digest Print the RSA Data Security, Inc. MD5 Message-Digest Algorithm hash of the named file(s). .TP 8n .B -Snefru Print the Snefru hash of the named file(s), derived from the Xerox Secure Hash Function. .TP 8n .B -VERSion .br Print the version of the .I \*(n) program being executed. .PP All other options will produce a diagnostic error. .\" .\" aegis - project change supervisor .\" Copyright (C) 1991-1993, 2006-2008 Peter Miller. .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 3 of the License, or .\" (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program. If not, see .\" . .\" .r) .PP All options may be abbreviated; the abbreviation is documented as the upper case letters, all lower case letters and underscores (_) are optional. You must use consecutive sequences of optional letters. .PP All options are case insensitive, you may type them in upper case or lower case or a combination of both, case is not important. .PP For example: the arguments "-project, "-PROJ" and "-p" are all interpreted to mean the \fB-Project\fP option. The argument "-prj" will not be understood, because consecutive optional characters were not supplied. .PP Options and other command line arguments may be mixed arbitrarily on the command line, after the function selectors. .br .ne 4 .PP The GNU long option names are understood. Since all option names for .I \*(n) are long, this means ignoring the extra leading '-'. The "\fB--\fIoption\fB=\fIvalue\fR" convention is also understood. .\" .\" aegis - project change supervisor .\" Copyright (C) 1991-1993, 1995, 1997, 2004, 2006-2008 Peter Miller .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 3 of the License, or .\" (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program. If not, see .\" . .\" .SH EXIT STATUS The .I \*(n) command will exit with a status of 1 on any error. The .I \*(n) command will only exit with a status of 0 if there are no errors. .SH ENVIRONMENT VARIABLES See \fIaegis\fP(1) for a list of environment variables which may affect this command. See \fIaepconf\fP(5) for the project configuration file's \fIproject_\%specific\fP field for how to set environment variables for all commands executed by Aegis. .\" .\" aegis - project change supervisor .\" Copyright (C) 1991-1995, 1997, 2006-2008 Peter Miller .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 3 of the License, or .\" (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program. If not, see .\" . .\" .br .ne 2i .SH COPYRIGHT .ds v) 4.24.3 .ds V) 4.24.3.D001 .ds o) 0 .ds p) 4.25 .ds u) 4.24 .ds Y) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 \*(n) version \*(V) .br .if t .ds C) \(co .if n .ds C) (C) Copyright \*(C) \*(Y) Peter Miller .PP The \*(n) program comes with ABSOLUTELY NO WARRANTY; for details use the '\fI\*(n) -VERSion License\fP' command. This is free software and you are welcome to redistribute it under certain conditions; for details use the '\fI\*(n) -VERSion License\fP' command. .br .ne 1i .SH AUTHOR .TS tab(;); l r l. Peter Miller;E-Mail:;millerp@canb.auug.org.au \f(CW/\e/\e*\fR;WWW:;http://www.canb.auug.org.au/~millerp/ .TE .PP Portions of this program are derived from sources from other people, sometimes with liberal copyrights, and sometimes in the public domain. These include: .TP 8n Dan Bernstien See .I common/fp/README for details. .TP 8n Gary S Brown. See .I common/fp/crc32.c for details. .TP 8n RSA Data Security, Inc. See .I common/fp/md5.c for details. .TP 8n Xerox Corporation See .I common/fp/snefru.c for details. .PP In addition to the above copyright holders, there have been numerous authors and contributors, see the named files for details. Files names are relative to the root of the .I aegis distribution.