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