Sha256: 89d59d6b872b5eaa3c451771c700eea38129c9277a613d8772b9ffb7d680031e
Contents?: true
Size: 1.95 KB
Versions: 1
Compression:
Stored size: 1.95 KB
Contents
require 'zlib' require 'base64' require 'erb' require 'openssl' require 'time' require 'digest/sha2' module EBICS class Request def render_order_data(name) zipped_order_data = Zlib::Deflate.deflate raw_order_data(name) Base64.strict_encode64(zipped_order_data) end def raw_order_data(name) request_template(name) end def request_template(name) raw = File.read(File.join(File.dirname(__FILE__), '../templates/' + name + '.erb')) ERB.new(raw).result(binding) end end class HEV < Request attr_accessor :bank def render request_template('HEV.xml') end end class INI < Request attr_accessor :user attr_accessor :bank def render request_template('INI.xml') end end class HIA < Request attr_accessor :user attr_accessor :bank def render request_template('HIA.xml') end end class User attr_accessor :partner_id attr_accessor :member_id def initialize(&block) @key_initializer = block @keys = {} end def key(type) @keys[type.to_sym] || (@keys[type] = initialize_key(type)) end def initialize_key(type) key = Key.new(type) @key_initializer.call(key) return key end end class Bank attr_accessor :host_id end class Key attr_accessor :rsa, :type attr_writer :created_at def initialize(type) @type = type end def public_modulus Base64.strict_encode64(@rsa.public_key.n.to_s(16)) end def public_exponent Base64.strict_encode64(@rsa.public_key.e.to_s(2)) end def public_sha_256 public_key_string = "#{ @rsa.public_key.e.to_s(16).downcase } #{ @rsa.public_key.n.to_s(16).downcase }" public_key_string.gsub! /\A0/, '' puts public_key_string public_key_string.encode!('US-ASCII') Digest::SHA256.hexdigest(public_key_string) end def created_at @created_at.iso8601(10) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ezii-ebics-0.1.0 | lib/ebics.rb |