Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

md5.c File Reference

#include <string.h>
#include "md5.h"
#include <stdio.h>

Defines

#define F(x, y, z)   (y ^ (x | ~z))
#define F(x, y, z)   (x ^ y ^ z)
#define F(x, y, z)   (y ^ (z & (x ^ y)))
#define F(x, y, z)   (z ^ (x & (y ^ z)))
#define GET_UINT32(n, b, i)
#define P(a, b, c, d, k, s, t)
#define PUT_UINT32(n, b, i)
#define S(x, n)   ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n)))

Functions

void md5_finish (md5_context *ctx, uint8 digest[16])
void md5_hex (const char *string, char hexdigest[33])
void md5_process (md5_context *ctx, const uint8 data[64])
void md5_starts (md5_context *ctx)
void md5_update (md5_context *ctx, const uint8 *input, uint32 length)


Define Documentation

#define F (  x,
y,
z   )     (y ^ (x | ~z))
 

#define F (  x,
y,
z   )     (x ^ y ^ z)
 

#define F (  x,
y,
z   )     (y ^ (z & (x ^ y)))
 

#define F (  x,
y,
z   )     (z ^ (x & (y ^ z)))
 

#define GET_UINT32 (  n,
b,
i   ) 
 

Value:

{                                               \
    (n) = ( (uint32) (b)[(i)    ]       )       \
        | ( (uint32) (b)[(i) + 1] <<  8 )       \
        | ( (uint32) (b)[(i) + 2] << 16 )       \
        | ( (uint32) (b)[(i) + 3] << 24 );      \
}

#define P (  a,
b,
c,
d,
k,
s,
t   ) 
 

Value:

{                                                       \
    a += F(b,c,d) + X[k] + t; a = S(a,s) + b;           \
}

#define PUT_UINT32 (  n,
b,
i   ) 
 

Value:

{                                               \
    (b)[(i)    ] = (uint8) ( (n)       );       \
    (b)[(i) + 1] = (uint8) ( (n) >>  8 );       \
    (b)[(i) + 2] = (uint8) ( (n) >> 16 );       \
    (b)[(i) + 3] = (uint8) ( (n) >> 24 );       \
}

#define S (  x,
n   )     ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n)))
 


Function Documentation

void md5_finish (  md5_context *  ctx,
uint8  digest[16]
) 
 

void md5_hex (  const char *  string,
char  hexdigest[33]
) 
 

void md5_process (  md5_context *  ctx,
const uint8  data[64]
) 
 

void md5_starts (  md5_context *  ctx  ) 
 

void md5_update (  md5_context *  ctx,
const uint8 *  input,
uint32  length
) 
 

Aware 0.11.1 Copyright (C) 1998-2005 Russell Leighton (russ@elegant-software.com)