class Cryptopay::Authentication

Attributes

api_key[R]
api_secret[R]

Public Class Methods

new(api_key:, api_secret:) click to toggle source
# File lib/cryptopay/authentication.rb, line 5
def initialize(api_key:, api_secret:)
  @api_key = api_key
  @api_secret = api_secret
end

Public Instance Methods

sign(request) click to toggle source
# File lib/cryptopay/authentication.rb, line 10
def sign(request)
  signature_string = [
    request.method.to_s.upcase,
    request.body.nil? ? '' : Digest::MD5.hexdigest(request.body),
    request.content_type,
    request.date,
    request.path
  ].join("\n")

  signature = Base64.strict_encode64(OpenSSL::HMAC.digest('sha1', api_secret, signature_string))

  request.add_header('Authorization', "HMAC #{api_key}:#{signature}")

  request
end