Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

md5.c File Reference

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

Defines

#define T1   0xd76aa478
#define T2   0xe8c7b756
#define T3   0x242070db
#define T4   0xc1bdceee
#define T5   0xf57c0faf
#define T6   0x4787c62a
#define T7   0xa8304613
#define T8   0xfd469501
#define T9   0x698098d8
#define T10   0x8b44f7af
#define T11   0xffff5bb1
#define T12   0x895cd7be
#define T13   0x6b901122
#define T14   0xfd987193
#define T15   0xa679438e
#define T16   0x49b40821
#define T17   0xf61e2562
#define T18   0xc040b340
#define T19   0x265e5a51
#define T20   0xe9b6c7aa
#define T21   0xd62f105d
#define T22   0x02441453
#define T23   0xd8a1e681
#define T24   0xe7d3fbc8
#define T25   0x21e1cde6
#define T26   0xc33707d6
#define T27   0xf4d50d87
#define T28   0x455a14ed
#define T29   0xa9e3e905
#define T30   0xfcefa3f8
#define T31   0x676f02d9
#define T32   0x8d2a4c8a
#define T33   0xfffa3942
#define T34   0x8771f681
#define T35   0x6d9d6122
#define T36   0xfde5380c
#define T37   0xa4beea44
#define T38   0x4bdecfa9
#define T39   0xf6bb4b60
#define T40   0xbebfbc70
#define T41   0x289b7ec6
#define T42   0xeaa127fa
#define T43   0xd4ef3085
#define T44   0x04881d05
#define T45   0xd9d4d039
#define T46   0xe6db99e5
#define T47   0x1fa27cf8
#define T48   0xc4ac5665
#define T49   0xf4292244
#define T50   0x432aff97
#define T51   0xab9423a7
#define T52   0xfc93a039
#define T53   0x655b59c3
#define T54   0x8f0ccc92
#define T55   0xffeff47d
#define T56   0x85845dd1
#define T57   0x6fa87e4f
#define T58   0xfe2ce6e0
#define T59   0xa3014314
#define T60   0x4e0811a1
#define T61   0xf7537e82
#define T62   0xbd3af235
#define T63   0x2ad7d2bb
#define T64   0xeb86d391
#define ARCH_IS_BIG_ENDIAN   1
#define ROTATE_LEFT(x, n)   (((x) << (n)) | ((x) >> (32 - (n))))
#define F(x, y, z)   (((x) & (y)) | (~(x) & (z)))
#define SET(a, b, c, d, k, s, Ti)
#define G(x, y, z)   (((x) & (z)) | ((y) & ~(z)))
#define SET(a, b, c, d, k, s, Ti)
#define H(x, y, z)   ((x) ^ (y) ^ (z))
#define SET(a, b, c, d, k, s, Ti)
#define I(x, y, z)   ((y) ^ ((x) | ~(z)))
#define SET(a, b, c, d, k, s, Ti)

Functions

void md5_init (md5_state_t *pms)
void md5_append (md5_state_t *pms, const md5_byte_t *data, int nbytes)
void md5_finish (md5_state_t *pms, md5_byte_t digest[16])


Define Documentation

#define ARCH_IS_BIG_ENDIAN   1
 

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

#define G x,
y,
 )     (((x) & (z)) | ((y) & ~(z)))
 

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

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

#define ROTATE_LEFT x,
 )     (((x) << (n)) | ((x) >> (32 - (n))))
 

#define SET a,
b,
c,
d,
k,
s,
Ti   ) 
 

Value:

t = a + I(b,c,d) + X[k] + Ti;\
  a = ROTATE_LEFT(t, s) + b

#define SET a,
b,
c,
d,
k,
s,
Ti   ) 
 

Value:

t = a + H(b,c,d) + X[k] + Ti;\
  a = ROTATE_LEFT(t, s) + b

#define SET a,
b,
c,
d,
k,
s,
Ti   ) 
 

Value:

t = a + G(b,c,d) + X[k] + Ti;\
  a = ROTATE_LEFT(t, s) + b

#define SET a,
b,
c,
d,
k,
s,
Ti   ) 
 

Value:

t = a + F(b,c,d) + X[k] + Ti;\
  a = ROTATE_LEFT(t, s) + b

#define T1   0xd76aa478
 

#define T10   0x8b44f7af
 

#define T11   0xffff5bb1
 

#define T12   0x895cd7be
 

#define T13   0x6b901122
 

#define T14   0xfd987193
 

#define T15   0xa679438e
 

#define T16   0x49b40821
 

#define T17   0xf61e2562
 

#define T18   0xc040b340
 

#define T19   0x265e5a51
 

#define T2   0xe8c7b756
 

#define T20   0xe9b6c7aa
 

#define T21   0xd62f105d
 

#define T22   0x02441453
 

#define T23   0xd8a1e681
 

#define T24   0xe7d3fbc8
 

#define T25   0x21e1cde6
 

#define T26   0xc33707d6
 

#define T27   0xf4d50d87
 

#define T28   0x455a14ed
 

#define T29   0xa9e3e905
 

#define T3   0x242070db
 

#define T30   0xfcefa3f8
 

#define T31   0x676f02d9
 

#define T32   0x8d2a4c8a
 

#define T33   0xfffa3942
 

#define T34   0x8771f681
 

#define T35   0x6d9d6122
 

#define T36   0xfde5380c
 

#define T37   0xa4beea44
 

#define T38   0x4bdecfa9
 

#define T39   0xf6bb4b60
 

#define T4   0xc1bdceee
 

#define T40   0xbebfbc70
 

#define T41   0x289b7ec6
 

#define T42   0xeaa127fa
 

#define T43   0xd4ef3085
 

#define T44   0x04881d05
 

#define T45   0xd9d4d039
 

#define T46   0xe6db99e5
 

#define T47   0x1fa27cf8
 

#define T48   0xc4ac5665
 

#define T49   0xf4292244
 

#define T5   0xf57c0faf
 

#define T50   0x432aff97
 

#define T51   0xab9423a7
 

#define T52   0xfc93a039
 

#define T53   0x655b59c3
 

#define T54   0x8f0ccc92
 

#define T55   0xffeff47d
 

#define T56   0x85845dd1
 

#define T57   0x6fa87e4f
 

#define T58   0xfe2ce6e0
 

#define T59   0xa3014314
 

#define T6   0x4787c62a
 

#define T60   0x4e0811a1
 

#define T61   0xf7537e82
 

#define T62   0xbd3af235
 

#define T63   0x2ad7d2bb
 

#define T64   0xeb86d391
 

#define T7   0xa8304613
 

#define T8   0xfd469501
 

#define T9   0x698098d8
 


Function Documentation

void md5_append md5_state_t pms,
const md5_byte_t data,
int  nbytes
 

void md5_finish md5_state_t pms,
md5_byte_t  digest[16]
 

void md5_init md5_state_t pms  ) 
 


Generated on Sun Feb 6 19:59:40 2005 for libmsn by  doxygen 1.4.1