libfastcommon/src/md5.h

57 lines
1.3 KiB
C

#ifndef MCL_MD5_H
#define MCL_MD5_H
#include <stdio.h>
typedef unsigned char *POINTER;
typedef unsigned short int UINT2;
typedef unsigned int UINT4;
typedef struct {
UINT4 state[4]; /* state (ABCD) */
UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */
unsigned char buffer[64]; /* input buffer */
} MD5_CTX;
#ifdef __cplusplus
extern "C" {
#endif
/** md5 for string
* parameters:
* string: the string to md5
* digest: store the md5 digest
* return: 0 for success, != 0 fail
*/
int my_md5_string(char *string, unsigned char digest[16]);
/** md5 for file
* parameters:
* filename: the filename whose content to md5
* digest: store the md5 digest
* return: 0 for success, != 0 fail
*/
int my_md5_file(char *filename, unsigned char digest[16]);
/** md5 for buffer
* parameters:
* buffer: the buffer to md5
* len: the buffer length
* digest: store the md5 digest
* return: 0 for success, != 0 fail
*/
int my_md5_buffer(char *buffer, unsigned int len, unsigned char digest[16]);
void my_md5_init(MD5_CTX *context);
void my_md5_update(MD5_CTX *context, unsigned char *input,
unsigned int inputLen);
void my_md5_final(unsigned char digest[16], MD5_CTX *context);
#ifdef __cplusplus
}
#endif
#endif