MD2(3)

MD2(3) | Library Functions Manual | MD2(3)

# NAME

MD2Init, MD2Update, MD2Final, MD2End, MD2File, MD2Data — calculate the RSA Data Security, Inc., “MD2” message digest

# LIBRARY

Standard C Library (libc, -lc)

# SYNOPSIS

#include <sys/types.h>
#include <mdX.h>

void
MD2Init(MD2_CTX *context);

void
MD2Update(MD2_CTX *context, const unsigned char *data, unsigned int len);

void
MD2Final(unsigned char digest[16], MD2_CTX *context);

char *
MD2End(MD2_CTX *context, char *buf);

char *
MD2File(const char *filename, char *buf);

char *
MD2Data(const unsigned char *data, unsigned int len, char *buf);

# DESCRIPTION

The MD2 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.

The MD2 routines should not be used for any security-related purpose.

The MD2Init(), MD2Update(), and MD2Final() functions are the core functions. Allocate an MD2_CTX, initialize it with MD2Init(), run over the data with MD2Update(), and finally extract the result using MD2Final().

MD2End() is a wrapper for MD2Final() which converts the return value to a 33-character (including the terminating '\0') ASCII string which represents the 128 bits in hexadecimal.

MD2File() calculates the digest of a file, and uses MD2End() to return the result. If the file cannot be opened, a null pointer is returned. MD2Data() calculates the digest of a chunk of data in memory, and uses MD2End() to return the result.

When using MD2End(), MD2File(), or MD2Data(), 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 33 characters of buffer space.

# SEE ALSO

md2(3),

B. Kaliski, The MD2 Message-Digest Algorithm, RFC 1319.

RSA Laboratories, Frequently Asked Questions About today's Cryptography.

# HISTORY

These functions appeared in NetBSD 1.3.

# AUTHORS

The original MD2 routines were developed by RSA Data Security, Inc., and published in the above references. This code is a public domain implementation by Andrew Brown.

# 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.

September 24, 2005 | NetBSD 7.1