summaryrefslogtreecommitdiff
path: root/src/certificate_chain.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-03-21 23:08:20 +0000
committerCarl Hetherington <cth@carlh.net>2018-03-21 23:08:20 +0000
commit8c852cbececaa94e7efbb0e8508484e073b06c67 (patch)
tree132c7da6266475034144703f108d3e43f73fe3cf /src/certificate_chain.cc
parent03246708c1ee9c5331eac7d058627655939e30d1 (diff)
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"
Diffstat (limited to 'src/certificate_chain.cc')
-rw-r--r--src/certificate_chain.cc5
1 files changed, 4 insertions, 1 deletions
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
/* <Signer> */
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
/* <Signature> */
- 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");