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.