00001
00023 #ifndef POLARSSL_MD2_H
00024 #define POLARSSL_MD2_H
00025
00029 typedef struct
00030 {
00031 unsigned char cksum[16];
00032 unsigned char state[48];
00033 unsigned char buffer[16];
00035 unsigned char ipad[64];
00036 unsigned char opad[64];
00037 int left;
00038 }
00039 md2_context;
00040
00041 #ifdef __cplusplus
00042 extern "C" {
00043 #endif
00044
00050 void md2_starts( md2_context *ctx );
00051
00059 void md2_update( md2_context *ctx, unsigned char *input, int ilen );
00060
00067 void md2_finish( md2_context *ctx, unsigned char output[16] );
00068
00076 void md2( unsigned char *input, int ilen, unsigned char output[16] );
00077
00087 int md2_file( char *path, unsigned char output[16] );
00088
00096 void md2_hmac_starts( md2_context *ctx, unsigned char *key, int keylen );
00097
00105 void md2_hmac_update( md2_context *ctx, unsigned char *input, int ilen );
00106
00113 void md2_hmac_finish( md2_context *ctx, unsigned char output[16] );
00114
00124 void md2_hmac( unsigned char *key, int keylen,
00125 unsigned char *input, int ilen,
00126 unsigned char output[16] );
00127
00133 int md2_self_test( int verbose );
00134
00135 #ifdef __cplusplus
00136 }
00137 #endif
00138
00139 #endif