|
Lines 29-35
Link Here
|
| 29 |
#ifdef CMS_USE_BIG_ENDIAN |
29 |
#ifdef CMS_USE_BIG_ENDIAN |
| 30 |
|
30 |
|
| 31 |
static |
31 |
static |
| 32 |
void byteReverse(cmsUInt8Number * buf, cmsUInt32Number longs) |
32 |
void byteReverse(cmsContext ContextID, cmsUInt8Number * buf, cmsUInt32Number longs) |
| 33 |
{ |
33 |
{ |
| 34 |
do { |
34 |
do { |
| 35 |
|
35 |
|
|
Lines 42-48
void byteReverse(cmsUInt8Number * buf, cmsUInt32Number longs)
Link Here
|
| 42 |
} |
42 |
} |
| 43 |
|
43 |
|
| 44 |
#else |
44 |
#else |
| 45 |
#define byteReverse(buf, len) |
45 |
#define byteReverse(ContextID, buf, len) |
| 46 |
#endif |
46 |
#endif |
| 47 |
|
47 |
|
| 48 |
|
48 |
|
|
Lines 172-178
cmsHANDLE MD5alloc(cmsContext ContextID)
Link Here
|
| 172 |
|
172 |
|
| 173 |
|
173 |
|
| 174 |
static |
174 |
static |
| 175 |
void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, cmsUInt32Number len) |
175 |
void MD5add(cmsContext ContextID, cmsHANDLE Handle, cmsUInt8Number* buf, cmsUInt32Number len) |
| 176 |
{ |
176 |
{ |
| 177 |
_cmsMD5* ctx = (_cmsMD5*) Handle; |
177 |
_cmsMD5* ctx = (_cmsMD5*) Handle; |
| 178 |
cmsUInt32Number t; |
178 |
cmsUInt32Number t; |
|
Lines 196-202
void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, cmsUInt32Number len)
Link Here
|
| 196 |
} |
196 |
} |
| 197 |
|
197 |
|
| 198 |
memmove(p, buf, t); |
198 |
memmove(p, buf, t); |
| 199 |
byteReverse(ctx->in, 16); |
199 |
byteReverse(ContextID, ctx->in, 16); |
| 200 |
|
200 |
|
| 201 |
MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in); |
201 |
MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in); |
| 202 |
buf += t; |
202 |
buf += t; |
|
Lines 205-211
void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, cmsUInt32Number len)
Link Here
|
| 205 |
|
205 |
|
| 206 |
while (len >= 64) { |
206 |
while (len >= 64) { |
| 207 |
memmove(ctx->in, buf, 64); |
207 |
memmove(ctx->in, buf, 64); |
| 208 |
byteReverse(ctx->in, 16); |
208 |
byteReverse(ContextID, ctx->in, 16); |
| 209 |
MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in); |
209 |
MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in); |
| 210 |
buf += 64; |
210 |
buf += 64; |
| 211 |
len -= 64; |
211 |
len -= 64; |
|
Lines 216-222
void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, cmsUInt32Number len)
Link Here
|
| 216 |
|
216 |
|
| 217 |
// Destroy the object and return the checksum |
217 |
// Destroy the object and return the checksum |
| 218 |
static |
218 |
static |
| 219 |
void MD5finish(cmsProfileID* ProfileID, cmsHANDLE Handle) |
219 |
void MD5finish(cmsContext ContextID, cmsProfileID* ProfileID, cmsHANDLE Handle) |
| 220 |
{ |
220 |
{ |
| 221 |
_cmsMD5* ctx = (_cmsMD5*) Handle; |
221 |
_cmsMD5* ctx = (_cmsMD5*) Handle; |
| 222 |
cmsUInt32Number count; |
222 |
cmsUInt32Number count; |
|
Lines 232-252
void MD5finish(cmsProfileID* ProfileID, cmsHANDLE Handle)
Link Here
|
| 232 |
if (count < 8) { |
232 |
if (count < 8) { |
| 233 |
|
233 |
|
| 234 |
memset(p, 0, count); |
234 |
memset(p, 0, count); |
| 235 |
byteReverse(ctx->in, 16); |
235 |
byteReverse(ContextID, ctx->in, 16); |
| 236 |
MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in); |
236 |
MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in); |
| 237 |
|
237 |
|
| 238 |
memset(ctx->in, 0, 56); |
238 |
memset(ctx->in, 0, 56); |
| 239 |
} else { |
239 |
} else { |
| 240 |
memset(p, 0, count - 8); |
240 |
memset(p, 0, count - 8); |
| 241 |
} |
241 |
} |
| 242 |
byteReverse(ctx->in, 14); |
242 |
byteReverse(ContextID, ctx->in, 14); |
| 243 |
|
243 |
|
| 244 |
((cmsUInt32Number *) ctx->in)[14] = ctx->bits[0]; |
244 |
((cmsUInt32Number *) ctx->in)[14] = ctx->bits[0]; |
| 245 |
((cmsUInt32Number *) ctx->in)[15] = ctx->bits[1]; |
245 |
((cmsUInt32Number *) ctx->in)[15] = ctx->bits[1]; |
| 246 |
|
246 |
|
| 247 |
MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in); |
247 |
MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in); |
| 248 |
|
248 |
|
| 249 |
byteReverse((cmsUInt8Number *) ctx->buf, 4); |
249 |
byteReverse(ContextID, (cmsUInt8Number *) ctx->buf, 4); |
| 250 |
memmove(ProfileID ->ID8, ctx->buf, 16); |
250 |
memmove(ProfileID ->ID8, ctx->buf, 16); |
| 251 |
|
251 |
|
| 252 |
_cmsFree(ctx ->ContextID, ctx); |
252 |
_cmsFree(ctx ->ContextID, ctx); |
|
Lines 291-297
cmsBool CMSEXPORT cmsMD5computeID(cmsContext ContextID, cmsHPROFILE hProfile)
Link Here
|
| 291 |
if (MD5 == NULL) goto Error; |
291 |
if (MD5 == NULL) goto Error; |
| 292 |
|
292 |
|
| 293 |
// Add all bytes |
293 |
// Add all bytes |
| 294 |
MD5add(MD5, Mem, BytesNeeded); |
294 |
MD5add(ContextID,MD5, Mem, BytesNeeded); |
| 295 |
|
295 |
|
| 296 |
// Temp storage is no longer needed |
296 |
// Temp storage is no longer needed |
| 297 |
_cmsFree(ContextID, Mem); |
297 |
_cmsFree(ContextID, Mem); |
|
Lines 300-306
cmsBool CMSEXPORT cmsMD5computeID(cmsContext ContextID, cmsHPROFILE hProfile)
Link Here
|
| 300 |
memmove(Icc, &Keep, sizeof(_cmsICCPROFILE)); |
300 |
memmove(Icc, &Keep, sizeof(_cmsICCPROFILE)); |
| 301 |
|
301 |
|
| 302 |
// And store the ID |
302 |
// And store the ID |
| 303 |
MD5finish(&Icc ->ProfileID, MD5); |
303 |
MD5finish(ContextID, &Icc ->ProfileID, MD5); |
| 304 |
return TRUE; |
304 |
return TRUE; |
| 305 |
|
305 |
|
| 306 |
Error: |
306 |
Error: |
| 307 |
- |
|
|