Class: SinglePlatform::UrlSigning
- Inherits:
-
Object
- Object
- SinglePlatform::UrlSigning
- Defined in:
- lib/single_platform/url_signing.rb
Class Method Summary collapse
-
.make_signature(uri_path, params, client_id, secret) ⇒ Object
from SinglePlatform sample ruby library.
Class Method Details
.make_signature(uri_path, params, client_id, secret) ⇒ Object
from SinglePlatform sample ruby library
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/single_platform/url_signing.rb', line 7 def self.make_signature(uri_path, params, client_id, secret) padding_factor = (4 - secret.length % 4) % 4 secret += "=" * padding_factor secret = secret.gsub(/[-_]/, {"-" => "+", "_" => "/"}) binary_key = Base64.decode64(secret) params.update({"client" => client_id}) path = uri_path + "?" + params.collect{|k,v| "#{k}=#{v}"}.inject{|initial,cur| initial + "&" + cur} #digest = HMAC::SHA1.new(binary_key).update(path).digest digest = OpenSSL::HMAC.digest('sha1',binary_key, path) digest = Base64.encode64(digest).gsub(/[+\/]/, {"+" => "-", "/" => "_"}).delete("=") #return "#{path}&sig=#{digest}" digest.delete("\n") end |