00001
00002
00003
00007 #ifndef _MD2_H
00008 #define _MD2_H
00009
00010 #ifdef __cplusplus
00011 extern "C" {
00012 #endif
00013
00017 typedef struct
00018 {
00019 unsigned char cksum[16];
00020 unsigned char state[48];
00021 unsigned char buffer[16];
00022 unsigned char ipad[64];
00023 unsigned char opad[64];
00024 int left;
00025 }
00026 md2_context;
00027
00033 void md2_starts( md2_context *ctx );
00034
00042 void md2_update( md2_context *ctx, unsigned char *input, int ilen );
00043
00050 void md2_finish( md2_context *ctx, unsigned char *output );
00051
00059 void md2( unsigned char *input, int ilen,
00060 unsigned char *output );
00061
00071 int md2_file( char *path, unsigned char *output );
00072
00080 void md2_hmac_starts( md2_context *ctx,
00081 unsigned char *key, int keylen );
00082
00090 void md2_hmac_update( md2_context *ctx,
00091 unsigned char *input, int ilen );
00092
00099 void md2_hmac_finish( md2_context *ctx, unsigned char *output );
00100
00110 void md2_hmac( unsigned char *key, int keylen,
00111 unsigned char *input, int ilen,
00112 unsigned char *output );
00113
00119 int md2_self_test( int verbose );
00120
00121 #ifdef __cplusplus
00122 }
00123 #endif
00124
00125 #endif