From 8c852cbececaa94e7efbb0e8508484e073b06c67 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 21 Mar 2018 23:08:20 +0000 Subject: Put xmlns:dsig on Signer and Signature rather than on the whole CPL/PKL as a certain large distribution company's checkers don't like having multiple namespaces: "XML root element can contain only one namespace" --- src/certificate_chain.cc | 5 ++++- src/cpl.cc | 4 ---- src/dcp.cc | 4 ---- 3 files changed, 4 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/certificate_chain.cc b/src/certificate_chain.cc index 851252af..d30e6567 100644 --- a/src/certificate_chain.cc +++ b/src/certificate_chain.cc @@ -563,6 +563,7 @@ CertificateChain::sign (xmlpp::Element* parent, Standard standard) const /* */ xmlpp::Element* signer = parent->add_child("Signer"); + signer->set_namespace_declaration ("http://www.w3.org/2000/09/xmldsig#", "dsig"); xmlpp::Element* data = signer->add_child("X509Data", "dsig"); xmlpp::Element* serial_element = data->add_child("X509IssuerSerial", "dsig"); serial_element->add_child("X509IssuerName", "dsig")->add_child_text (leaf().issuer()); @@ -571,7 +572,9 @@ CertificateChain::sign (xmlpp::Element* parent, Standard standard) const /* */ - xmlpp::Element* signature = parent->add_child("Signature", "dsig"); + xmlpp::Element* signature = parent->add_child("Signature"); + signature->set_namespace_declaration ("http://www.w3.org/2000/09/xmldsig#", "dsig"); + signature->set_namespace ("dsig"); xmlpp::Element* signed_info = signature->add_child ("SignedInfo", "dsig"); signed_info->add_child("CanonicalizationMethod", "dsig")->set_attribute ("Algorithm", "http://www.w3.org/TR/2001/REC-xml-c14n-20010315"); diff --git a/src/cpl.cc b/src/cpl.cc index f807bc61..aa61ec7a 100644 --- a/src/cpl.cc +++ b/src/cpl.cc @@ -140,10 +140,6 @@ CPL::write_xml (boost::filesystem::path file, Standard standard, shared_ptrset_namespace_declaration ("http://www.w3.org/2000/09/xmldsig#", "dsig"); - } - root->add_child("Id")->add_child_text ("urn:uuid:" + _id); root->add_child("AnnotationText")->add_child_text (_metadata.annotation_text); root->add_child("IssueDate")->add_child_text (_metadata.issue_date); diff --git a/src/dcp.cc b/src/dcp.cc index 7b4f9bda..e56547e3 100644 --- a/src/dcp.cc +++ b/src/dcp.cc @@ -321,10 +321,6 @@ DCP::write_pkl (string file, Standard standard, string pkl_uuid, XMLMetadata met pkl = doc.create_root_node("PackingList", pkl_smpte_ns); } - if (signer) { - pkl->set_namespace_declaration ("http://www.w3.org/2000/09/xmldsig#", "dsig"); - } - pkl->add_child("Id")->add_child_text ("urn:uuid:" + pkl_uuid); pkl->add_child("AnnotationText")->add_child_text (metadata.annotation_text); pkl->add_child("IssueDate")->add_child_text (metadata.issue_date); -- cgit v1.2.3