| /* |
| ** ************************************************************************** |
| ** md5.h -- Header file for implementation of MD5 Message Digest Algorithm ** |
| ** Updated: 2/13/90 by Ronald L. Rivest ** |
| ** (C) 1990 RSA Data Security, Inc. ** |
| ** ************************************************************************** |
| */ |
| |
| #ifndef MD5_H |
| #define MD5_H |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| |
| /* MDstruct is the data structure for a message digest computation. |
| */ |
| typedef struct { |
| unsigned int buffer[4]; /* Holds 4-word result of MD computation */ |
| unsigned char count[8]; /* Number of bits processed so far */ |
| unsigned int done; /* Nonzero means MD computation finished */ |
| } MDstruct, *MDptr; |
| |
| /* MDbegin(MD) |
| ** Input: MD -- an MDptr |
| ** Initialize the MDstruct prepatory to doing a message digest computation. |
| */ |
| extern void MDbegin (MDptr); |
| |
| /* MDupdate(MD,X,count) |
| ** Input: MD -- an MDptr |
| ** X -- a pointer to an array of unsigned characters. |
| ** count -- the number of bits of X to use (an unsigned int). |
| ** Updates MD using the first ``count'' bits of X. |
| ** The array pointed to by X is not modified. |
| ** If count is not a multiple of 8, MDupdate uses high bits of last byte. |
| ** This is the basic input routine for a user. |
| ** The routine terminates the MD computation when count < 512, so |
| ** every MD computation should end with one call to MDupdate with a |
| ** count less than 512. Zero is OK for a count. |
| */ |
| extern int MDupdate (MDptr, unsigned char *, unsigned int); |
| |
| /* MDprint(MD) |
| ** Input: MD -- an MDptr |
| ** Prints message digest buffer MD as 32 hexadecimal digits. |
| ** Order is from low-order byte of buffer[0] to high-order byte of buffer[3]. |
| ** Each byte is printed with high-order hexadecimal digit first. |
| */ |
| extern void MDprint (MDptr); |
| |
| int MDchecksum(u_char *data, size_t len, u_char *mac, size_t maclen); |
| int MDsign(u_char *data, size_t len, u_char *mac, size_t maclen, |
| u_char *secret, size_t secretlen); |
| void MDget(MDstruct *MD, u_char *buf, size_t buflen); |
| |
| /* |
| ** End of md5.h |
| ****************************(cut)*****************************************/ |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* MD5_H */ |
| |