Put encryption key into the video identifier so that it is re-made if the key changes.
authorCarl Hetherington <cth@carlh.net>
Thu, 24 Oct 2019 10:47:08 +0000 (12:47 +0200)
committerCarl Hetherington <cth@carlh.net>
Sat, 26 Oct 2019 18:53:08 +0000 (20:53 +0200)
src/lib/film.cc
test/recover_test.cc

index 701eecc39d9d9398534135cf3812085d87bc5732..988b7e2fe639f6ef40b6f91d09e23a283a753fce 100644 (file)
@@ -225,7 +225,8 @@ Film::video_identifier () const
                + "_" + raw_convert<string>(j2k_bandwidth());
 
        if (encrypted ()) {
-               s += "_E";
+               /* This is insecure but hey, the key is in plaintext in metadata.xml */
+               s += "_E" + _key.hex();
        } else {
                s += "_P";
        }
index ecbc38156d4235c2ff687d4b2ba570ac8874e7c4..e8194fd81735f6b9a418cf482e21ee4fce343ac6 100644 (file)
@@ -125,6 +125,7 @@ BOOST_AUTO_TEST_CASE (recover_test_2d_encrypted, * boost::unit_test::depends_on(
        film->set_container (Ratio::from_id ("185"));
        film->set_name ("recover_test");
        film->set_encrypted (true);
+       film->set_key (dcp::Key("eafcb91c9f5472edf01f3a2404c57258"));
 
        shared_ptr<FFmpegContent> content (new FFmpegContent("test/data/count300bd24.m2ts"));
        film->examine_and_add_content (content);
@@ -134,7 +135,7 @@ BOOST_AUTO_TEST_CASE (recover_test_2d_encrypted, * boost::unit_test::depends_on(
        BOOST_REQUIRE (!wait_for_jobs());
 
        boost::filesystem::path const video =
-               "build/test/recover_test_2d_encrypted/video/185_2K_d4343facdd66ca71f62a964fbade89f3_24_100000000_E_S_0_1200000.mxf";
+               "build/test/recover_test_2d_encrypted/video/185_2K_d4343facdd66ca71f62a964fbade89f3_24_100000000_Eeafcb91c9f5472edf01f3a2404c57258_S_0_1200000.mxf";
 
        boost::filesystem::copy_file (
                video,