diff options
| author | Mart Jansink <mart@gofilex.nl> | 2018-02-13 13:34:23 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-02-14 22:16:07 +0000 |
| commit | 697a8c5a86b013ff4dd78b6c3b79b09522bd9e46 (patch) | |
| tree | 13ec1e8bf91e9d0cce3662265e2d5373af4eedf0 /src | |
| parent | 730ba2273b136ad5a3bfc1a185d69e6cc50a65af (diff) | |
Make disabling forensic marking optional.
Diffstat (limited to 'src')
| -rw-r--r-- | src/decrypted_kdm.cc | 4 | ||||
| -rw-r--r-- | src/decrypted_kdm.h | 4 | ||||
| -rw-r--r-- | src/encrypted_kdm.cc | 23 | ||||
| -rw-r--r-- | src/encrypted_kdm.h | 2 |
4 files changed, 28 insertions, 5 deletions
diff --git a/src/decrypted_kdm.cc b/src/decrypted_kdm.cc index 1b226d9b..53e958c1 100644 --- a/src/decrypted_kdm.cc +++ b/src/decrypted_kdm.cc @@ -303,7 +303,7 @@ DecryptedKDM::add_key (DecryptedKDMKey key) EncryptedKDM DecryptedKDM::encrypt ( - shared_ptr<const CertificateChain> signer, Certificate recipient, vector<Certificate> trusted_devices, Formulation formulation + shared_ptr<const CertificateChain> signer, Certificate recipient, vector<Certificate> trusted_devices, Formulation formulation, int disable_forensic_marking_picture, int disable_forensic_marking_audio ) const { DCP_ASSERT (!_keys.empty ()); @@ -369,6 +369,8 @@ DecryptedKDM::encrypt ( _not_valid_before, _not_valid_after, formulation, + disable_forensic_marking_picture, + disable_forensic_marking_audio, key_ids, keys ); diff --git a/src/decrypted_kdm.h b/src/decrypted_kdm.h index 56529b5d..c264bfbc 100644 --- a/src/decrypted_kdm.h +++ b/src/decrypted_kdm.h @@ -130,7 +130,9 @@ public: boost::shared_ptr<const CertificateChain> signer, Certificate recipient, std::vector<Certificate> trusted_devices, - Formulation formulation + Formulation formulation, + int disable_forensic_marking_picture, + int disable_forensic_marking_audio ) const; void add_key (boost::optional<std::string> type, std::string key_id, Key key, std::string cpl_id, Standard standard); 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 <libxml/parser.h> #include <boost/date_time/posix_time/posix_time.hpp> #include <boost/foreach.hpp> +#include <boost/format.hpp> 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<AuthorizedDeviceInfo> 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<pair<string, string> > key_ids, list<string> 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 (); diff --git a/src/encrypted_kdm.h b/src/encrypted_kdm.h index 69b9a267..24e8f060 100644 --- a/src/encrypted_kdm.h +++ b/src/encrypted_kdm.h @@ -110,6 +110,8 @@ private: LocalTime not_valid_before, LocalTime not_valid_after, Formulation formulation, + int disable_forensic_marking_picture, + int disable_forensic_marking_audio, std::list<std::pair<std::string, std::string> > key_ids, std::list<std::string> keys ); |
