diff options
Diffstat (limited to 'include/net-snmp/library/md5.h')
-rw-r--r-- | include/net-snmp/library/md5.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/include/net-snmp/library/md5.h b/include/net-snmp/library/md5.h new file mode 100644 index 0000000..12b192a --- /dev/null +++ b/include/net-snmp/library/md5.h @@ -0,0 +1,71 @@ +/* + * ** ************************************************************************** + * ** 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 */ |