diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/decrypted_kdm.cc | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/decrypted_kdm.cc b/src/decrypted_kdm.cc index 05ea73a3..c9c58951 100644 --- a/src/decrypted_kdm.cc +++ b/src/decrypted_kdm.cc @@ -236,16 +236,19 @@ DecryptedKDM::DecryptedKDM ( , _issue_date (issue_date) { /* Create DecryptedKDMKey objects for each encryptable asset */ + bool did_one = false; BOOST_FOREACH(shared_ptr<const ReelAsset> i, cpl->reel_assets ()) { shared_ptr<const ReelMXF> mxf = boost::dynamic_pointer_cast<const ReelMXF> (i); shared_ptr<const ReelAsset> asset = boost::dynamic_pointer_cast<const ReelAsset> (i); - if (asset && mxf) { - if (!mxf->key_id ()) { - throw NotEncryptedError (asset->id ()); - } + if (asset && mxf && mxf->key_id ()) { _keys.push_back (DecryptedKDMKey (mxf->key_type(), mxf->key_id().get(), key, cpl->id ())); + did_one = true; } } + + if (!did_one) { + throw NotEncryptedError (cpl->id ()); + } } /** @param type (MDIK, MDAK etc.) |
