class SamlIdp::SignatureBuilder

Attributes

signed_info_builder[RW]

Public Class Methods

new(signed_info_builder) click to toggle source
# File lib/saml_idp/signature_builder.rb, line 6
def initialize(signed_info_builder)
  self.signed_info_builder = signed_info_builder
end

Public Instance Methods

raw() click to toggle source
# File lib/saml_idp/signature_builder.rb, line 10
def raw
  builder = Builder::XmlMarkup.new
  builder.tag! "ds:Signature", "xmlns:ds" => "http://www.w3.org/2000/09/xmldsig#" do |signature|
    signature << signed_info
    signature.tag! "ds:SignatureValue", signature_value
    signature.KeyInfo xmlns: "http://www.w3.org/2000/09/xmldsig#" do |key_info|
      key_info.tag! "ds:X509Data" do |x509|
        x509.tag! "ds:X509Certificate", x509_certificate
      end
    end
  end
end

Private Instance Methods

signature_value() click to toggle source
# File lib/saml_idp/signature_builder.rb, line 37
def signature_value
  signed_info_builder.signed
end
signed_info() click to toggle source
# File lib/saml_idp/signature_builder.rb, line 32
def signed_info
  signed_info_builder.raw
end
x509_certificate() click to toggle source
# File lib/saml_idp/signature_builder.rb, line 23
def x509_certificate
  SamlIdp.config.x509_certificate
  .to_s
  .gsub(/-----BEGIN CERTIFICATE-----/,"")
  .gsub(/-----END CERTIFICATE-----/,"")
  .gsub(/\n/, "")
end