From 69f25e496ba409c02aa27b1e07dfcde34c86a32b Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 15 Nov 2015 20:57:47 +0000 Subject: [PATCH] Basic support for trusted device lists in KDMs (#750). --- ChangeLog | 4 ++++ cscript | 4 ++-- src/lib/film.cc | 7 ++++--- src/lib/film.h | 3 ++- src/tools/dcpomatic_kdm.cc | 2 +- src/tools/dcpomatic_kdm_cli.cc | 2 +- test/import_dcp_test.cc | 2 ++ 7 files changed, 16 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3b65b102a..9c11249c6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2015-11-15 Carl Hetherington + + * Basic support for trusted device lists in KDMs (#750). + 2015-11-14 Carl Hetherington * Updated nl_NL translation from Rob van Nieuwkerk. diff --git a/cscript b/cscript index dce2aa0c1..33669f95c 100644 --- a/cscript +++ b/cscript @@ -279,8 +279,8 @@ def dependencies(target): ffmpeg_options = {} return (('ffmpeg-cdist', 'd0986a9', ffmpeg_options), - ('libdcp', '89d891b'), - ('libsub', 'e4fde97')) + ('libdcp', '332c7c3'), + ('libsub', '8182aed')) def configure_options(target): opt = '' diff --git a/src/lib/film.cc b/src/lib/film.cc index d406152a1..6c0b4d5a5 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -1113,7 +1113,8 @@ Film::frame_size () const dcp::EncryptedKDM Film::make_kdm ( - dcp::Certificate target, + dcp::Certificate recipient, + vector trusted_devices, boost::filesystem::path cpl_file, dcp::LocalTime from, dcp::LocalTime until, @@ -1128,7 +1129,7 @@ Film::make_kdm ( return dcp::DecryptedKDM ( cpl, key(), from, until, "DCP-o-matic", cpl->content_title_text(), dcp::LocalTime().as_string() - ).encrypt (signer, target, formulation); + ).encrypt (signer, recipient, trusted_devices, formulation); } list @@ -1144,7 +1145,7 @@ Film::make_kdms ( BOOST_FOREACH (shared_ptr i, screens) { if (i->recipient) { - kdms.push_back (ScreenKDM (i, make_kdm (i->recipient.get(), dcp, from, until, formulation))); + kdms.push_back (ScreenKDM (i, make_kdm (i->recipient.get(), i->trusted_devices, dcp, from, until, formulation))); } } diff --git a/src/lib/film.h b/src/lib/film.h index 400442103..faa7cf5ba 100644 --- a/src/lib/film.h +++ b/src/lib/film.h @@ -121,7 +121,8 @@ public: dcp::EncryptedKDM make_kdm ( - dcp::Certificate target, + dcp::Certificate recipient, + std::vector trusted_devices, boost::filesystem::path cpl_file, dcp::LocalTime from, dcp::LocalTime until, diff --git a/src/tools/dcpomatic_kdm.cc b/src/tools/dcpomatic_kdm.cc index 2c96f37b2..ae5802e74 100644 --- a/src/tools/dcpomatic_kdm.cc +++ b/src/tools/dcpomatic_kdm.cc @@ -279,7 +279,7 @@ private: } /* Encrypt */ - screen_kdms.push_back (ScreenKDM (i, kdm.encrypt (signer, i->recipient.get(), _output->formulation()))); + screen_kdms.push_back (ScreenKDM (i, kdm.encrypt (signer, i->recipient.get(), i->trusted_devices, _output->formulation()))); } if (_output->write_to()) { diff --git a/src/tools/dcpomatic_kdm_cli.cc b/src/tools/dcpomatic_kdm_cli.cc index c49642c8e..2f8212a61 100644 --- a/src/tools/dcpomatic_kdm_cli.cc +++ b/src/tools/dcpomatic_kdm_cli.cc @@ -255,7 +255,7 @@ int main (int argc, char* argv[]) } dcp::Certificate certificate (dcp::file_to_string (certificate_file)); - dcp::EncryptedKDM kdm = film->make_kdm (certificate, cpl, valid_from.get(), valid_to.get(), formulation); + dcp::EncryptedKDM kdm = film->make_kdm (certificate, vector(), cpl, valid_from.get(), valid_to.get(), formulation); kdm.as_xml (output); if (verbose) { cout << "Generated KDM " << output << " for certificate.\n"; diff --git a/test/import_dcp_test.cc b/test/import_dcp_test.cc index 45cd9f413..32e31da47 100644 --- a/test/import_dcp_test.cc +++ b/test/import_dcp_test.cc @@ -29,6 +29,7 @@ #include #include +using std::vector; using boost::shared_ptr; /** Make an encrypted DCP, import it and make a new unencrypted DCP */ @@ -54,6 +55,7 @@ BOOST_AUTO_TEST_CASE (import_dcp_test) dcp::EncryptedKDM kdm = A->make_kdm ( Config::instance()->decryption_chain()->leaf (), + vector (), A_dcp.cpls().front()->file (), dcp::LocalTime ("2014-07-21T00:00:00+00:00"), dcp::LocalTime ("2024-07-21T00:00:00+00:00"), -- 2.30.2