From d00bd1c4de38a98993c7c70572ff85c460fdcdf2 Mon Sep 17 00:00:00 2001 From: Marti Maria Date: Thu, 18 Apr 2019 11:12:25 +0200 Subject: expose MD5 let people to use MD5 internals. This is added in the plug-ins API --- include/lcms2_plugin.h | 6 ++++++ src/cmsmd5.c | 28 ++++++++++++---------------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/include/lcms2_plugin.h b/include/lcms2_plugin.h index 17bec42..5affa82 100644 --- a/include/lcms2_plugin.h +++ b/include/lcms2_plugin.h @@ -94,6 +94,12 @@ CMSAPI cmsBool CMSEXPORT _cmsMAT3solve(cmsVEC3* x, cmsMAT3* a, cmsVEC CMSAPI void CMSEXPORT _cmsMAT3eval(cmsVEC3* r, const cmsMAT3* a, const cmsVEC3* v); +// MD5 low level ------------------------------------------------------------------------------------- + +CMSAPI cmsHANDLE CMSEXPORT cmsMD5alloc(cmsContext ContextID); +CMSAPI void CMSEXPORT cmsMD5add(cmsHANDLE Handle, const cmsUInt8Number* buf, cmsUInt32Number len); +CMSAPI void CMSEXPORT cmsMD5finish(cmsProfileID* ProfileID, cmsHANDLE Handle); + // Error logging ------------------------------------------------------------------------------------- CMSAPI void CMSEXPORT cmsSignalError(cmsContext ContextID, cmsUInt32Number ErrorCode, const char *ErrorText, ...); diff --git a/src/cmsmd5.c b/src/cmsmd5.c index 4b16ad4..b847faf 100644 --- a/src/cmsmd5.c +++ b/src/cmsmd5.c @@ -65,8 +65,7 @@ typedef struct { static -void MD5_Transform(cmsUInt32Number buf[4], cmsUInt32Number in[16]) - +void cmsMD5_Transform(cmsUInt32Number buf[4], cmsUInt32Number in[16]) { register cmsUInt32Number a, b, c, d; @@ -151,8 +150,8 @@ void MD5_Transform(cmsUInt32Number buf[4], cmsUInt32Number in[16]) // Create a MD5 object -static -cmsHANDLE MD5alloc(cmsContext ContextID) + +cmsHANDLE CMSEXPORT cmsMD5alloc(cmsContext ContextID) { _cmsMD5* ctx = (_cmsMD5*) _cmsMallocZero(ContextID, sizeof(_cmsMD5)); if (ctx == NULL) return NULL; @@ -170,9 +169,7 @@ cmsHANDLE MD5alloc(cmsContext ContextID) return (cmsHANDLE) ctx; } - -static -void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, cmsUInt32Number len) +void CMSEXPORT cmsMD5add(cmsHANDLE Handle, const cmsUInt8Number* buf, cmsUInt32Number len) { _cmsMD5* ctx = (_cmsMD5*) Handle; cmsUInt32Number t; @@ -198,7 +195,7 @@ void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, cmsUInt32Number len) memmove(p, buf, t); byteReverse(ctx->in, 16); - MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in); + cmsMD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in); buf += t; len -= t; } @@ -206,7 +203,7 @@ void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, cmsUInt32Number len) while (len >= 64) { memmove(ctx->in, buf, 64); byteReverse(ctx->in, 16); - MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in); + cmsMD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in); buf += 64; len -= 64; } @@ -215,8 +212,7 @@ void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, cmsUInt32Number len) } // Destroy the object and return the checksum -static -void MD5finish(cmsProfileID* ProfileID, cmsHANDLE Handle) +void CMSEXPORT cmsMD5finish(cmsProfileID* ProfileID, cmsHANDLE Handle) { _cmsMD5* ctx = (_cmsMD5*) Handle; cmsUInt32Number count; @@ -233,7 +229,7 @@ void MD5finish(cmsProfileID* ProfileID, cmsHANDLE Handle) memset(p, 0, count); byteReverse(ctx->in, 16); - MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in); + cmsMD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in); memset(ctx->in, 0, 56); } else { @@ -244,7 +240,7 @@ void MD5finish(cmsProfileID* ProfileID, cmsHANDLE Handle) ((cmsUInt32Number *) ctx->in)[14] = ctx->bits[0]; ((cmsUInt32Number *) ctx->in)[15] = ctx->bits[1]; - MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in); + cmsMD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in); byteReverse((cmsUInt8Number *) ctx->buf, 4); memmove(ProfileID ->ID8, ctx->buf, 16); @@ -290,11 +286,11 @@ cmsBool CMSEXPORT cmsMD5computeID(cmsHPROFILE hProfile) if (!cmsSaveProfileToMem(hProfile, Mem, &BytesNeeded)) goto Error; // Create MD5 object - MD5 = MD5alloc(ContextID); + MD5 = cmsMD5alloc(ContextID); if (MD5 == NULL) goto Error; // Add all bytes - MD5add(MD5, Mem, BytesNeeded); + cmsMD5add(MD5, Mem, BytesNeeded); // Temp storage is no longer needed _cmsFree(ContextID, Mem); @@ -303,7 +299,7 @@ cmsBool CMSEXPORT cmsMD5computeID(cmsHPROFILE hProfile) memmove(Icc, &Keep, sizeof(_cmsICCPROFILE)); // And store the ID - MD5finish(&Icc ->ProfileID, MD5); + cmsMD5finish(&Icc ->ProfileID, MD5); return TRUE; Error: -- cgit v1.2.1