summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sheby <sheby+github@abtech.org>2020-05-06 08:55:13 -0700
committerMatthew Sheby <sheby+github@abtech.org>2020-05-06 08:55:13 -0700
commita4985b67a013b29520f289ff671516bc712de468 (patch)
treec6a6c31d50bf99a2c74e96de3d28d206d4c73bd2
parent7b70b206a3bd767aad3a9a3c789cff9d0e9c38f2 (diff)
add API call to expose the MIC key from an encrypted MXF
-rwxr-xr-xsrc/AS_DCP.h5
-rwxr-xr-xsrc/AS_DCP_AES.cpp21
2 files changed, 26 insertions, 0 deletions
diff --git a/src/AS_DCP.h b/src/AS_DCP.h
index 74991f6..b5bf96d 100755
--- a/src/AS_DCP.h
+++ b/src/AS_DCP.h
@@ -507,6 +507,11 @@ namespace ASDCP {
// point to a readable area of memory that is at least HMAC_SIZE bytes in length.
// Returns error if the buf argument is NULL or if the values do ot match.
Result_t TestHMACValue(const byte_t* buf) const;
+
+ // Writes MIC key to given buffer. buf must point to a writable area of
+ // memory that is at least KeyLen bytes in length. Returns error if the
+ // buf argument is NULL.
+ Result_t GetMICKey(byte_t* buf) const;
};
//---------------------------------------------------------------------------------
diff --git a/src/AS_DCP_AES.cpp b/src/AS_DCP_AES.cpp
index 379e8ab..6409f5b 100755
--- a/src/AS_DCP_AES.cpp
+++ b/src/AS_DCP_AES.cpp
@@ -349,6 +349,13 @@ public:
SHA1_Final(m_SHAValue, &SHA);
m_Final = true;
}
+
+ //
+ void
+ GetMICKey(byte_t* buf) const
+ {
+ memcpy(buf, m_key, KeyLen);
+ }
};
@@ -444,6 +451,20 @@ HMACContext::TestHMACValue(const byte_t* buf) const
}
+//
+Result_t
+HMACContext::GetMICKey(byte_t* buf) const
+{
+ KM_TEST_NULL_L(buf);
+
+ if ( m_Context.empty() )
+ return RESULT_INIT;
+
+ m_Context->GetMICKey(buf);
+ return RESULT_OK;
+}
+
+
//
// end AS_DCP_AES.cpp