00001
00023 #ifndef POLARSSL_MD4_H
00024 #define POLARSSL_MD4_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 md4_context;
00039
00040 #ifdef __cplusplus
00041 extern "C" {
00042 #endif
00043
00049 void md4_starts( md4_context *ctx );
00050
00058 void md4_update( md4_context *ctx, unsigned char *input, int ilen );
00059
00066 void md4_finish( md4_context *ctx, unsigned char output[16] );
00067
00075 void md4( unsigned char *input, int ilen, unsigned char output[16] );
00076
00086 int md4_file( char *path, unsigned char output[16] );
00087
00095 void md4_hmac_starts( md4_context *ctx, unsigned char *key, int keylen );
00096
00104 void md4_hmac_update( md4_context *ctx, unsigned char *input, int ilen );
00105
00112 void md4_hmac_finish( md4_context *ctx, unsigned char output[16] );
00113
00123 void md4_hmac( unsigned char *key, int keylen,
00124 unsigned char *input, int ilen,
00125 unsigned char output[16] );
00126
00132 int md4_self_test( int verbose );
00133
00134 #ifdef __cplusplus
00135 }
00136 #endif
00137
00138 #endif