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)
165 in[i] = (((
MD5UINT4) mdContext->
in[ii + 3]) << 24) |
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)
210 in[i] = (((
MD5UINT4) mdContext->
in[ii + 3]) << 24) |
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);
234 MD5UINT4 a = buf[0],
b = buf[1],
c = buf[2],
d = buf[3];
243 FF(a, b, c, d, in[0],
S11, 3614090360u);
244 FF(d, a, b, c, in[1],
S12, 3905402710u);
245 FF(c, d, a, b, in[2],
S13, 606105819u);
246 FF(b, c, d, a, in[3],
S14, 3250441966u);
247 FF(a, b, c, d, in[4],
S11, 4118548399u);
248 FF(d, a, b, c, in[5],
S12, 1200080426u);
249 FF(c, d, a, b, in[6],
S13, 2821735955u);
250 FF(b, c, d, a, in[7],
S14, 4249261313u);
251 FF(a, b, c, d, in[8],
S11, 1770035416u);
252 FF(d, a, b, c, in[9],
S12, 2336552879u);
253 FF(c, d, a, b, in[10],
S13, 4294925233u);
254 FF(b, c, d, a, in[11],
S14, 2304563134u);
255 FF(a, b, c, d, in[12],
S11, 1804603682u);
256 FF(d, a, b, c, in[13],
S12, 4254626195u);
257 FF(c, d, a, b, in[14],
S13, 2792965006u);
258 FF(b, c, d, a, in[15],
S14, 1236535329u);
267 GG(a, b, c, d, in[1],
S21, 4129170786u);
268 GG(d, a, b, c, in[6],
S22, 3225465664u);
269 GG(c, d, a, b, in[11],
S23, 643717713u);
270 GG(b, c, d, a, in[0],
S24, 3921069994u);
271 GG(a, b, c, d, in[5],
S21, 3593408605u);
272 GG(d, a, b, c, in[10],
S22, 38016083u);
273 GG(c, d, a, b, in[15],
S23, 3634488961u);
274 GG(b, c, d, a, in[4],
S24, 3889429448u);
275 GG(a, b, c, d, in[9],
S21, 568446438u);
276 GG(d, a, b, c, in[14],
S22, 3275163606u);
277 GG(c, d, a, b, in[3],
S23, 4107603335u);
278 GG(b, c, d, a, in[8],
S24, 1163531501u);
279 GG(a, b, c, d, in[13],
S21, 2850285829u);
280 GG(d, a, b, c, in[2],
S22, 4243563512u);
281 GG(c, d, a, b, in[7],
S23, 1735328473u);
282 GG(b, c, d, a, in[12],
S24, 2368359562u);
291 HH(a, b, c, d, in[5],
S31, 4294588738u);
292 HH(d, a, b, c, in[8],
S32, 2272392833u);
293 HH(c, d, a, b, in[11],
S33, 1839030562u);
294 HH(b, c, d, a, in[14],
S34, 4259657740u);
295 HH(a, b, c, d, in[1],
S31, 2763975236u);
296 HH(d, a, b, c, in[4],
S32, 1272893353u);
297 HH(c, d, a, b, in[7],
S33, 4139469664u);
298 HH(b, c, d, a, in[10],
S34, 3200236656u);
299 HH(a, b, c, d, in[13],
S31, 681279174u);
300 HH(d, a, b, c, in[0],
S32, 3936430074u);
301 HH(c, d, a, b, in[3],
S33, 3572445317u);
302 HH(b, c, d, a, in[6],
S34, 76029189u);
303 HH(a, b, c, d, in[9],
S31, 3654602809u);
304 HH(d, a, b, c, in[12],
S32, 3873151461u);
305 HH(c, d, a, b, in[15],
S33, 530742520u);
306 HH(b, c, d, a, in[2],
S34, 3299628645u);
315 II(a, b, c, d, in[0],
S41, 4096336452u);
316 II(d, a, b, c, in[7],
S42, 1126891415u);
317 II(c, d, a, b, in[14],
S43, 2878612391u);
318 II(b, c, d, a, in[5],
S44, 4237533241u);
319 II(a, b, c, d, in[12],
S41, 1700485571u);
320 II(d, a, b, c, in[3],
S42, 2399980690u);
321 II(c, d, a, b, in[10],
S43, 4293915773u);
322 II(b, c, d, a, in[1],
S44, 2240044497u);
323 II(a, b, c, d, in[8],
S41, 1873313359u);
324 II(d, a, b, c, in[15],
S42, 4264355552u);
325 II(c, d, a, b, in[6],
S43, 2734768916u);
326 II(b, c, d, a, in[13],
S44, 1309151649u);
327 II(a, b, c, d, in[4],
S41, 4149444226u);
328 II(d, a, b, c, in[11],
S42, 3174756917u);
329 II(c, d, a, b, in[2],
S43, 718787259u);
330 II(b, c, d, a, in[9],
S44, 3951481745u);
static unsigned char MD5PADDING[64]
void SDLTest_Md5Init(SDLTest_Md5Context *mdContext)
initialize the context
#define HH(a, b, c, d, x, s, ac)
static void SDLTest_Md5Transform(MD5UINT4 *buf, MD5UINT4 *in)
#define II(a, b, c, d, x, s, ac)
SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char const char SDL_SCANF_FORMAT_STRING const char return SDL_ThreadFunction const char void return Uint32 return Uint32 SDL_AssertionHandler void SDL_SpinLock SDL_atomic_t int int return SDL_atomic_t return void void void return void return int return SDL_AudioSpec SDL_AudioSpec return int int return return int SDL_RWops int SDL_AudioSpec Uint8 ** d
#define GG(a, b, c, d, x, s, ac)
void SDLTest_Md5Final(SDLTest_Md5Context *mdContext)
complete digest computation
#define FF(a, b, c, d, x, s, ac)
GLenum GLuint GLenum GLsizei const GLchar * buf
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int in i)
unsigned long int MD5UINT4
void SDLTest_Md5Update(SDLTest_Md5Context *mdContext, unsigned char *inBuf, unsigned int inLen)
update digest from variable length data
GLboolean GLboolean GLboolean GLboolean a
GLboolean GLboolean GLboolean b