Module: Px::Service::Client::HmacSigning::ClassMethods

Defined in:
lib/px/service/client/hmac_signing.rb

Instance Method Summary collapse

Instance Method Details

#generate_signature(method, uri, query, body, timestamp) ⇒ Object

Generate a nonce that’s used to expire message after keyspan seconds



29
30
31
32
33
34
35
36
37
# File 'lib/px/service/client/hmac_signing.rb', line 29

def generate_signature(method, uri, query, body, timestamp)
  secret = self.config.hmac_secret
  keyspan = self.config.hmac_keyspan
  nonce = (timestamp - (timestamp % keyspan)) + keyspan
  data = "#{method.capitalize},#{uri},#{query},#{body},#{nonce.to_s}"
  digest = OpenSSL::Digest.new('sha256')
  digest = OpenSSL::HMAC.digest(digest, secret, data)
  return Base64.urlsafe_encode64(digest).strip()
end