Class: OmniAuth::Strategies::Nordea::Request

Inherits:
Message
  • Object
show all
Defined in:
lib/omniauth/strategies/nordea/request.rb

Constant Summary collapse

SIGNED_KEYS =
[
  'A01Y_ACTION_ID',
  'A01Y_VERS',      # 0002 (standard), 0003 (with additional data) or 0004.
  'A01Y_RCVID',
  'A01Y_LANGCODE',  # ET, LV, LT, EN
  'A01Y_STAMP',     # yyyymmddhhmmssxxxxxx
  'A01Y_IDTYPE',
  'A01Y_RETLINK',
  'A01Y_CANLINK',
  'A01Y_REJLINK',
  'A01Y_KEYVERS',
  'A01Y_ALG',       # 01 for md5, 02 for sha1
  'A01Y_MAC',
]

Constants inherited from Message

Message::ALGORITHM_NAMES

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

#sign!(mac, hash_algorithm) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/omniauth/strategies/nordea/request.rb', line 20

def sign!(mac, hash_algorithm)
  @hash["A01Y_KEYVERS"] = "0001"
  @hash["A01Y_ALG"]     = ALGORITHM_NAMES.key(hash_algorithm)
  @hash["A01Y_MAC"]     = mac

  digester = find_digester(hash_algorithm)
  signable_string = SIGNED_KEYS.map { |k| @hash[k] }.join("&") + "&"
  @hash["A01Y_MAC"] = digester.hexdigest(signable_string).upcase

  self
end