X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=lib%2Fmd5.c;h=781aba833bdeb2ce95968c45b183d4de18eb5f0c;hb=fbe2eb63dd53506cc3acc1507e5226e43d22a6d5;hp=e12d5d1bea57d3fb480f250626696e96d7d9fd78;hpb=ee09369500ef26c8c0bc74ea27504f2c9efe28ee;p=m6w6%2Flibmemcached diff --git a/lib/md5.c b/lib/md5.c index e12d5d1b..781aba83 100644 --- a/lib/md5.c +++ b/lib/md5.c @@ -47,9 +47,12 @@ typedef struct { unsigned char buffer[64]; /* input buffer */ } MD5_CTX; -static void MD5Init PROTO_LIST ((MD5_CTX *)); -static void MD5Update PROTO_LIST ((MD5_CTX *, unsigned char *, unsigned int)); -static void MD5Final PROTO_LIST ((unsigned char [16], MD5_CTX *)); +static void MD5Init (MD5_CTX *context); /* context */ +static void MD5Update ( MD5_CTX *context, /* context */ + unsigned char *input, /* input block */ + unsigned int inputLen); /* length of input block */ +static void MD5Final ( unsigned char digest[16], /* message digest */ + MD5_CTX *context); /* context */ /* Constants for MD5Transform routine. */ @@ -71,13 +74,14 @@ static void MD5Final PROTO_LIST ((unsigned char [16], MD5_CTX *)); #define S44 21 -static void MD5Transform PROTO_LIST ((UINT4 [4], unsigned char [64])); -static void Encode PROTO_LIST - ((unsigned char *, UINT4 *, unsigned int)); -static void Decode PROTO_LIST - ((UINT4 *, unsigned char *, unsigned int)); -static void MD5_memcpy PROTO_LIST ((POINTER, POINTER, unsigned int)); -static void MD5_memset PROTO_LIST ((POINTER, int, unsigned int)); +static void MD5Transform (UINT4 state[4], + unsigned char block[64]); +static void Encode (unsigned char *output, + UINT4 *input, + unsigned int len); +static void Decode(UINT4 *output, unsigned char *input, unsigned int len); +static void MD5_memcpy(unsigned char *, unsigned char *, unsigned int); +static void MD5_memset(unsigned char *, int, unsigned int); static unsigned char PADDING[64] = { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -123,24 +127,15 @@ Rotation is separate from addition to prevent recomputation. /* Just a simple method for getting the signature - result must be == 32 + result must be == 16 */ -void md5_signature(const unsigned char *key, unsigned int length, char *result) +void md5_signature(unsigned char *key, unsigned int length, unsigned char *result) { - const char *hex = "0123456789abcdef"; MD5_CTX my_md5; - unsigned char hash[16]; - char *r, i; MD5Init(&my_md5); - (void)MD5Update(&my_md5, buf, length); - MD5Final(hash, &my_md5); - - for (i = 0, r = result; i < 16; i++) - { - *r++ = hex[hash[i] >> 4]; - *r++ = hex[hash[i] & 0xF]; - } + (void)MD5Update(&my_md5, key, length); + MD5Final(result, &my_md5); } /* MD5 initialization. Begins an MD5 operation, writing a new context.