Sha256: 4336c7e254e2ce671d6b69b6ed2dc534d72aa1c604cf07538e2c81087c0c317d
Contents?: true
Size: 1.04 KB
Versions: 4
Compression:
Stored size: 1.04 KB
Contents
require 'digest/md5' module Ipizza::Provider class Nordea::AuthenticationResponse < Ipizza::AuthenticationResponse def initialize(params) @params = params end def verify(key_path) key = File.read(key_path).strip @valid = @params['B02K_MAC'] == Digest::MD5.hexdigest(mac_data_string(key)).upcase end def success? @valid && @params['B02K_CUSTID'].present? end def valid? @valid end def info_name valid? ? @params['B02K_CUSTNAME'] : '' end def info_social_security_id valid? ? @params['B02K_CUSTID'] : '' end def authentication_info @authentication_info ||= Ipizza::Authentication.new(user_name: info_name, user_id: info_social_security_id) end private def mac_data_string(key) order = %w(VERS TIMESTMP IDNBR STAMP CUSTNAME KEYVERS ALG CUSTID CUSTTYPE) datastr = order.inject('') do |memo, param| memo << @params["B02K_#{param}"].to_s << '&' end datastr << key << '&' end end end
Version data entries
4 entries across 4 versions & 1 rubygems