md5.c File Reference

#include <string.h>
#include "md5.h"
Include dependency graph for md5.c:

Defines

#define byteReverse(buf, len)
#define F1(x, y, z)   (z ^ (x & (y ^ z)))
#define F2(x, y, z)   F1(z, x, y)
#define F3(x, y, z)   (x ^ y ^ z)
#define F4(x, y, z)   (y ^ (x | ~z))
#define MD5STEP(f, w, x, y, z, data, s)   ( w += f(x, y, z) + data, w = w<<s | w>>(32-s), w += x )

Functions

void MD5Init (struct MD5Context *ctx)
void MD5Update (struct MD5Context *ctx, unsigned char const *buf, unsigned len)
void MD5Final (unsigned char *digest, struct MD5Context *ctx)
void MD5Transform (uint32 buf[4], uint32 const in[16])

Detailed Description

This code implements the MD5 message-digest algorithm. The algorithm is due to Ron Rivest. This code was written by Colin Plumb in 1993, no copyright is claimed. This code is in the public domain; do with it what you wish.

Equivalent code is available from RSA Data Security, Inc. This code has been tested against that, and is equivalent, except that you don't need to include two pages of legalese with every copy.

To compute the message digest of a chunk of bytes, declare an MD5Context structure, pass it to MD5Init, call MD5Update as needed on buffers full of bytes, and then call MD5Final, which will fill a supplied 16-byte array with the digest.

Author:
Colin Plumb

Define Documentation

#define byteReverse ( buf,
len   ) 
#define F1 ( x,
y,
 )     (z ^ (x & (y ^ z)))
#define F2 ( x,
y,
 )     F1(z, x, y)
#define F3 ( x,
y,
 )     (x ^ y ^ z)
#define F4 ( x,
y,
 )     (y ^ (x | ~z))
#define MD5STEP ( f,
w,
x,
y,
z,
data,
 )     ( w += f(x, y, z) + data, w = w<<s | w>>(32-s), w += x )

Function Documentation

void MD5Final ( unsigned char *  digest,
struct MD5Context ctx 
)
void MD5Init ( struct MD5Context ctx  ) 
void MD5Transform ( uint32  buf[4],
uint32 const   in[16] 
)
void MD5Update ( struct MD5Context ctx,
unsigned char const *  buf,
unsigned  len 
)
Generated on Mon Apr 5 22:28:49 2010 for pam_kmux by  doxygen 1.6.3