class Xmldsig::SignedDocument

Attributes

document[RW]

Public Class Methods

new(document) click to toggle source
# File lib/xmldsig/signed_document.rb, line 5
def initialize(document)
  @document = Nokogiri::XML::Document.parse(document)
end

Public Instance Methods

sign(private_key = nil, certificate = nil, &block) click to toggle source
# File lib/xmldsig/signed_document.rb, line 9
def sign(private_key = nil, certificate = nil, &block)
  signatures.each { |signature| signature.sign(private_key, certificate, &block) }
  document.root.to_s
end
signatures() click to toggle source
# File lib/xmldsig/signed_document.rb, line 18
def signatures
  document.xpath("//ds:Signature", Xmldsig::NAMESPACES).reverse.collect do |node|
    Signature.new(node)
  end || []
end
signed_nodes() click to toggle source
# File lib/xmldsig/signed_document.rb, line 24
def signed_nodes
  signatures.flat_map(&:references).map(&:referenced_node)
end
validate(certificate = nil, &block) click to toggle source
# File lib/xmldsig/signed_document.rb, line 14
def validate(certificate = nil, &block)
  signatures.any? && signatures.all? { |signature| signature.valid?(certificate, &block) }
end