diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-10-10 16:07:44 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-10-10 16:07:44 +0100 |
| commit | e30c30ef7bbd8413ac0c8390abe574d5dd1cf5f7 (patch) | |
| tree | f67b4a9364264d433535dbc24a19b6df6ac59049 /src/signer.cc | |
| parent | 863ff8cced5b7d1d36ad6761fa1f6e2dbeafcad6 (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.cc | 46 |
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); } |
