00001
00023 #ifndef POLARSSL_MD5_H
00024 #define POLARSSL_MD5_H
00025
00029 typedef struct
00030 {
00031 unsigned long total[2];
00032 unsigned long state[4];
00033 unsigned char buffer[64];
00035 unsigned char ipad[64];
00036 unsigned char opad[64];
00037 }
00038 md5_context;
00039
00040 #ifdef __cplusplus
00041 extern "C" {
00042 #endif
00043
00049 void md5_starts( md5_context *ctx );
00050
00058 void md5_update( md5_context *ctx, unsigned char *input, int ilen );
00059
00066 void md5_finish( md5_context *ctx, unsigned char output[16] );
00067
00075 void md5( unsigned char *input, int ilen, unsigned char output[16] );
00076
00086 int md5_file( char *path, unsigned char output[16] );
00087
00095 void md5_hmac_starts( md5_context *ctx, unsigned char *key, int keylen );
00096
00104 void md5_hmac_update( md5_context *ctx, unsigned char *input, int ilen );
00105
00112 void md5_hmac_finish( md5_context *ctx, unsigned char output[16] );
00113
00123 void md5_hmac( unsigned char *key, int keylen,
00124 unsigned char *input, int ilen,
00125 unsigned char output[16] );
00126
00132 int md5_self_test( int verbose );
00133
00134 #ifdef __cplusplus
00135 }
00136 #endif
00137
00138 #endif