Module: Dcc::Signature::Verifier

Defined in:
lib/dcc/signature/verifier.rb

Overview

Dcc::Signature::Verifier validates a signed DCC against a CA certificate. The signed XML subtree is extracted so callers can extract the trustworthy content.

Class Method Summary collapse

Class Method Details

.call(xml, ca_cert_pem:) ⇒ Dcc::Signature::Result

Parameters:

  • xml (String)

    signed DCC XML.

  • ca_cert_pem (String)

    PEM-encoded CA certificate.

Returns:



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/dcc/signature/verifier.rb', line 13

def call(xml, ca_cert_pem:)
  ensure_xmldsig!
  document = Xmldsig::XMLDoc.new(xml)
  signed_xml = nil
  is_valid = document.validate(ca_cert_pem) do |signed_node|
    signed_xml = signed_node.to_xml
    true
  end
  ::Dcc::Signature::Result.new(
    valid: is_valid,
    certificate_pem: ca_cert_pem,
    signed_xml: signed_xml,
  )
end