7 uint64_t size
; // Size of input in bytes
8 uint32_t buffer
[4]; // Current accumulation of hash
9 uint8_t input
[64]; // Input to be used in the next step
10 uint8_t digest
[16]; // Result of algorithm
13 void md5Init(MD5Context
*ctx
);
14 void md5Update(MD5Context
*ctx
, uint8_t *input
, size_t input_len
);
15 void md5Finalize(MD5Context
*ctx
);
16 void md5Step(uint32_t *buffer
, uint32_t *input
);
18 uint8_t* md5String(char *input
);
19 uint8_t* md5File(FILE *file
);
21 uint32_t F(uint32_t X
, uint32_t Y
, uint32_t Z
);
22 uint32_t G(uint32_t X
, uint32_t Y
, uint32_t Z
);
23 uint32_t H(uint32_t X
, uint32_t Y
, uint32_t Z
);
24 uint32_t I(uint32_t X
, uint32_t Y
, uint32_t Z
);
26 uint32_t rotateLeft(uint32_t x
, uint32_t n
);