- /** Add a key to this KDM.
- * @param type Key type (MDIK, MDAK etc.)
- * @param id Key id.
- * @param key the key itself (which has been used to encrypt a MXF).
+ /** 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 ReelEncryptableAsset>, 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.
+ *
+ * @param cpl CPL that the keys are for.
+ * @param key Key that was used to encrypt the assets.
+ * @param not_valid_before Start time for the KDM.
+ * @param not_valid_after End time for the KDM.