/* * ** ************************************************************************** * ** 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. */ NETSNMP_IMPORT 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. */ NETSNMP_IMPORT int MDupdate(MDptr, const 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(const u_char * data, size_t len, u_char * mac, size_t maclen); int MDsign(const u_char * data, size_t len, u_char * mac, size_t maclen, const 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 */