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