Remove some casts of NULL to pointer types which had accumulated.
[dragonfly.git] / sbin / md5 / md5.1
1 .\" $FreeBSD: src/sbin/md5/md5.1,v 1.24 2005/03/10 09:56:39 cperciva Exp $
2 .Dd January 21, 2010
3 .Dt MD5 1
4 .Os
5 .Sh NAME
6 .Nm md5 ,
7 .Nm sha1 ,
8 .Nm sha256 ,
9 .Nm rmd160
10 .Nd calculate a message-digest fingerprint (checksum) for a file
11 .Sh SYNOPSIS
12 .Nm md5
13 .Op Fl pqrtx
14 .Op Fl b Ar offset
15 .Op Fl e Ar offset
16 .Op Fl s Ar string
17 .Op Ar
18 .Nm sha1
19 .Op Fl pqrtx
20 .Op Fl b Ar offset
21 .Op Fl e Ar offset
22 .Op Fl s Ar string
23 .Op Ar
24 .Nm sha256
25 .Op Fl pqrtx
26 .Op Fl b Ar offset
27 .Op Fl e Ar offset
28 .Op Fl s Ar string
29 .Op Ar
30 .Nm rmd160
31 .Op Fl pqrtx
32 .Op Fl b Ar offset
33 .Op Fl e Ar offset
34 .Op Fl s Ar string
35 .Op Ar
36 .Sh DESCRIPTION
37 The
38 .Nm md5 ,
39 .Nm sha1 ,
40 .Nm sha256
41 and
42 .Nm rmd160
43 utilities take as input a message of arbitrary length and produce as
44 output a
45 .Dq fingerprint
46 or
47 .Dq message digest
48 of the input.
49 It is conjectured that it is computationally infeasible to
50 produce two messages having the same message digest, or to produce any
51 message having a given prespecified target message digest.
52 The
53 .Tn MD5 , SHA-1, SHA-256
54 and
55 .Tn RIPEMD-160
56 algorithms are intended for digital signature applications, where a
57 large file must be
58 .Dq compressed
59 in a secure manner before being encrypted with a private
60 (secret)
61 key under a public-key cryptosystem such as
62 .Tn RSA .
63 .Pp
64 .Tn MD5
65 has not yet (2001-09-03) been broken, but sufficient attacks have been
66 made that its security is in some doubt.
67 The attacks on
68 .Tn MD5
69 are in the nature of finding
70 .Dq collisions
71 \(em that is, multiple
72 inputs which hash to the same value; it is still unlikely for an attacker
73 to be able to determine the exact original input given a hash value.
74 .Pp
75 The following options may be used in any combination and must
76 precede any files named on the command line.
77 The hexadecimal checksum of each file listed on the command line is printed
78 after the options are processed.
79 .Bl -tag -width indent
80 .It Fl b Ar offset
81 When processing file(s), use the specified begin and/or end (below) instead
82 of processing each file in its entirety.
83 Either option can be omitted.
84 Both begin- and end-offsets can be specified as just a number (of bytes) or
85 be followed by K, M, or G to mean that the number is to be multiplied by
86 1024 once, twice, or thrice respectively.
87 For example, to start at 512, you can use
88 .Fl b Ar 512
89 or
90 .Fl b Ar 0.5K .
91 .Pp
92 The use of offsets is implemented using
93 .Fn mmap
94 and will only work on regular files and mmap-able devices.
95 .Pp
96 If the beginning offset is negative, its absolute value is subtracted
97 from the file's size.
98 Zero thus means the very beginning of each file,
99 which is also the default if the option is omitted entirely.
100 .It Fl e Ar offset
101 If the end-offset is not positive, its absolute value is subtracted
102 from the file's size.
103 Zero thus means the very end of each file,
104 which is also the default if the option is omitted entirely.
105 .It Fl s Ar string
106 Print a checksum of the given
107 .Ar string .
108 .It Fl p
109 Echo stdin to stdout and append the checksum to stdout.
110 .It Fl q
111 Quiet mode - only the checksum is printed out.
112 Overrides the
113 .Fl r
114 option.
115 .It Fl r
116 Reverses the format of the output.
117 This helps with visual diffs.
118 Does nothing
119 when combined with the
120 .Fl ptx
121 options.
122 .It Fl t
123 Run a built-in time trial.
124 .It Fl x
125 Run a built-in test script.
126 .El
127 .Sh DIAGNOSTICS
128 The
129 .Nm md5 ,
130 .Nm sha1 ,
131 .Nm sha256
132 and
133 .Nm rmd160
134 utilities exit 0 on success, and
135 .Dv EX_NOINPUT Pq 66
136 if at least one of the input files could not be read or
137 invalid offsets were specified.
138 A mistake with command line arguments results in
139 .Dv EX_USAGE Pq 64 .
140 .Sh SEE ALSO
141 .Xr cksum 1 ,
142 .Xr mmap 2 ,
143 .Xr md5 3 ,
144 .Xr ripemd 3 ,
145 .Xr sha 3
146 .Rs
147 .%A R. Rivest
148 .%T The MD5 Message-Digest Algorithm
149 .%O RFC 1321
150 .Re
151 .Rs
152 .%A J. Burrows
153 .%T The Secure Hash Standard
154 .%O FIPS PUB 180-1
155 .Re
156 .Rs
157 .%A D. Eastlake and P. Jones
158 .%T US Secure Hash Algorithm 1
159 .%O RFC 3174
160 .Re
161 .Pp
162 RIPEMD-160 is part of the ISO draft standard
163 .Qq ISO/IEC DIS 10118-3
164 on dedicated hash functions.
165 .Pp
166 Secure Hash Standard (SHS):
167 .Pa http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf .
168 .Pp
169 The RIPEMD-160 page:
170 .Pa http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html .
171 .Sh ACKNOWLEDGMENTS
172 This program is placed in the public domain for free general use by
173 RSA Data Security.
174 .Pp
175 Support for SHA-1 and RIPEMD-160 has been added by
176 .An Oliver Eikemeier Aq Mt eik@FreeBSD.org .