mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-12-05 03:39:02 +00:00
117 lines
3.2 KiB
Groff
117 lines
3.2 KiB
Groff
|
.\"
|
||
|
.\" ----------------------------------------------------------------------------
|
||
|
.\" "THE BEER-WARE LICENSE" (Revision 42):
|
||
|
.\" <phk@login.dkuug.dk> wrote this file. As long as you retain this notice you
|
||
|
.\" can do whatever you want with this stuff. If we meet some day, and you think
|
||
|
.\" this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
|
||
|
.\" ----------------------------------------------------------------------------
|
||
|
.\"
|
||
|
.\" $FreeBSD$
|
||
|
.\"
|
||
|
.Dd July 14, 1994
|
||
|
.Dt MDX 3
|
||
|
.Os FreeBSD 2
|
||
|
.Sh NAME
|
||
|
.Nm MDXInit ,
|
||
|
.Nm MDXUpdate ,
|
||
|
.Nm MDXFinal ,
|
||
|
.Nm MDXEnd ,
|
||
|
.Nm MDXFile ,
|
||
|
.Nm MDXData .
|
||
|
.Nd calculate ``MDX'' cryptographic checksum
|
||
|
.Sh SYNOPSIS
|
||
|
.Fd #include <mdX.h>
|
||
|
.Ft void
|
||
|
.Fn MDXInit "MDX_CTX *context"
|
||
|
.Ft void
|
||
|
.Fn MDXUpdate "MDX_CTX *context" "unsigned char *data" "unsigned int len"
|
||
|
.Ft void
|
||
|
.Fn MDXFinal "unsigned char digest[16]" "MDX_CTX *context"
|
||
|
.Ft "char *"
|
||
|
.Fn MDXEnd "MDX_CTX *context"
|
||
|
.Ft "char *"
|
||
|
.Fn MDXFile "char *filename"
|
||
|
.Ft "char *"
|
||
|
.Fn MDXData "unsigned char *data" "unsigned int len"
|
||
|
.Sh DESCRIPTION
|
||
|
The MDX functions calculate a 128-bit cryptographic checksum (digest)
|
||
|
for any number of input bytes. A cryptographic checksum is a one-way
|
||
|
hash-function, that is, you cannot find (except by exhaustive search)
|
||
|
the input corresponding to a particular output. This net result is
|
||
|
a ``fingerprint'' of the input-data, which doesn't disclose the actual
|
||
|
input.
|
||
|
|
||
|
MD2 is the slowest, MD4 is the fastest and MD5 is somewhere in the middle.
|
||
|
MD2 can only be used for Privacy-Enhanced Mail.
|
||
|
MD4 has been critizised for being to weak, and MD5 was developed as a
|
||
|
response to this as ``MD4 with safety-belts''. If in doubt, use MD5.
|
||
|
|
||
|
The
|
||
|
.Fn MDXInit ,
|
||
|
.Fn MDXUpdate
|
||
|
and
|
||
|
.Fn MDXFinal
|
||
|
functions are the core functions. Allocate a MDX_CTX, initialize it with
|
||
|
.Fn MDXInit
|
||
|
run over the data with
|
||
|
.Fn MDXUpdate
|
||
|
and finally extract the result using
|
||
|
.Fn MDXFinal .
|
||
|
|
||
|
.Fn MDXEnd
|
||
|
is identical to
|
||
|
.Fn MDXFinal ,
|
||
|
except the return is in ASCII-HEX in a
|
||
|
string allocated with
|
||
|
.Xr malloc 3 .
|
||
|
|
||
|
.Fn MDXFile
|
||
|
calculates the digest of a file, and returns the ASCII-HEX result.
|
||
|
In case the file cannot be opened, NULL is returned.
|
||
|
|
||
|
.Fn MDXData
|
||
|
calculates the digest of a chunk of data in memory, and returns the ASCII-HEX
|
||
|
result.
|
||
|
|
||
|
When using
|
||
|
.Fn MDXEnd ,
|
||
|
.Fn MDXFile
|
||
|
and
|
||
|
.Fn MDXData ,
|
||
|
the returned string must be explicitly deallocated using
|
||
|
.Xr free 3
|
||
|
after use.
|
||
|
.Sh SEE ALSO
|
||
|
.Xr md2 3 ,
|
||
|
.Xr md4 3 ,
|
||
|
.Xr md5 3
|
||
|
.Pp
|
||
|
ISOC
|
||
|
Internet Request For Comments
|
||
|
.%T RFC1319 ,
|
||
|
.%T RFC1320
|
||
|
and
|
||
|
.%T RFC1321 .
|
||
|
.Pp
|
||
|
RSA Laboratories
|
||
|
.%T Frequently Asked Questions About today's Cryptography .
|
||
|
.Sh AUTHOR
|
||
|
The MD2, MD4 and MD5 is designed and written by Ron Rivest and published in
|
||
|
the above RFC's, including a reference implementation of each algorithm.
|
||
|
|
||
|
This code is derived directly from these implementations by Poul-Henning Kamp
|
||
|
<phk@login.dkuug.dk>
|
||
|
|
||
|
Phk ristede runen.
|
||
|
.Sh HISTORY
|
||
|
These functions appeared in
|
||
|
.Em FreeBSD-2.0
|
||
|
.Sh BUGS
|
||
|
No method is known to exist which finds two files having the same hash value,
|
||
|
nor to find a file with a specific hash value.
|
||
|
There is on the other hand no guarantee that such a method doesn't exist.
|
||
|
|
||
|
MD2 can only be used for Privacy Enhanced Mail.
|
||
|
Use MD4 or MD5 if that isn't what you're doing.
|
||
|
.Sh COPYRIGHT
|