}
if( ASDCP_SUCCESS(result) )
- result = ReadEKLVPacket(FrameNum, FrameBuf, EssenceUL, Ctx, HMAC);
+ result = ReadEKLVPacket(FrameNum, FrameNum + 1, FrameBuf, EssenceUL, Ctx, HMAC);
return result;
}
Result_t
-ASDCP::h__Reader::ReadEKLVPacket(ui32_t FrameNum, ASDCP::FrameBuffer& FrameBuf,
+ASDCP::h__Reader::ReadEKLVPacket(ui32_t FrameNum, ui32_t SequenceNum, ASDCP::FrameBuffer& FrameBuf,
const byte_t* EssenceUL, AESDecContext* Ctx, HMACContext* HMAC)
{
KLReader Reader;
}
// read encrypted triplet value into internal buffer
- m_CtFrameBuf.Capacity(PacketLength);
+ assert(PacketLength <= 0xFFFFFFFFL);
+ m_CtFrameBuf.Capacity((ui32_t) PacketLength);
ui32_t read_count;
- result = m_File.Read(m_CtFrameBuf.Data(), PacketLength, &read_count);
+ result = m_File.Read(m_CtFrameBuf.Data(), (ui32_t) PacketLength,
+ &read_count);
if ( ASDCP_FAILURE(result) )
return result;
return RESULT_FORMAT;
}
- m_CtFrameBuf.Size(PacketLength);
+ m_CtFrameBuf.Size((ui32_t) PacketLength);
// should be const but mxflib::ReadBER is not
byte_t* ess_p = m_CtFrameBuf.Data();
if ( ASDCP_SUCCESS(result) && m_Info.UsesHMAC && HMAC )
{
IntegrityPack IntPack;
- result = IntPack.TestValues(TmpWrapper, m_Info.AssetUUID, FrameNum + 1, HMAC);
+ result = IntPack.TestValues(TmpWrapper, m_Info.AssetUUID, SequenceNum, HMAC);
}
}
else // return ciphertext to caller
// read the data into the supplied buffer
ui32_t read_count;
- result = m_File.Read(FrameBuf.Data(), PacketLength, &read_count);
+ assert(PacketLength <= 0xFFFFFFFFL);
+ result = m_File.Read(FrameBuf.Data(), (ui32_t) PacketLength, &read_count);
if ( ASDCP_FAILURE(result) )
return result;