Class: Qiniu::Kit::Mac

Inherits:
Object
  • Object
show all
Defined in:
lib/qiniu/kit/mac.rb

Instance Method Summary collapse

Constructor Details

#initialize(access_key, secret_key) ⇒ Mac

Returns a new instance of Mac.



10
11
12
13
# File 'lib/qiniu/kit/mac.rb', line 10

def initialize(access_key, secret_key)
  @access_key = access_key || Qiniu.config[:access_key]
  @secret_key = secret_key || Qiniu.config[:secret_key]
end

Instance Method Details

#base64_hmac_sha1_digest(data) ⇒ Object



19
20
21
# File 'lib/qiniu/kit/mac.rb', line 19

def base64_hmac_sha1_digest(data)
  return Qiniu::Kit.base64_url_encode(hmac_sha1_digest(data))
end

#hmac_sha1_digest(data) ⇒ Object



15
16
17
# File 'lib/qiniu/kit/mac.rb', line 15

def hmac_sha1_digest(data)
  OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha1'), @secret_key, data)
end

#sign(data) ⇒ Object



23
24
25
# File 'lib/qiniu/kit/mac.rb', line 23

def sign(data)
  return %Q(#{@access_key}:#{base64_hmac_sha1_digest(data)})
end

#sign_with_data(data) ⇒ Object



27
28
29
30
# File 'lib/qiniu/kit/mac.rb', line 27

def sign_with_data(data)
  base64data = Qiniu::Kit.base64_url_encode(data)
  return %Q(#{sign(base64data)}:#{base64data})
end

#sign_with_request(url, body = nil) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/qiniu/kit/mac.rb', line 32

def sign_with_request(url, body = nil)
  uri = URI.parse(url)
  data  = uri.path
  data += '?' + uri.query if !uri.query.nil? && !uri.query.empty?
  data += "\n"
  data += body if !body.nil? && !body.empty?
  return sign(data)
end