MD5
Section: Misc. Reference Manual Pages (3bsd)
Index
Return to Main Contents
BSD mandoc
NAME
MD5Init
MD5Update
MD5Pad
MD5Final
MD5Transform
MD5End
MD5File
MD5FileChunk
MD5Data
- calculate the RSA Data Security, Inc., ``MD5'' message digest
LIBRARY
Lb libbsd
SYNOPSIS
In sys/types.h
In md5.h
(See
libbsd(7)
for include usage.)
Ft void
Fn MD5Init MD5_CTX *context
Ft void
Fn MD5Update MD5_CTX *context const uint8_t *data size_t len
Ft void
Fn MD5Pad MD5_CTX *context
Ft void
Fn MD5Final uint8_t digest[MD5_DIGEST_LENGTH] MD5_CTX *context
Ft void
Fn MD5Transform uint32_t state[4] uint8_t block[MD5_BLOCK_LENGTH]
Ft char *
Fn MD5End MD5_CTX *context char *buf
Ft char *
Fn MD5File const char *filename char *buf
Ft char *
Fn MD5FileChunk const char *filename char *buf off_t offset off_t length
Ft char *
Fn MD5Data const uint8_t *data size_t len char *buf
DESCRIPTION
The MD5 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.
MD4 has been broken; it should only be used where necessary for
backward compatibility.
MD5 has not yet (1999-02-11) been broken, but recent attacks have cast
some doubt on its security properties.
The attacks on both MD4 and MD5
are both in the nature of finding
``collisions''
- that is, multiple
inputs which hash to the same value; it is still unlikely for an attacker
to be able to determine the exact original input given a hash value.
The
Fn MD5Init ,
Fn MD5Update ,
and
Fn MD5Final
functions are the core functions.
Allocate an MD5_CTX, initialize it with
Fn MD5Init ,
run over the data with
Fn MD5Update ,
and finally extract the result using
Fn MD5Final .
The
Fn MD5Pad
function can be used to apply padding to the message digest as in
Fn MD5Final ,
but the current context can still be used with
Fn MD5Update .
The
Fn MD5Transform
function is used by
Fn MD5Update
to hash 512-bit blocks and forms the core of the algorithm.
Most programs should use the interface provided by
Fn MD5Init ,
Fn MD5Update
and
Fn MD5Final
instead of calling
Fn MD5Transform
directly.
Fn MD5End
is a wrapper for
Fn MD5Final
which converts the return value to an MD5_DIGEST_STRING_LENGTH-character
(including the terminating '\0')
ASCII
string which represents the 128 bits in hexadecimal.
Fn MD5File
calculates the digest of a file, and uses
Fn MD5End
to return the result.
If the file cannot be opened, a null pointer is returned.
Fn MD5FileChunk
behaves like
Fn MD5File
but calculates the digest only for that portion of the file starting at
Fa offset
and continuing for
Fa length
bytes or until end of file is reached, whichever comes first.
A zero
Fa length
can be specified to read until end of file.
A negative
Fa length
or
Fa offset
will be ignored.
Fn MD5Data
calculates the digest of a chunk of data in memory, and uses
Fn MD5End
to return the result.
When using
Fn MD5End ,
Fn MD5File ,
Fn MD5FileChunk ,
or
Fn MD5Data ,
the
buf
argument can be a null pointer, in which case the returned string
is allocated with
malloc(3)
and subsequently must be explicitly deallocated using
free(3)
after use.
If the
buf
argument is non-null it must point to at least MD5_DIGEST_STRING_LENGTH
characters of buffer space.
SEE ALSO
cksum(1),
md5(1),
adler32(3),
md4(3),
rmd160(3),
sfv(3),
sha1(3),
sha2(3),
suma(3),
tiger(3),
whirlpool(3)
-
R. Rivest
The MD4 Message-Digest Algorithm
RFC 1186
-
R. Rivest
The MD5 Message-Digest Algorithm
RFC 1321
-
RSA Laboratories
Frequently Asked Questions About today's Cryptography
<http://www.rsa.com/rsalabs/faq/>
-
H. Dobbertin
Alf Swindles Ann
CryptoBytes
1(3):5
1995
-
MJ. B. Robshaw
On Recent Results for MD4 and MD5
RSA Laboratories Bulletin
4
November 12, 1996
-
Hans Dobbertin
Cryptanalysis of MD5 Compress
HISTORY
These functions appeared in
Ox 2.0 .
AUTHORS
The original MD5 routines were developed by
RSA
Data Security, Inc., and published in the above references.
This code is derived from a public domain implementation written by Colin Plumb.
The
Fn MD5End ,
Fn MD5File ,
Fn MD5FileChunk ,
and
Fn MD5Data
helper functions are derived from code written by Poul-Henning Kamp.
BUGS
Collisions have been found for the full versions of both MD4 and MD5
as well as strong attacks against the SHA-0 and SHA-1 family.
The use of
sha2(3),
or
rmd160(3)
is recommended instead.
Index
- NAME
-
- LIBRARY
-
- SYNOPSIS
-
- DESCRIPTION
-
- SEE ALSO
-
- HISTORY
-
- AUTHORS
-
- BUGS
-
This document was created by
man2html,
using the manual pages.
Time: 00:49:08 GMT, May 03, 2024