*/
+#include "config.h"
#include "cross.h"
#include "verify_dcp_job.h"
#include "content.h"
#endif
-VerifyDCPJob::VerifyDCPJob (vector<boost::filesystem::path> directories)
+VerifyDCPJob::VerifyDCPJob(vector<boost::filesystem::path> directories, vector<boost::filesystem::path> kdms)
: Job (shared_ptr<Film>())
, _directories (directories)
+ , _kdms(kdms)
{
}
void
VerifyDCPJob::run ()
{
- _notes = dcp::verify (_directories, bind (&VerifyDCPJob::update_stage, this, _1, _2), bind (&VerifyDCPJob::set_progress, this, _1, false), xsd_path());
+ vector<dcp::DecryptedKDM> decrypted_kdms;
+ auto key = Config::instance()->decryption_chain()->key();
+ if (key) {
+ for (auto kdm: _kdms) {
+ decrypted_kdms.push_back(dcp::DecryptedKDM{dcp::EncryptedKDM(dcp::file_to_string(kdm)), *key});
+ }
+ }
+
+ _notes = dcp::verify(
+ _directories,
+ decrypted_kdms,
+ bind(&VerifyDCPJob::update_stage, this, _1, _2),
+ bind(&VerifyDCPJob::set_progress, this, _1, false),
+ {},
+ libdcp_resources_path() / "xsd"
+ );
bool failed = false;
for (auto i: _notes) {