This source file contains the implemention of the MD5 hash algorithm.
More...
#include <string.h>
#include "md5.h"
|
#define | F(x, y, z) (((x) & (y)) | ((~x) & (z))) |
|
#define | G(x, y, z) (((x) & (z)) | ((y) & (~z))) |
|
#define | H(x, y, z) ((x) ^ (y) ^ (z)) |
|
#define | I(x, y, z) ((y) ^ ((x) | (~z))) |
|
#define | ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n)))) |
|
#define | FF(a, b, c, d, x, s, ac) |
|
#define | GG(a, b, c, d, x, s, ac) |
|
#define | HH(a, b, c, d, x, s, ac) |
|
#define | II(a, b, c, d, x, s, ac) |
|
#define | UL(x) x |
|
#define | S11 7 |
|
#define | S12 12 |
|
#define | S13 17 |
|
#define | S14 22 |
|
#define | S21 5 |
|
#define | S22 9 |
|
#define | S23 14 |
|
#define | S24 20 |
|
#define | S31 4 |
|
#define | S32 11 |
|
#define | S33 16 |
|
#define | S34 23 |
|
#define | S41 6 |
|
#define | S42 10 |
|
#define | S43 15 |
|
#define | S44 21 |
|
|
void | MD5Init (MD5_CTX *mdContext) |
|
void | MD5Update (MD5_CTX *mdContext, const void *inBufArg, unsigned int inLen) |
|
void | MD5Final (unsigned char hash[16], MD5_CTX *mdContext) |
|
This source file contains the implemention of the MD5 hash algorithm.
◆ FF
#define FF |
( |
|
a, |
|
|
|
b, |
|
|
|
c, |
|
|
|
d, |
|
|
|
x, |
|
|
|
s, |
|
|
|
ac |
|
) |
| |
Value: {(a) += F ((b), (c), (d)) + (x) + (UINT4)(ac); \
(a) = ROTATE_LEFT ((a), (s)); \
(a) += (b); \
}
◆ GG
#define GG |
( |
|
a, |
|
|
|
b, |
|
|
|
c, |
|
|
|
d, |
|
|
|
x, |
|
|
|
s, |
|
|
|
ac |
|
) |
| |
Value: {(a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); \
(a) = ROTATE_LEFT ((a), (s)); \
(a) += (b); \
}
◆ HH
#define HH |
( |
|
a, |
|
|
|
b, |
|
|
|
c, |
|
|
|
d, |
|
|
|
x, |
|
|
|
s, |
|
|
|
ac |
|
) |
| |
Value: {(a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); \
(a) = ROTATE_LEFT ((a), (s)); \
(a) += (b); \
}
◆ II
#define II |
( |
|
a, |
|
|
|
b, |
|
|
|
c, |
|
|
|
d, |
|
|
|
x, |
|
|
|
s, |
|
|
|
ac |
|
) |
| |
Value: {(a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); \
(a) = ROTATE_LEFT ((a), (s)); \
(a) += (b); \
}