+ /** Create an empty DecryptedKDM. After creation you must call
+ * add_key() to add each key that you want in the KDM.
+ *
+ * @param not_valid_before Start time for the KDM.
+ * @param not_valid_after End time for the KDM.
+ */
+ DecryptedKDM (
+ LocalTime not_valid_before,
+ LocalTime not_valid_after,
+ std::string annotation_text,
+ std::string content_title_text,
+ std::string issue_date
+ );
+
+ /** Construct a DecryptedKDM containing a given set of keys.
+ * @param keys Keys to be included in the DecryptedKDM.
+ */
+ DecryptedKDM (
+ std::string cpl_id,
+ std::map<std::shared_ptr<const ReelFileAsset>, Key> keys,
+ LocalTime not_valid_before,
+ LocalTime not_valid_after,
+ std::string annotation_text,
+ std::string content_title_text,
+ std::string issue_date
+ );
+
+ /** Create a DecryptedKDM by taking a CPL and setting up to encrypt each of its
+ * assets with the same symmetric key.
+ *