#include "global.h"
#include "md5.h"
Defines | |
#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 |
#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) |
Functions | |
static void MD5Transform | PROTO_LIST ((UINT4[4], const unsigned char[64])) |
static void Encode | PROTO_LIST ((unsigned char *, UINT4 *, unsigned int)) |
static void Decode | PROTO_LIST ((UINT4 *, const unsigned char *, unsigned int)) |
static void MD5_memcpy | PROTO_LIST ((POINTER, POINTER, unsigned int)) |
static void MD5_memset | PROTO_LIST ((POINTER, int, unsigned int)) |
void | MD5Init (MD5_CTX *context) |
void | MD5Update (MD5_CTX *context, const unsigned char *input, unsigned int inputLen) |
void | MD5Final (digest, MD5_CTX *context) |
static void | MD5Transform (state, block) |
static void | Encode (unsigned char *output, UINT4 *input, unsigned int len) |
static void | Decode (UINT4 *output, const unsigned char *input, unsigned int len) |
static void | MD5_memcpy (POINTER output, POINTER input, unsigned int len) |
static void | MD5_memset (POINTER output, int value, unsigned int len) |
Variables | |
static unsigned char | PADDING [64] |
#define F | ( | x, | |||
y, | |||||
z | ) | (((x) & (y)) | ((~x) & (z))) |
#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); \ }
#define G | ( | x, | |||
y, | |||||
z | ) | (((x) & (z)) | ((y) & (~z))) |
#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); \ }
#define H | ( | x, | |||
y, | |||||
z | ) | ((x) ^ (y) ^ (z)) |
#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); \ }
#define I | ( | x, | |||
y, | |||||
z | ) | ((y) ^ ((x) | (~z))) |
#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); \ }
#define ROTATE_LEFT | ( | x, | |||
n | ) | (((x) << (n)) | ((x) >> (32-(n)))) |
#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 |
static void Decode | ( | UINT4 * | output, | |
const unsigned char * | input, | |||
unsigned int | len | |||
) | [static] |
static void Encode | ( | unsigned char * | output, | |
UINT4 * | input, | |||
unsigned int | len | |||
) | [static] |
static void MD5_memset | ( | POINTER | output, | |
int | value, | |||
unsigned int | len | |||
) | [static] |
void MD5Final | ( | digest | , | |
MD5_CTX * | context | |||
) |
void MD5Init | ( | MD5_CTX * | context | ) |
static void MD5Transform | ( | state | , | |
block | ||||
) | [static] |
void MD5Update | ( | MD5_CTX * | context, | |
const unsigned char * | input, | |||
unsigned int | inputLen | |||
) |
static void MD5_memset PROTO_LIST | ( | (POINTER, int, unsigned int) | ) | [static] |
static void Decode PROTO_LIST | ( | (UINT4 *, const unsigned char *, unsigned int) | ) | [static] |
static void Encode PROTO_LIST | ( | (unsigned char *, UINT4 *, unsigned int) | ) | [static] |
static void MD5Transform PROTO_LIST | ( | (UINT4[4], const unsigned char[64]) | ) | [static] |
unsigned char PADDING[64] [static] |
Initial value:
{ 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }