md5.c File Reference
#include <string.h>
#include "md5.h"
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 |
|
) |
(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 ) |
Function Documentation
| void MD5Final |
( |
unsigned char * |
digest, |
|
|
struct MD5Context * |
ctx | |
|
) |
| | |
| void MD5Update |
( |
struct MD5Context * |
ctx, |
|
|
unsigned char const * |
buf, |
|
|
unsigned |
len | |
|
) |
| | |