Class: Mws::Signer

Inherits:
Object
  • Object
show all
Defined in:
lib/mws/signer.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Signer

Returns a new instance of Signer.



3
4
5
6
7
8
# File 'lib/mws/signer.rb', line 3

def initialize(options={})
  @verb = (options[:method] || options[:verb] || 'POST').to_s.upcase
  @host = (options[:host] || 'mws.amazonservices.com').to_s.downcase
  @path = options[:path] || '/'
  @secret = options[:secret]
end

Instance Method Details

#sign(query, secret = @secret) ⇒ Object



16
17
18
# File 'lib/mws/signer.rb', line 16

def sign(query, secret=@secret)
  "#{query}&Signature=#{Mws::Utils.uri_escape signature(query, secret)}"
end

#signature(query, secret = @secret) ⇒ Object



10
11
12
13
14
# File 'lib/mws/signer.rb', line 10

def signature(query, secret=@secret)
  digest = OpenSSL::Digest::Digest.new 'sha256'
  message = [ @verb, @host, @path, query ].join "\n"
  Base64::encode64(OpenSSL::HMAC.digest(digest, secret, message)).chomp
end