class Authmac::Authenticator

Public Class Methods

new(hmac_checker, timestamp_checker) click to toggle source
# File lib/authmac.rb, line 32
def initialize(hmac_checker, timestamp_checker)
  @hmac_checker = hmac_checker
  @timestamp_checker = timestamp_checker
end

Public Instance Methods

validate(params) click to toggle source
# File lib/authmac.rb, line 37
def validate(params)
  ValidationResult.new(hmac:      validate_hmac(params),
                       timestamp: validate_timestamp(params))
end

Private Instance Methods

split_params(params) click to toggle source
# File lib/authmac.rb, line 54
def split_params(params)
  hash = params.reduce({}) { |memo, (k,v)| memo[k.to_sym] = v; memo }
  hmac = hash.delete(:hmac)
  return [hash, hmac]
end
validate_hmac(params) click to toggle source
# File lib/authmac.rb, line 44
def validate_hmac(params)
  hash, hmac = split_params(params)
  @hmac_checker.validate(hash, hmac)
end
validate_timestamp(params) click to toggle source
# File lib/authmac.rb, line 49
def validate_timestamp(params)
  timestamp = params[:timestamp].to_i
  @timestamp_checker.validate(timestamp)
end