From 697a8c5a86b013ff4dd78b6c3b79b09522bd9e46 Mon Sep 17 00:00:00 2001 From: Mart Jansink Date: Tue, 13 Feb 2018 13:34:23 +0100 Subject: Make disabling forensic marking optional. --- src/encrypted_kdm.cc | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'src/encrypted_kdm.cc') diff --git a/src/encrypted_kdm.cc b/src/encrypted_kdm.cc index 7286f2d7..ebcb41ca 100644 --- a/src/encrypted_kdm.cc +++ b/src/encrypted_kdm.cc @@ -41,6 +41,7 @@ #include #include #include +#include using std::list; using std::vector; @@ -401,9 +402,19 @@ public: } key_id_list.as_xml (node->add_child ("KeyIdList")); - xmlpp::Element* forensic_mark_flag_list = node->add_child ("ForensicMarkFlagList"); - forensic_mark_flag_list->add_child("ForensicMarkFlag")->add_child_text ("http://www.smpte-ra.org/430-1/2006/KDM#mrkflg-picture-disable"); - forensic_mark_flag_list->add_child("ForensicMarkFlag")->add_child_text ("http://www.smpte-ra.org/430-1/2006/KDM#mrkflg-audio-disable"); + if (disable_forensic_marking_picture || disable_forensic_marking_audio) { + xmlpp::Element* forensic_mark_flag_list = node->add_child ("ForensicMarkFlagList"); + if (disable_forensic_marking_picture) { + forensic_mark_flag_list->add_child("ForensicMarkFlag")->add_child_text ("http://www.smpte-ra.org/430-1/2006/KDM#mrkflg-picture-disable"); + } + if (disable_forensic_marking_audio) { + string mrkflg = "http://www.smpte-ra.org/430-1/2006/KDM#mrkflg-audio-disable"; + if (disable_forensic_marking_audio != -1) { + mrkflg = str (boost::format (mrkflg + "-above-channel-%u") % disable_forensic_marking_audio); + } + forensic_mark_flag_list->add_child("ForensicMarkFlag")->add_child_text (mrkflg); + } + } } Recipient recipient; @@ -412,6 +423,8 @@ public: string content_title_text; LocalTime not_valid_before; LocalTime not_valid_after; + int disable_forensic_marking_picture; + int disable_forensic_marking_audio; boost::optional authorized_device_info; KeyIdList key_id_list; }; @@ -545,6 +558,8 @@ EncryptedKDM::EncryptedKDM ( LocalTime not_valid_before, LocalTime not_valid_after, Formulation formulation, + int disable_forensic_marking_picture, + int disable_forensic_marking_audio, list > key_ids, list keys ) @@ -577,6 +592,8 @@ EncryptedKDM::EncryptedKDM ( kre.content_title_text = content_title_text; kre.not_valid_before = not_valid_before; kre.not_valid_after = not_valid_after; + kre.disable_forensic_marking_picture = disable_forensic_marking_picture; + kre.disable_forensic_marking_audio = disable_forensic_marking_audio; if (formulation != MODIFIED_TRANSITIONAL_TEST) { kre.authorized_device_info = data::AuthorizedDeviceInfo (); -- cgit v1.2.3