libfortuna  1
FortunalibraryfunctionsextractedfromPostgreSQLsource
 All Data Structures Files Functions Variables Typedefs Macros
md5.c File Reference
#include <sys/param.h>
#include "c.h"
#include "md5.h"

Macros

#define SHIFT(X, s)   (((X) << (s)) | ((X) >> (32 - (s))))
 
#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 ROUND1(a, b, c, d, k, s, i)
 
#define ROUND2(a, b, c, d, k, s, i)
 
#define ROUND3(a, b, c, d, k, s, i)
 
#define ROUND4(a, b, c, d, k, s, i)
 
#define Sa   7
 
#define Sb   12
 
#define Sc   17
 
#define Sd   22
 
#define Se   5
 
#define Sf   9
 
#define Sg   14
 
#define Sh   20
 
#define Si   4
 
#define Sj   11
 
#define Sk   16
 
#define Sl   23
 
#define Sm   6
 
#define Sn   10
 
#define So   15
 
#define Sp   21
 
#define MD5_A0   0x67452301
 
#define MD5_B0   0xefcdab89
 
#define MD5_C0   0x98badcfe
 
#define MD5_D0   0x10325476
 

Functions

void md5_init (md5_ctxt *ctxt)
 
void md5_loop (md5_ctxt *ctxt, const uint8 *input, unsigned len)
 
void md5_pad (md5_ctxt *ctxt)
 
void md5_result (uint8 *digest, md5_ctxt *ctxt)
 

Macro Definition Documentation

#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 MD5_A0   0x67452301
#define MD5_B0   0xefcdab89
#define MD5_C0   0x98badcfe
#define MD5_D0   0x10325476
#define ROUND1 (   a,
  b,
  c,
  d,
  k,
  s,
 
)
Value:
do { \
(a) = (a) + F((b), (c), (d)) + X[(k)] + T[(i)]; \
(a) = SHIFT((a), (s)); \
(a) = (b) + (a); \
} while (0)
#define ROUND2 (   a,
  b,
  c,
  d,
  k,
  s,
 
)
Value:
do { \
(a) = (a) + G((b), (c), (d)) + X[(k)] + T[(i)]; \
(a) = SHIFT((a), (s)); \
(a) = (b) + (a); \
} while (0)
#define ROUND3 (   a,
  b,
  c,
  d,
  k,
  s,
 
)
Value:
do { \
(a) = (a) + H((b), (c), (d)) + X[(k)] + T[(i)]; \
(a) = SHIFT((a), (s)); \
(a) = (b) + (a); \
} while (0)
#define ROUND4 (   a,
  b,
  c,
  d,
  k,
  s,
 
)
Value:
do { \
(a) = (a) + I((b), (c), (d)) + X[(k)] + T[(i)]; \
(a) = SHIFT((a), (s)); \
(a) = (b) + (a); \
} while (0)
#define Sa   7
#define Sb   12
#define Sc   17
#define Sd   22
#define Se   5
#define Sf   9
#define Sg   14
#define Sh   20
#define SHIFT (   X,
 
)    (((X) << (s)) | ((X) >> (32 - (s))))
#define Si   4
#define Sj   11
#define Sk   16
#define Sl   23
#define Sm   6
#define Sn   10
#define So   15
#define Sp   21

Function Documentation

void md5_init ( md5_ctxt ctxt)
void md5_loop ( md5_ctxt ctxt,
const uint8 input,
unsigned  len 
)
void md5_pad ( md5_ctxt ctxt)
void md5_result ( uint8 digest,
md5_ctxt ctxt 
)