summaryrefslogtreecommitdiff
path: root/src/xml/kdm_smpte.h
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-09-29 21:08:31 +0100
committerCarl Hetherington <cth@carlh.net>2013-09-29 21:08:31 +0100
commitcccab9e0c03bf03e51a8924c05b6e5ed74d94e99 (patch)
tree7b9dd44ba94737703e5bbb6249f10ee56fa8d8be /src/xml/kdm_smpte.h
parent56295f9d82c74b967b234ac89a5600d5cff1b641 (diff)
Fix signing of KDMs.
Diffstat (limited to 'src/xml/kdm_smpte.h')
-rw-r--r--src/xml/kdm_smpte.h18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/xml/kdm_smpte.h b/src/xml/kdm_smpte.h
index d26c4896..32a297f8 100644
--- a/src/xml/kdm_smpte.h
+++ b/src/xml/kdm_smpte.h
@@ -317,16 +317,12 @@ public:
node->done ();
}
- void as_xml (Writer& writer, xmlpp::Element* node) const
+ void as_xml (xmlpp::Element* node) const
{
xmlpp::Element* reference = node->add_child ("Reference", "ds");
reference->set_attribute ("URI", uri);
reference->add_child("DigestMethod", "ds")->set_attribute ("Algorithm", "http://www.w3.org/2001/04/xmlenc#sha256");
reference->add_child("DigestValue", "ds")->add_child_text (digest_value);
-
- if (!uri.empty ()) {
- xmlAddID (0, writer.document->cobj(), (const xmlChar *) uri.substr(1).c_str(), writer.references[uri.substr(1)]->cobj ());
- }
}
std::string uri;
@@ -364,14 +360,14 @@ public:
node->done ();
}
- void as_xml (Writer& writer, xmlpp::Element* node) const
+ void as_xml (xmlpp::Element* node) const
{
xmlpp::Element* si = node->add_child ("SignedInfo", "ds");
si->add_child ("CanonicalizationMethod", "ds")->set_attribute ("Algorithm", "http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments");
si->add_child ("SignatureMethod", "ds")->set_attribute ("Algorithm", "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256");
- authenticated_public.as_xml (writer, si);
- authenticated_private.as_xml (writer, si);
+ authenticated_public.as_xml (si);
+ authenticated_private.as_xml (si);
node->add_child("SignatureValue", "ds")->add_child_text (signature_value);
@@ -413,7 +409,11 @@ public:
authenticated_public.as_xml (writer, root->add_child ("AuthenticatedPublic"));
authenticated_private.as_xml (writer, root->add_child ("AuthenticatedPrivate"));
- signature.as_xml (writer, root->add_child ("Signature", "ds"));
+ signature.as_xml (root->add_child ("Signature", "ds"));
+
+ for (std::map<std::string, xmlpp::Attribute*>::const_iterator i = writer.references.begin(); i != writer.references.end(); ++i) {
+ xmlAddID (0, writer.document->cobj(), (const xmlChar *) i->first.c_str(), i->second->cobj ());
+ }
return writer.document;
}