class XMLSecurity::BaseDocument

Constants

C14N
DSIG
NOKOGIRI_OPTIONS

Public Instance Methods

algorithm(element) click to toggle source
# File lib/xml_security.rb, line 62
def algorithm(element)
  algorithm = element
  if algorithm.is_a?(REXML::Element)
    algorithm = element.attribute("Algorithm").value
  end

  algorithm = algorithm && algorithm =~ /(rsa-)?sha(.*?)$/i && $2.to_i

  case algorithm
  when 256 then OpenSSL::Digest::SHA256
  when 384 then OpenSSL::Digest::SHA384
  when 512 then OpenSSL::Digest::SHA512
  else
    OpenSSL::Digest::SHA1
  end
end
canon_algorithm(element) click to toggle source
# File lib/xml_security.rb, line 44
def canon_algorithm(element)
  algorithm = element
  if algorithm.is_a?(REXML::Element)
    algorithm = element.attribute('Algorithm').value
  end

  case algorithm
    when "http://www.w3.org/TR/2001/REC-xml-c14n-20010315",
         "http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"
      Nokogiri::XML::XML_C14N_1_0
    when "http://www.w3.org/2006/12/xml-c14n11",
         "http://www.w3.org/2006/12/xml-c14n11#WithComments"
      Nokogiri::XML::XML_C14N_1_1
    else
      Nokogiri::XML::XML_C14N_EXCLUSIVE_1_0
  end
end