libgpac
Documentation of the core library of GPAC
md5.c File Reference
#include <gpac/tools.h>
+ Include dependency graph for md5.c:

Data Structures

struct  MD5Context
 

Macros

#define A   0x67452301
 
#define B   0xefcdab89
 
#define C   0x98badcfe
 
#define D   0x10325476
 
#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 GF_MD5_DIGEST_SIZE   16
 

Functions

static void md5Step (u32 *buffer, u32 *input)
 
u32 rotateLeft (u32 x, u32 n)
 
void md5Init (MD5Context *ctx)
 
void md5Update (MD5Context *ctx, u8 *input_buffer, size_t input_len)
 
void md5Finalize (MD5Context *ctx)
 
GF_EXPORT void gf_md5_csum (const void *data, u32 len, u8 output[GF_MD5_DIGEST_SIZE])
 

Variables

static u32 S []
 
static u32 K []
 
static u8 PADDING []
 

Data Structure Documentation

◆ MD5Context

struct MD5Context
Data Fields
u64 size
u32 buffer[4]
u8 input[64]
u8 digest[16]

Macro Definition Documentation

◆ A

#define A   0x67452301

◆ B

#define B   0xefcdab89

◆ C

#define C   0x98badcfe

◆ D

#define D   0x10325476

◆ F

#define F (   X,
  Y,
 
)    ((X & Y) | (~X & Z))

◆ G

#define G (   X,
  Y,
 
)    ((X & Z) | (Y & ~Z))

◆ H

#define H (   X,
  Y,
 
)    (X ^ Y ^ Z)

◆ I

#define I (   X,
  Y,
 
)    (Y ^ (X | ~Z))

◆ GF_MD5_DIGEST_SIZE

#define GF_MD5_DIGEST_SIZE   16

Function Documentation

◆ md5Step()

static void md5Step ( u32 buffer,
u32 input 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ rotateLeft()

u32 rotateLeft ( u32  x,
u32  n 
)
+ Here is the caller graph for this function:

◆ md5Init()

void md5Init ( MD5Context ctx)
+ Here is the caller graph for this function:

◆ md5Update()

void md5Update ( MD5Context ctx,
u8 input_buffer,
size_t  input_len 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ md5Finalize()

void md5Finalize ( MD5Context ctx)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_md5_csum()

GF_EXPORT void gf_md5_csum ( const void *  buf,
u32  buflen,
u8  digest[GF_MD5_DIGEST_SIZE] 
)

gets MD5 of input buffer

Parameters
bufinput buffer to hash
buflensize of input buffer in bytes
digestbuffer to store message digest
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ S

u32 S[]
static
Initial value:
= {7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22,
5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20,
4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23,
6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21}

◆ K

u32 K[]
static
Initial value:
= {0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee,
0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501,
0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be,
0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821,
0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa,
0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8,
0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed,
0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a,
0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c,
0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70,
0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x04881d05,
0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665,
0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039,
0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1,
0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1,
0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391}

◆ PADDING

u8 PADDING[]
static
Initial value:
= {0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}