Commit 39a6541
Changed files (8)
lib
lib/saml/kit/builders/xml_encryption.rb
@@ -0,0 +1,20 @@
+module Saml
+ module Kit
+ module Builders
+ class XmlEncryption
+ attr_reader :public_key
+ attr_reader :key, :iv, :encrypted
+
+ def initialize(raw_xml, public_key)
+ @public_key = public_key
+ cipher = OpenSSL::Cipher.new('AES-256-CBC')
+ cipher.encrypt
+ @key = cipher.random_key
+ @iv = cipher.random_iv
+ @encrypted = cipher.update(raw_xml) + cipher.final
+ end
+ end
+ end
+ end
+end
+
lib/saml/kit/builders/xml_signature.rb
@@ -0,0 +1,41 @@
+module Saml
+ module Kit
+ module Builders
+ class XmlSignature
+ SIGNATURE_METHODS = {
+ SHA1: "http://www.w3.org/2000/09/xmldsig#rsa-sha1",
+ SHA224: "http://www.w3.org/2001/04/xmldsig-more#rsa-sha224",
+ SHA256: "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256",
+ SHA384: "http://www.w3.org/2001/04/xmldsig-more#rsa-sha384",
+ SHA512: "http://www.w3.org/2001/04/xmldsig-more#rsa-sha512",
+ }.freeze
+ DIGEST_METHODS = {
+ SHA1: "http://www.w3.org/2000/09/xmldsig#SHA1",
+ SHA224: "http://www.w3.org/2001/04/xmldsig-more#sha224",
+ SHA256: "http://www.w3.org/2001/04/xmlenc#sha256",
+ SHA384: "http://www.w3.org/2001/04/xmldsig-more#sha384",
+ SHA512: "http://www.w3.org/2001/04/xmlenc#sha512",
+ }.freeze
+
+ attr_reader :sign, :configuration
+ attr_reader :reference_id
+ attr_reader :stripped_signing_certificate
+
+ def initialize(reference_id, configuration:, sign: true)
+ @configuration = configuration
+ @reference_id = reference_id
+ @sign = sign
+ @stripped_signing_certificate = configuration.stripped_signing_certificate
+ end
+
+ def signature_method
+ SIGNATURE_METHODS[configuration.signature_method]
+ end
+
+ def digest_method
+ DIGEST_METHODS[configuration.digest_method]
+ end
+ end
+ end
+ end
+end
lib/saml/kit/builders.rb
@@ -4,6 +4,8 @@ require 'saml/kit/builders/logout_request'
require 'saml/kit/builders/logout_response'
require 'saml/kit/builders/response'
require 'saml/kit/builders/service_provider_metadata'
+require 'saml/kit/builders/xml_encryption'
+require 'saml/kit/builders/xml_signature'
module Saml
module Kit
lib/saml/kit/signatures.rb
@@ -9,7 +9,7 @@ module Saml
end
def build(reference_id)
- XmlSignature.new(reference_id, configuration: configuration, sign: sign)
+ Saml::Kit::Builders::XmlSignature.new(reference_id, configuration: configuration, sign: sign)
end
def complete(raw_xml)
lib/saml/kit/templatable.rb
@@ -18,7 +18,7 @@ module Saml
if encrypt && encryption_certificate
temp = ::Builder::XmlMarkup.new
yield temp
- xml_encryption = XmlEncryption.new(temp.target!, encryption_certificate.public_key)
+ xml_encryption = Saml::Kit::Builders::XmlEncryption.new(temp.target!, encryption_certificate.public_key)
Template.new(xml_encryption).to_xml(xml: xml)
else
yield xml
lib/saml/kit/xml_encryption.rb
@@ -1,18 +0,0 @@
-module Saml
- module Kit
- class XmlEncryption
- attr_reader :public_key
- attr_reader :key, :iv, :encrypted
-
- def initialize(raw_xml, public_key)
- @public_key = public_key
- cipher = OpenSSL::Cipher.new('AES-256-CBC')
- cipher.encrypt
- @key = cipher.random_key
- @iv = cipher.random_iv
- @encrypted = cipher.update(raw_xml) + cipher.final
- end
- end
- end
-end
-
lib/saml/kit/xml_signature.rb
@@ -1,39 +0,0 @@
-module Saml
- module Kit
- class XmlSignature
- SIGNATURE_METHODS = {
- SHA1: "http://www.w3.org/2000/09/xmldsig#rsa-sha1",
- SHA224: "http://www.w3.org/2001/04/xmldsig-more#rsa-sha224",
- SHA256: "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256",
- SHA384: "http://www.w3.org/2001/04/xmldsig-more#rsa-sha384",
- SHA512: "http://www.w3.org/2001/04/xmldsig-more#rsa-sha512",
- }.freeze
- DIGEST_METHODS = {
- SHA1: "http://www.w3.org/2000/09/xmldsig#SHA1",
- SHA224: "http://www.w3.org/2001/04/xmldsig-more#sha224",
- SHA256: "http://www.w3.org/2001/04/xmlenc#sha256",
- SHA384: "http://www.w3.org/2001/04/xmldsig-more#sha384",
- SHA512: "http://www.w3.org/2001/04/xmlenc#sha512",
- }.freeze
-
- attr_reader :sign, :configuration
- attr_reader :reference_id
- attr_reader :stripped_signing_certificate
-
- def initialize(reference_id, configuration:, sign: true)
- @configuration = configuration
- @reference_id = reference_id
- @sign = sign
- @stripped_signing_certificate = configuration.stripped_signing_certificate
- end
-
- def signature_method
- SIGNATURE_METHODS[configuration.signature_method]
- end
-
- def digest_method
- DIGEST_METHODS[configuration.digest_method]
- end
- end
- end
-end
lib/saml/kit.rb
@@ -48,8 +48,6 @@ require "saml/kit/signatures"
require "saml/kit/template"
require "saml/kit/xml"
require "saml/kit/xml_decryption"
-require "saml/kit/xml_encryption"
-require "saml/kit/xml_signature"
I18n.load_path += Dir[File.expand_path("kit/locales/*.yml", File.dirname(__FILE__))]