summaryrefslogtreecommitdiff
path: root/src/signer.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-10-10 16:07:44 +0100
committerCarl Hetherington <cth@carlh.net>2014-10-10 16:07:44 +0100
commite30c30ef7bbd8413ac0c8390abe574d5dd1cf5f7 (patch)
treef67b4a9364264d433535dbc24a19b6df6ac59049 /src/signer.cc
parent863ff8cced5b7d1d36ad6761fa1f6e2dbeafcad6 (diff)
Adapt to new libcxml ARI. Compiles but does not pass tests.1.0-new-cxml
Diffstat (limited to 'src/signer.cc')
-rw-r--r--src/signer.cc46
1 files changed, 23 insertions, 23 deletions
diff --git a/src/signer.cc b/src/signer.cc
index 67c8ac58..bf01382a 100644
--- a/src/signer.cc
+++ b/src/signer.cc
@@ -82,22 +82,22 @@ Signer::create (boost::filesystem::path directory)
* @param standard INTEROP or SMPTE.
*/
void
-Signer::sign (xmlpp::Element* parent, Standard standard) const
+Signer::sign (cxml::NodePtr parent, Standard standard) const
{
/* <Signer> */
- xmlpp::Element* signer = parent->add_child("Signer");
- 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 (_certificates.leaf().issuer());
- serial_element->add_child("X509SerialNumber", "dsig")->add_child_text (_certificates.leaf().serial());
- data->add_child("X509SubjectName", "dsig")->add_child_text (_certificates.leaf().subject());
+ cxml::NodePtr signer = parent->add_child("Signer");
+ cxml::NodePtr data = signer->add_child("X509Data", "dsig");
+ cxml::NodePtr serial_element = data->add_child("X509IssuerSerial", "dsig");
+ serial_element->add_child("X509IssuerName", "dsig")->set_content (_certificates.leaf().issuer());
+ serial_element->add_child("X509SerialNumber", "dsig")->set_content (_certificates.leaf().serial());
+ data->add_child("X509SubjectName", "dsig")->set_content (_certificates.leaf().subject());
/* <Signature> */
- xmlpp::Element* signature = parent->add_child("Signature", "dsig");
+ cxml::NodePtr signature = parent->add_child("Signature", "dsig");
- xmlpp::Element* signed_info = signature->add_child ("SignedInfo", "dsig");
+ cxml::NodePtr 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");
if (standard == INTEROP) {
@@ -106,10 +106,10 @@ Signer::sign (xmlpp::Element* parent, Standard standard) const
signed_info->add_child("SignatureMethod", "dsig")->set_attribute("Algorithm", "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256");
}
- xmlpp::Element* reference = signed_info->add_child("Reference", "dsig");
+ cxml::NodePtr reference = signed_info->add_child("Reference", "dsig");
reference->set_attribute ("URI", "");
- xmlpp::Element* transforms = reference->add_child("Transforms", "dsig");
+ cxml::NodePtr transforms = reference->add_child("Transforms", "dsig");
transforms->add_child("Transform", "dsig")->set_attribute (
"Algorithm", "http://www.w3.org/2000/09/xmldsig#enveloped-signature"
);
@@ -130,23 +130,22 @@ Signer::sign (xmlpp::Element* parent, Standard standard) const
* @param ns Namespace to use for the signature XML nodes.
*/
void
-Signer::add_signature_value (xmlpp::Node* parent, string ns) const
+Signer::add_signature_value (cxml::NodePtr parent, string ns) const
{
- cxml::Node cp (parent);
- xmlpp::Node* key_info = cp.node_child("KeyInfo")->node ();
+ cxml::NodePtr key_info = parent->child("KeyInfo");
/* Add the certificate chain to the KeyInfo child node of parent */
CertificateChain::List c = _certificates.leaf_to_root ();
for (CertificateChain::List::iterator i = c.begin(); i != c.end(); ++i) {
- xmlpp::Element* data = key_info->add_child("X509Data", ns);
+ cxml::NodePtr data = key_info->add_child("X509Data", ns);
{
- xmlpp::Element* serial = data->add_child("X509IssuerSerial", ns);
- serial->add_child("X509IssuerName", ns)->add_child_text (i->issuer ());
- serial->add_child("X509SerialNumber", ns)->add_child_text (i->serial ());
+ cxml::NodePtr serial = data->add_child("X509IssuerSerial", ns);
+ serial->add_child("X509IssuerName", ns)->set_content (i->issuer ());
+ serial->add_child("X509SerialNumber", ns)->set_content (i->serial ());
}
- data->add_child("X509Certificate", ns)->add_child_text (i->certificate());
+ data->add_child("X509Certificate", ns)->set_content (i->certificate());
}
xmlSecDSigCtxPtr signature_context = xmlSecDSigCtxCreate (0);
@@ -167,10 +166,11 @@ Signer::add_signature_value (xmlpp::Node* parent, string ns) const
throw MiscError ("could not set key name");
}
- int const r = xmlSecDSigCtxSign (signature_context, parent->cobj ());
- if (r < 0) {
- throw MiscError (String::compose ("could not sign (%1)", r));
- }
+ /* XXX */
+// int const r = xmlSecDSigCtxSign (signature_context, parent->cobj ());
+// if (r < 0) {
+// throw MiscError (String::compose ("could not sign (%1)", r));
+// }
xmlSecDSigCtxDestroy (signature_context);
}