diff options
Diffstat (limited to 'src/lib/screen.cc')
| -rw-r--r-- | src/lib/screen.cc | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/lib/screen.cc b/src/lib/screen.cc index 453a833d7..5ef007214 100644 --- a/src/lib/screen.cc +++ b/src/lib/screen.cc @@ -20,6 +20,7 @@ #include "cinema.h" +#include "config.h" #include "film.h" #include "kdm_util.h" #include "kdm_with_metadata.h" @@ -95,16 +96,13 @@ kdm_for_screen ( period_checks.push_back(check_kdm_and_certificate_validity_periods(screen->recipient.get(), begin, end)); - auto const kdm = film->make_kdm ( - screen->recipient.get(), - screen->trusted_device_thumbprints(), - cpl, - begin, - end, - formulation, - disable_forensic_marking_picture, - disable_forensic_marking_audio - ); + auto signer = Config::instance()->signer_chain(); + if (!signer->valid()) { + throw InvalidSignerError(); + } + + auto const decrypted_kdm = film->make_kdm(cpl, begin, end); + auto kdm = decrypted_kdm.encrypt(signer, screen->recipient.get(), screen->trusted_device_thumbprints(), formulation, disable_forensic_marking_picture, disable_forensic_marking_audio); dcp::NameFormat::Map name_values; if (cinema) { |
