Module: Signauth::Signature::Version1

Includes:
Base
Included in:
Version2
Defined in:
lib/signauth/signature/version_1.rb

Instance Method Summary collapse

Instance Method Details

#add_authorization!(credentials) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/signauth/signature/version_1.rb', line 6

def add_authorization!(credentials)
  params['access_key_id']     = credentials.access_key_id
  params['signature_version'] = version
  params['signature_method']  ||= 'HMAC-SHA-256'

  params.delete('signature')
  params['signature'] = signature(credentials)
  params
end

#authenticate(&block) ⇒ Object

Raises:

  • (ArgumentError)


16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/signauth/signature/version_1.rb', line 16

def authenticate(&block)
  raise ArgumentError, "Block required" unless block_given?

  access_key_id = params['access_key_id']
  raise Erros::MissingAccessKeyId, 'must provide access_key_id parameter' if access_key_id.nil?

  credentials = yield(access_key_id) 
  begin
    given = params.delete('signature')
    validate_signature(given, signature(credentials))
  ensure
    params['signature'] = given
  end
  true
end