62 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
63 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
64 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
65 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
66 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
67 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
68 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
69 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
73 #define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
74 #define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
75 #define H(x, y, z) ((x) ^ (y) ^ (z))
76 #define I(x, y, z) ((y) ^ ((x) | (~z)))
79 #define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
84 #define FF(a, b, c, d, x, s, ac) \
85 {(a) += F ((b), (c), (d)) + (x) + (MD5UINT4)(ac); \
86 (a) = ROTATE_LEFT ((a), (s)); \
89 #define GG(a, b, c, d, x, s, ac) \
90 {(a) += G ((b), (c), (d)) + (x) + (MD5UINT4)(ac); \
91 (a) = ROTATE_LEFT ((a), (s)); \
94 #define HH(a, b, c, d, x, s, ac) \
95 {(a) += H ((b), (c), (d)) + (x) + (MD5UINT4)(ac); \
96 (a) = ROTATE_LEFT ((a), (s)); \
99 #define II(a, b, c, d, x, s, ac) \
100 {(a) += I ((b), (c), (d)) + (x) + (MD5UINT4)(ac); \
101 (a) = ROTATE_LEFT ((a), (s)); \
112 if (mdContext==
NULL)
return;
114 mdContext->
i[0] = mdContext->
i[1] = (
MD5UINT4) 0;
138 if (mdContext ==
NULL)
return;
139 if (inBuf ==
NULL || inLen < 1)
return;
144 mdi = (int) ((mdContext->
i[0] >> 3) & 0x3F);
149 if ((mdContext->
i[0] + ((
MD5UINT4) inLen << 3)) < mdContext->
i[0])
151 mdContext->
i[0] += ((
MD5UINT4) inLen << 3);
152 mdContext->
i[1] += ((
MD5UINT4) inLen >> 29);
158 mdContext->
in[mdi++] = *inBuf++;
164 for (
i = 0, ii = 0;
i < 16;
i++, ii += 4)
187 if (mdContext ==
NULL)
return;
192 in[14] = mdContext->
i[0];
193 in[15] = mdContext->
i[1];
198 mdi = (int) ((mdContext->
i[0] >> 3) & 0x3F);
203 padLen = (mdi < 56) ? (56 - mdi) : (120 - mdi);
209 for (
i = 0, ii = 0;
i < 14;
i++, ii += 4)
219 for (
i = 0, ii = 0;
i < 4;
i++, ii += 4) {
220 mdContext->
digest[ii] = (
unsigned char) (mdContext->
buf[
i] & 0xFF);
221 mdContext->
digest[ii + 1] =
222 (
unsigned char) ((mdContext->
buf[
i] >> 8) & 0xFF);
223 mdContext->
digest[ii + 2] =
224 (
unsigned char) ((mdContext->
buf[
i] >> 16) & 0xFF);
225 mdContext->
digest[ii + 3] =
226 (
unsigned char) ((mdContext->
buf[
i] >> 24) & 0xFF);