00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00043 #ifndef __MD5_H__
00044 #define __MD5_H__
00045
00046 #include "ipsec/types.h"
00047
00055 #define MD5_LONG __u32
00056
00057
00058 #define MD5_CBLOCK 64
00059 #define MD5_LBLOCK (MD5_CBLOCK/4)
00060 #define MD5_DIGEST_LENGTH 16
00061
00062
00063 typedef struct MD5state_st
00064 {
00065 MD5_LONG A,B,C,D;
00066 MD5_LONG Nl,Nh;
00067 MD5_LONG data[MD5_LBLOCK];
00068 int num;
00069 } MD5_CTX;
00070
00071 extern void MD5_Init(MD5_CTX *c);
00072 extern void MD5_Update(MD5_CTX *c, const void *data, unsigned long len);
00073 extern void MD5_Final(unsigned char *md, MD5_CTX *c);
00074 extern unsigned char *MD5(const unsigned char *d, unsigned long n, unsigned char *md);
00075 extern void MD5_Transform(MD5_CTX *c, const unsigned char *b);
00076
00077 void hmac_md5(unsigned char*, int, unsigned char*, int, unsigned char*);
00078
00079 #endif