From: Wolfgang Ruppel Date: Wed, 23 Oct 2019 18:32:44 +0000 (-0700) Subject: Merge pull request #4 from cinecert/master X-Git-Tag: rel_2_10_35~9^2~2 X-Git-Url: https://git.carlh.net/gitweb/?a=commitdiff_plain;h=b36c5af3e7af9c2ce2ea8828f6eed51385413d21;hp=ae53f039c3bca75a60ad4c7fa8e004ab1c530a96;p=asdcplib.git Merge pull request #4 from cinecert/master Sync with upstream --- diff --git a/configure.ac b/configure.ac index d4a7459..be578c8 100644 --- a/configure.ac +++ b/configure.ac @@ -37,7 +37,7 @@ AC_PREREQ([2.59]) # For example, if asdcplib version 1.0.0 were modified to accomodate changes # in file format, and if no changes were made to AS_DCP.h, the new version would be # 1.0.1. If changes were also required in AS_DCP.h, the new version would be 1.1.1. -AC_INIT([asdcplib], [2.10.34], [asdcplib@cinecert.com]) +AC_INIT([asdcplib], [2.10.35], [asdcplib@cinecert.com]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_SRCDIR([src/KM_error.h]) diff --git a/src/AS_DCP_MXF.cpp b/src/AS_DCP_MXF.cpp index e23fb86..d3606fe 100755 --- a/src/AS_DCP_MXF.cpp +++ b/src/AS_DCP_MXF.cpp @@ -36,6 +36,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "ACES.h" #include "MPEG.h" #include "Wav.h" +#include "KM_util.h" #include #include @@ -688,7 +689,33 @@ ASDCP::IntegrityPack::TestValues(const ASDCP::FrameBuffer& FB, const byte_t* Ass HMAC->Update(FB.RoData(), FB.Size() - HMAC_SIZE); HMAC->Finalize(); - return HMAC->TestHMACValue(p); + Result_t result = RESULT_OK; + result = HMAC->TestHMACValue(p); + + if (KM_FAILURE(result)) + { + Result_t r = RESULT_OK; + char hmac_str[HMAC_SIZE*10]; + char found_str[HMAC_SIZE*10]; + byte_t hmac_buf[HMAC_SIZE]; + + + Kumu::bin2hex(p, HMAC_SIZE, found_str, HMAC_SIZE*10); + + r = HMAC->GetHMACValue(hmac_buf); + if ( KM_SUCCESS( r ) ) + { + Kumu::bin2hex(hmac_buf, HMAC_SIZE, hmac_str, HMAC_SIZE*10); + } + else + { + snprintf(hmac_str, HMAC_SIZE*10, " - read error - "); + } + + DefaultLogSink().Error("IntegrityPack failure: HMAC is %s, expecting %s.\n", found_str, hmac_str); + } + + return result; } //