xmlpp::Element* device_list = node->add_child ("DeviceList");
device_list->add_child("CertificateThumbprint")->add_child_text (certificate_thumbprint);
}
-
+
+ /** DeviceListIdentifier without the urn:uuid: prefix */
string device_list_identifier;
string device_list_description;
string certificate_thumbprint;
}
}
-EncryptedKDM::EncryptedKDM (boost::filesystem::path file)
- : _data (new data::EncryptedKDMData (shared_ptr<cxml::Node> (new cxml::Document ("DCinemaSecurityMessage", file))))
+EncryptedKDM::EncryptedKDM (string s)
{
-
+ shared_ptr<cxml::Document> doc (new cxml::Document ("DCinemaSecurityMessage"));
+ doc->read_string (s);
+ _data = new data::EncryptedKDMData (doc);
}
EncryptedKDM::EncryptedKDM (
shared_ptr<const Signer> signer,
- shared_ptr<const Certificate> recipient,
+ Certificate recipient,
string device_list_description,
string cpl_id,
string content_title_text,
/* Fill our XML-ish description in with the juicy bits that the caller has given */
data::AuthenticatedPublic& aup = _data->authenticated_public;
- aup.signer.x509_issuer_name = signer->certificates().leaf()->issuer ();
- aup.signer.x509_serial_number = signer->certificates().leaf()->serial ();
+ aup.signer.x509_issuer_name = signer->certificates().leaf().issuer ();
+ aup.signer.x509_serial_number = signer->certificates().leaf().serial ();
data::KDMRequiredExtensions& kre = _data->authenticated_public.required_extensions.kdm_required_extensions;
- kre.recipient.x509_issuer_serial.x509_issuer_name = recipient->issuer ();
- kre.recipient.x509_issuer_serial.x509_serial_number = recipient->serial ();
- kre.recipient.x509_subject_name = recipient->subject ();
+ kre.recipient.x509_issuer_serial.x509_issuer_name = recipient.issuer ();
+ kre.recipient.x509_issuer_serial.x509_serial_number = recipient.serial ();
+ kre.recipient.x509_subject_name = recipient.subject ();
kre.authorized_device_info.device_list_description = device_list_description;
kre.composition_playlist_id = cpl_id;
if (formulation == DCI_ANY || formulation == DCI_SPECIFIC) {
- kre.content_authenticator = signer->certificates().leaf()->thumbprint ();
+ kre.content_authenticator = signer->certificates().leaf().thumbprint ();
}
kre.content_title_text = content_title_text;
kre.not_valid_before = not_valid_before;
kre.not_valid_after = not_valid_after;
- kre.authorized_device_info.device_list_identifier = "urn:uuid:" + make_uuid ();
- string n = recipient->common_name ();
+ kre.authorized_device_info.device_list_identifier = make_uuid ();
+ string n = recipient.common_name ();
if (n.find (".") != string::npos) {
n = n.substr (n.find (".") + 1);
}
kre.authorized_device_info.certificate_thumbprint = "2jmj7l5rSw0yVb/vlWAYkK/YBwk=";
} else if (formulation == DCI_SPECIFIC) {
/* Use the recipient thumbprint */
- kre.authorized_device_info.certificate_thumbprint = recipient->thumbprint ();
+ kre.authorized_device_info.certificate_thumbprint = recipient.thumbprint ();
}
for (list<pair<string, string> >::const_iterator i = key_ids.begin(); i != key_ids.end(); ++i) {