From 9b2d55958c42dd36ea51dc3260c89c34ef929eed Mon Sep 17 00:00:00 2001 From: Morten Primdahl Date: Fri, 28 Jan 2011 09:47:33 -0800 Subject: [PATCH] Full namespace for XPath --- lib/xml_security.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/xml_security.rb b/lib/xml_security.rb index 037c10e8b..cb9831888 100644 --- a/lib/xml_security.rb +++ b/lib/xml_security.rb @@ -52,18 +52,18 @@ def validate_doc(base64_cert, logger) # validate references # remove signature node - sig_element = XPath.first(self, "//ds:Signature", {"ds"=>"http://www.w3.org/2000/09/xmldsig#"}) + sig_element = REXML::XPath.first(self, "//ds:Signature", {"ds"=>"http://www.w3.org/2000/09/xmldsig#"}) sig_element.remove #check digests - XPath.each(sig_element, "//ds:Reference", {"ds"=>"http://www.w3.org/2000/09/xmldsig#"}) do | ref | + REXML::XPath.each(sig_element, "//ds:Reference", {"ds"=>"http://www.w3.org/2000/09/xmldsig#"}) do | ref | uri = ref.attributes.get_attribute("URI").value - hashed_element = XPath.first(self, "//[@ID='#{uri[1,uri.size]}']") + hashed_element = REXML::XPath.first(self, "//[@ID='#{uri[1,uri.size]}']") canoner = XML::Util::XmlCanonicalizer.new(false, true) canon_hashed_element = canoner.canonicalize(hashed_element) hash = Base64.encode64(Digest::SHA1.digest(canon_hashed_element)).chomp - digest_value = XPath.first(ref, "//ds:DigestValue", {"ds"=>"http://www.w3.org/2000/09/xmldsig#"}).text + digest_value = REXML::XPath.first(ref, "//ds:DigestValue", {"ds"=>"http://www.w3.org/2000/09/xmldsig#"}).text valid_flag = hash == digest_value