Sha256: 35d52eb285db68d7739c7d4da2ef8af501ddb7603a51a7364938f9d224ff32e9

Contents?: true

Size: 1.07 KB

Versions: 34

Compression:

Stored size: 1.07 KB

Contents

require 'builder'
module SamlIdp
  class SignatureBuilder
    attr_accessor :signed_info_builder

    def initialize(signed_info_builder)
      self.signed_info_builder = signed_info_builder
    end

    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

    def x509_certificate
      SamlIdp.config.x509_certificate
      .to_s
      .gsub(/-----BEGIN CERTIFICATE-----/,"")
      .gsub(/-----END CERTIFICATE-----/,"")
      .gsub(/\n/, "")
    end
    private :x509_certificate

    def signed_info
      signed_info_builder.raw
    end
    private :signed_info

    def signature_value
      signed_info_builder.signed
    end
    private :signature_value
  end
end

Version data entries

34 entries across 34 versions & 2 rubygems

Version Path
saml_idp-0.16.0 lib/saml_idp/signature_builder.rb
saml_idp-0.15.0 lib/saml_idp/signature_builder.rb
saml_idp-0.14.0 lib/saml_idp/signature_builder.rb
saml_idp-0.12.0 lib/saml_idp/signature_builder.rb
saml_idp-0.11.0 lib/saml_idp/signature_builder.rb
saml_idp-0.10.0 lib/saml_idp/signature_builder.rb
saml_idp-0.9.0 lib/saml_idp/signature_builder.rb
saml_idp-0.8.1 lib/saml_idp/signature_builder.rb
saml_idp-0.8.0 lib/saml_idp/signature_builder.rb
saml_idp-0.7.2 lib/saml_idp/signature_builder.rb
saml_idp-0.7.1 lib/saml_idp/signature_builder.rb
saml_idp-0.7.0 lib/saml_idp/signature_builder.rb
saml_idp-0.6.0 lib/saml_idp/signature_builder.rb
saml_idp-0.5.0 lib/saml_idp/signature_builder.rb
icn_saml_idp-0.4.1 lib/saml_idp/signature_builder.rb
saml_idp-0.4.0 lib/saml_idp/signature_builder.rb
saml_idp-0.3.2 lib/saml_idp/signature_builder.rb
saml_idp-0.3.1 lib/saml_idp/signature_builder.rb
saml_idp-0.3.0 lib/saml_idp/signature_builder.rb
saml_idp-0.2.1 lib/saml_idp/signature_builder.rb