#include <string.h>
#include "md5.h"
Go to the source code of this file.
|
#define | F(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) |
|
#define | G(x, y, z) ((y) ^ ((z) & ((x) ^ (y)))) |
|
#define | H(x, y, z) ((x) ^ (y) ^ (z)) |
|
#define | I(x, y, z) ((y) ^ ((x) | ~(z))) |
|
#define | STEP(f, a, b, c, d, x, t, s) |
|
#define | SET(n) |
|
#define | GET(n) (ctx->block[(n)]) |
|
|
static void * | body (MD5_CTX *ctx, void *data, unsigned long size) |
|
void | MD5_Init (MD5_CTX *ctx) |
|
void | MD5_Update (MD5_CTX *ctx, void *data, unsigned long size) |
|
void | MD5_Final (unsigned char *result, MD5_CTX *ctx) |
|
#define F |
( |
|
x, |
|
|
|
y, |
|
|
|
z |
|
) |
| ((z) ^ ((x) & ((y) ^ (z)))) |
Definition at line 51 of file md5.c.
#define G |
( |
|
x, |
|
|
|
y, |
|
|
|
z |
|
) |
| ((y) ^ ((z) & ((x) ^ (y)))) |
Definition at line 52 of file md5.c.
◆ GET
#define GET |
( |
|
n | ) |
(ctx->block[(n)]) |
Definition at line 84 of file md5.c.
#define H |
( |
|
x, |
|
|
|
y, |
|
|
|
z |
|
) |
| ((x) ^ (y) ^ (z)) |
Definition at line 53 of file md5.c.
#define I |
( |
|
x, |
|
|
|
y, |
|
|
|
z |
|
) |
| ((y) ^ ((x) | ~(z))) |
Definition at line 54 of file md5.c.
◆ SET
Value: (ctx->block[(n)] = \
(MD5_u32plus)ptr[(n) * 4] | \
((MD5_u32plus)ptr[(n) * 4 + 1] << 8) | \
((MD5_u32plus)ptr[(n) * 4 + 2] << 16) | \
((MD5_u32plus)ptr[(n) * 4 + 3] << 24))
Definition at line 78 of file md5.c.
◆ STEP
#define STEP |
( |
|
f, |
|
|
|
a, |
|
|
|
b, |
|
|
|
c, |
|
|
|
d, |
|
|
|
x, |
|
|
|
t, |
|
|
|
s |
|
) |
| |
Value: (a) += f((b), (c), (d)) + (x) + (t); \
(a) = (((a) << (s)) | (((a) & 0xffffffff) >> (32 - (s)))); \
(a) += (b);
Definition at line 59 of file md5.c.
◆ body()
static void * body |
( |
MD5_CTX * |
ctx, |
|
|
void * |
data, |
|
|
unsigned long |
size |
|
) |
| |
|
static |
◆ MD5_Final()
void MD5_Final |
( |
unsigned char * |
result, |
|
|
MD5_CTX * |
ctx |
|
) |
| |
◆ MD5_Init()
void MD5_Init |
( |
MD5_CTX * |
ctx | ) |
|
◆ MD5_Update()
void MD5_Update |
( |
MD5_CTX * |
ctx, |
|
|
void * |
data, |
|
|
unsigned long |
size |
|
) |
| |