49 lines
1.5 KiB
Text
49 lines
1.5 KiB
Text
The MD2 library.
|
|
MD2 is a message digest algorithm that can be used to condense an arbitrary
|
|
length message down to a 16 byte hash. The functions all need to be passed
|
|
a MD2_CTX which is used to hold the MD2 context during multiple MD2_Update()
|
|
function calls. The normal method of use for this library is as follows
|
|
|
|
MD2_Init(...);
|
|
MD2_Update(...);
|
|
...
|
|
MD2_Update(...);
|
|
MD2_Final(...);
|
|
|
|
This library requires the inclusion of 'md2.h'.
|
|
|
|
The main negative about MD2 is that it is slow, especially when compared
|
|
to MD5.
|
|
|
|
The functions are as follows:
|
|
|
|
void MD2_Init(
|
|
MD2_CTX *c);
|
|
This function needs to be called to initiate a MD2_CTX structure for
|
|
use.
|
|
|
|
void MD2_Update(
|
|
MD2_CTX *c;
|
|
unsigned char *data;
|
|
unsigned long len);
|
|
This updates the message digest context being generated with 'len'
|
|
bytes from the 'data' pointer. The number of bytes can be any
|
|
length.
|
|
|
|
void MD2_Final(
|
|
unsigned char *md;
|
|
MD2_CTX *c;
|
|
This function is called when a message digest of the data digested
|
|
with MD2_Update() is wanted. The message digest is put in the 'md'
|
|
array and is MD2_DIGEST_LENGTH (16) bytes long.
|
|
|
|
unsigned char *MD2(
|
|
unsigned long n;
|
|
unsigned char *d;
|
|
unsigned char *md;
|
|
This function performs a MD2_Init(), followed by a MD2_Update()
|
|
followed by a MD2_Final() (using a local MD2_CTX).
|
|
The resulting digest is put into 'md' if it is not NULL.
|
|
Regardless of the value of 'md', the message
|
|
digest is returned from the function. If 'md' was NULL, the message
|
|
digest returned is being stored in a static structure.
|