Dillo v3.1.1-98-g318d1f14
|
Independent implementation of MD5 (RFC 1321). More...
Go to the source code of this file.
Macros | |
#define | BYTE_ORDER 0 |
#define | T_MASK ((md5_word_t)~0) |
#define | T1 /* 0xd76aa478 */ (T_MASK ^ 0x28955b87) |
#define | T2 /* 0xe8c7b756 */ (T_MASK ^ 0x173848a9) |
#define | T3 0x242070db |
#define | T4 /* 0xc1bdceee */ (T_MASK ^ 0x3e423111) |
#define | T5 /* 0xf57c0faf */ (T_MASK ^ 0x0a83f050) |
#define | T6 0x4787c62a |
#define | T7 /* 0xa8304613 */ (T_MASK ^ 0x57cfb9ec) |
#define | T8 /* 0xfd469501 */ (T_MASK ^ 0x02b96afe) |
#define | T9 0x698098d8 |
#define | T10 /* 0x8b44f7af */ (T_MASK ^ 0x74bb0850) |
#define | T11 /* 0xffff5bb1 */ (T_MASK ^ 0x0000a44e) |
#define | T12 /* 0x895cd7be */ (T_MASK ^ 0x76a32841) |
#define | T13 0x6b901122 |
#define | T14 /* 0xfd987193 */ (T_MASK ^ 0x02678e6c) |
#define | T15 /* 0xa679438e */ (T_MASK ^ 0x5986bc71) |
#define | T16 0x49b40821 |
#define | T17 /* 0xf61e2562 */ (T_MASK ^ 0x09e1da9d) |
#define | T18 /* 0xc040b340 */ (T_MASK ^ 0x3fbf4cbf) |
#define | T19 0x265e5a51 |
#define | T20 /* 0xe9b6c7aa */ (T_MASK ^ 0x16493855) |
#define | T21 /* 0xd62f105d */ (T_MASK ^ 0x29d0efa2) |
#define | T22 0x02441453 |
#define | T23 /* 0xd8a1e681 */ (T_MASK ^ 0x275e197e) |
#define | T24 /* 0xe7d3fbc8 */ (T_MASK ^ 0x182c0437) |
#define | T25 0x21e1cde6 |
#define | T26 /* 0xc33707d6 */ (T_MASK ^ 0x3cc8f829) |
#define | T27 /* 0xf4d50d87 */ (T_MASK ^ 0x0b2af278) |
#define | T28 0x455a14ed |
#define | T29 /* 0xa9e3e905 */ (T_MASK ^ 0x561c16fa) |
#define | T30 /* 0xfcefa3f8 */ (T_MASK ^ 0x03105c07) |
#define | T31 0x676f02d9 |
#define | T32 /* 0x8d2a4c8a */ (T_MASK ^ 0x72d5b375) |
#define | T33 /* 0xfffa3942 */ (T_MASK ^ 0x0005c6bd) |
#define | T34 /* 0x8771f681 */ (T_MASK ^ 0x788e097e) |
#define | T35 0x6d9d6122 |
#define | T36 /* 0xfde5380c */ (T_MASK ^ 0x021ac7f3) |
#define | T37 /* 0xa4beea44 */ (T_MASK ^ 0x5b4115bb) |
#define | T38 0x4bdecfa9 |
#define | T39 /* 0xf6bb4b60 */ (T_MASK ^ 0x0944b49f) |
#define | T40 /* 0xbebfbc70 */ (T_MASK ^ 0x4140438f) |
#define | T41 0x289b7ec6 |
#define | T42 /* 0xeaa127fa */ (T_MASK ^ 0x155ed805) |
#define | T43 /* 0xd4ef3085 */ (T_MASK ^ 0x2b10cf7a) |
#define | T44 0x04881d05 |
#define | T45 /* 0xd9d4d039 */ (T_MASK ^ 0x262b2fc6) |
#define | T46 /* 0xe6db99e5 */ (T_MASK ^ 0x1924661a) |
#define | T47 0x1fa27cf8 |
#define | T48 /* 0xc4ac5665 */ (T_MASK ^ 0x3b53a99a) |
#define | T49 /* 0xf4292244 */ (T_MASK ^ 0x0bd6ddbb) |
#define | T50 0x432aff97 |
#define | T51 /* 0xab9423a7 */ (T_MASK ^ 0x546bdc58) |
#define | T52 /* 0xfc93a039 */ (T_MASK ^ 0x036c5fc6) |
#define | T53 0x655b59c3 |
#define | T54 /* 0x8f0ccc92 */ (T_MASK ^ 0x70f3336d) |
#define | T55 /* 0xffeff47d */ (T_MASK ^ 0x00100b82) |
#define | T56 /* 0x85845dd1 */ (T_MASK ^ 0x7a7ba22e) |
#define | T57 0x6fa87e4f |
#define | T58 /* 0xfe2ce6e0 */ (T_MASK ^ 0x01d3191f) |
#define | T59 /* 0xa3014314 */ (T_MASK ^ 0x5cfebceb) |
#define | T60 0x4e0811a1 |
#define | T61 /* 0xf7537e82 */ (T_MASK ^ 0x08ac817d) |
#define | T62 /* 0xbd3af235 */ (T_MASK ^ 0x42c50dca) |
#define | T63 0x2ad7d2bb |
#define | T64 /* 0xeb86d391 */ (T_MASK ^ 0x14792c6e) |
#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 | |
static void | md5_process (md5_state_t *pms, const md5_byte_t *data) |
void | md5_init (md5_state_t *pms) |
Initialize the algorithm. | |
void | md5_append (md5_state_t *pms, const md5_byte_t *data, int nbytes) |
Append a string to the message. | |
void | md5_finish (md5_state_t *pms, md5_byte_t digest[16]) |
Finish the message and return the digest. | |
Independent implementation of MD5 (RFC 1321).
This code implements the MD5 Algorithm defined in RFC 1321, whose text is available at http://www.ietf.org/rfc/rfc1321.txt The code is derived from the text of the RFC, including the test suite (section A.5) but excluding the rest of Appendix A. It does not include any code or documentation that is identified in the RFC as being copyrighted.
The original and principal author of md5.c is L. Peter Deutsch ghost.nosp@m.@ala.nosp@m.ddin..nosp@m.com. Other authors are noted in the change history that follows (in reverse chronological order):
Definition in file md5.c.
#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 ROTATE_LEFT | ( | x, | |
n | |||
) | (((x) << (n)) | ((x) >> (32 - (n)))) |
#define SET | ( | a, | |
b, | |||
c, | |||
d, | |||
k, | |||
s, | |||
Ti | |||
) |
#define SET | ( | a, | |
b, | |||
c, | |||
d, | |||
k, | |||
s, | |||
Ti | |||
) |
#define SET | ( | a, | |
b, | |||
c, | |||
d, | |||
k, | |||
s, | |||
Ti | |||
) |
#define SET | ( | a, | |
b, | |||
c, | |||
d, | |||
k, | |||
s, | |||
Ti | |||
) |
#define T_MASK ((md5_word_t)~0) |
void md5_append | ( | md5_state_t * | pms, |
const md5_byte_t * | data, | ||
int | nbytes | ||
) |
Append a string to the message.
Definition at line 334 of file md5.c.
References md5_state_s::buf, md5_state_s::count, and md5_process().
Referenced by md5_finish(), and md5hexdigest().
void md5_finish | ( | md5_state_t * | pms, |
md5_byte_t | digest[16] | ||
) |
Finish the message and return the digest.
Definition at line 372 of file md5.c.
References md5_state_s::abcd, md5_state_s::count, and md5_append().
Referenced by md5hexdigest().
void md5_init | ( | md5_state_t * | pms | ) |
Initialize the algorithm.
Definition at line 324 of file md5.c.
References md5_state_s::abcd, md5_state_s::count, and T_MASK.
Referenced by md5hexdigest().
|
static |
Definition at line 143 of file md5.c.
References md5_state_s::abcd, SET, T1, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T2, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T3, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T4, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T5, T50, T51, T52, T53, T54, T55, T56, T57, T58, T59, T6, T60, T61, T62, T63, T64, T7, T8, and T9.
Referenced by md5_append().