class BankLink::Mac::VK
Public Instance Methods
generate(version=data[query_key])
click to toggle source
# File lib/bank_link/mac/vk.rb, line 17 def generate version=data[query_key] Base64.strict_encode64( private_key.sign(settings.digest.new, request_data(version)) ) end
key()
click to toggle source
# File lib/bank_link/mac/vk.rb, line 13 def key :VK_MAC end
query_key()
click to toggle source
# File lib/bank_link/mac/vk.rb, line 9 def query_key :VK_SERVICE end
verify(content)
click to toggle source
# File lib/bank_link/mac/vk.rb, line 23 def verify content version = content[query_key] check = content[key] public_key = OpenSSL::X509::Certificate.new(settings.public_key).public_key public_key.verify settings.digest.new, Base64.strict_decode64(check), request_data(version, :response) end
Private Instance Methods
field_for(value)
click to toggle source
# File lib/bank_link/mac/vk.rb, line 36 def field_for value ["%03d" % value.length, value] end
private_key()
click to toggle source
# File lib/bank_link/mac/vk.rb, line 32 def private_key OpenSSL::PKey::RSA.new(settings.private_key, settings.private_key_passphrase) end
request_data(version, type=:request)
click to toggle source
# File lib/bank_link/mac/vk.rb, line 40 def request_data version, type=:request keys(version, type).collect { |key_name| field_for data[key_name].to_s }.flatten.join end