00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00026 #ifndef _MD5_H
00027 #define _MD5_H
00028
00029 #include "beecrypt/beecrypt.h"
00030
00034 #ifdef __cplusplus
00035 struct BEECRYPTAPI md5Param
00036 #else
00037 struct _md5Param
00038 #endif
00039 {
00042 uint32_t h[4];
00045 uint32_t data[16];
00050 #if (MP_WBITS == 64)
00051 mpw length[1];
00052 #elif (MP_WBITS == 32)
00053 mpw length[2];
00054 #else
00055 # error
00056 #endif
00057
00061 uint32_t offset;
00062 };
00063
00064 #ifndef __cplusplus
00065 typedef struct _md5Param md5Param;
00066 #endif
00067
00068 #ifdef __cplusplus
00069 extern "C" {
00070 #endif
00071
00075 extern BEECRYPTAPI const hashFunction md5;
00076
00083 BEECRYPTAPI
00084 void md5Process(md5Param* mp);
00085
00092 BEECRYPTAPI
00093 int md5Reset (md5Param* mp);
00094
00103 BEECRYPTAPI
00104 int md5Update (md5Param* mp, const byte* data, size_t size);
00105
00113 BEECRYPTAPI
00114 int md5Digest (md5Param* mp, byte* digest);
00115
00116 #ifdef __cplusplus
00117 }
00118 #endif
00119
00120 #endif