X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fencrypted_kdm.h;h=e74dde699bbd85f6583823f03b0f830caa5b5bb8;hb=refs%2Ftags%2Fv1.8.4;hp=1605d9111ddcce9af04e7cc4f433d6670d3f8d6a;hpb=ce6ced029aefe5c3996bd61b0778bcd7433b2fb3;p=libdcp.git diff --git a/src/encrypted_kdm.h b/src/encrypted_kdm.h index 1605d911..e74dde69 100644 --- a/src/encrypted_kdm.h +++ b/src/encrypted_kdm.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2013-2016 Carl Hetherington + Copyright (C) 2013-2021 Carl Hetherington This file is part of libdcp. @@ -31,34 +31,42 @@ files in the program, then also delete it here. */ + /** @file src/encrypted_kdm.h - * @brief EncryptedKDM class. + * @brief EncryptedKDM class */ + #ifndef LIBDCP_ENCRYPTED_KDM_H #define LIBDCP_ENCRYPTED_KDM_H + #include "local_time.h" #include "types.h" #include #include #include + namespace cxml { class Node; } + namespace dcp { + namespace data { class EncryptedKDMData; } + class CertificateChain; class Certificate; + /** @class EncryptedKDM - * @brief An encrypted KDM. + * @brief An encrypted KDM * * This is a KDM whose keys are encrypted using the target projector's private key. * An EncryptedKDM object can be initialised from a KDM XML file, or created from @@ -84,8 +92,9 @@ public: * Note that the returned `keys' contain more than just the asset decryption * keys (also key id, CPL id etc.) */ - std::list keys () const; + std::vector keys () const; + std::string id () const; boost::optional annotation_text () const; std::string content_title_text () const; std::string issue_date () const; @@ -93,6 +102,7 @@ public: LocalTime not_valid_before () const; LocalTime not_valid_after () const; std::string recipient_x509_subject_name () const; + CertificateChain signer_certificate_chain () const; private: @@ -100,24 +110,28 @@ private: /** Construct an EncryptedKDM from a set of details */ EncryptedKDM ( - boost::shared_ptr signer, + std::shared_ptr signer, Certificate recipient, - std::vector trusted_devices, + std::vector trusted_devices, std::string cpl_id, std::string cpl_content_title_text, boost::optional annotation_text, LocalTime not_valid_before, LocalTime not_valid_after, Formulation formulation, - std::list > key_ids, - std::list keys + bool disable_forensic_marking_picture, + boost::optional disable_forensic_marking_audio, + std::vector> key_ids, + std::vector keys ); - data::EncryptedKDMData* _data; + data::EncryptedKDMData* _data = nullptr; }; + extern bool operator== (EncryptedKDM const & a, EncryptedKDM const & b); } + #endif