Class: OmniAuth::Strategies::Nordea::Response
- Defined in:
- lib/omniauth/strategies/nordea/response.rb
Constant Summary collapse
- SIGNED_KEYS =
[ 'B02K_VERS', # 0002 (standard), 0003 (with additional data) or 0004. 'B02K_TIMESTMP', 'B02K_IDNBR', 'B02K_STAMP', 'B02K_CUSTNAME', 'B02K_KEYVERS', 'B02K_ALG', # 01 for md5, 02 for sha1 'B02K_CUSTID', 'B02K_CUSTTYPE', 'B02K_MAC' ]
Constants inherited from Message
Instance Method Summary collapse
Methods inherited from Message
#each_pair, #initialize, #to_hash
Constructor Details
This class inherits a constructor from OmniAuth::Strategies::Nordea::Message
Instance Method Details
#validate!(mac) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/omniauth/strategies/nordea/response.rb', line 18 def validate!(mac) received_digest = @hash['B02K_MAC'] h = @hash.dup h['B02K_MAC'] = mac digester = find_digester(ALGORITHM_NAMES[h['B02K_ALG']]) signable_string = SIGNED_KEYS.map { |k| CGI.escape(h[k]) }.join("&") + '&' expected_digest = digester.hexdigest(signable_string).upcase if expected_digest != received_digest raise ValidationError, "Digest mismatch" end self end |