Class: OAuthSimple::SignatureMethodHMACSHA1

Inherits:
SignatureMethod show all
Defined in:
lib/oauth-simple/signature_method_hmac_sha1.rb

Class Method Summary collapse

Methods inherited from SignatureMethod

by_name

Class Method Details

.build_signature(request, consumer, token) ⇒ Object



40
41
42
43
44
# File 'lib/oauth-simple/signature_method_hmac_sha1.rb', line 40

def self.build_signature(request, consumer, token)
  key, raw = build_signature_base_string(request, consumer, token)
  hashed = calculate_digest(key, raw)
  return [hashed].pack('m').chomp.gsub(/\n/, '')
end

.build_signature_base_string(request, consumer, token) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/oauth-simple/signature_method_hmac_sha1.rb', line 28

def self.build_signature_base_string(request, consumer, token)
  sig = [
    CGI.escape(request.get_normalized_http_method),
    CGI.escape(request.get_normalized_http_url),
    CGI.escape(request.get_normalized_parameters)
  ]
  key = "#{CGI.escape(consumer.secret)}&"
  key << CGI.escape(token.secret) if token
  raw = sig.join("&")
  return [key, raw]
end

.calculate_digest(key, data) ⇒ Object



46
47
48
49
50
51
52
# File 'lib/oauth-simple/signature_method_hmac_sha1.rb', line 46

def self.calculate_digest(key, data)
  if RUBY_VERSION >= "1.9"
    Digest::HMAC.new(key, Digest::SHA1).digest(data)
  else
    ::HMAC::SHA1.digest(key, data)
  end
end

.oauth_nameObject



24
25
26
# File 'lib/oauth-simple/signature_method_hmac_sha1.rb', line 24

def self.oauth_name
  "HMAC-SHA1"
end