diff options
author | Marti Maria <info@littlecms.com> | 2019-04-18 11:12:25 +0200 |
---|---|---|
committer | Marti Maria <info@littlecms.com> | 2019-04-18 11:12:25 +0200 |
commit | d00bd1c4de38a98993c7c70572ff85c460fdcdf2 (patch) | |
tree | 185b2c0a17352671af20da0501b3987cc24c3042 | |
parent | 239fc8734f180f0847d4405f32dd1459ee30ba98 (diff) | |
download | lcms2-d00bd1c4de38a98993c7c70572ff85c460fdcdf2.tar.gz |
expose MD5
let people to use MD5 internals. This is added in the plug-ins API
-rw-r--r-- | include/lcms2_plugin.h | 6 | ||||
-rw-r--r-- | 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: |