Class: Imglab::Signature

Inherits:
Object
  • Object
show all
Defined in:
lib/imglab/signature.rb

Class Method Summary collapse

Class Method Details

.generate(source, path, encoded_params = nil) ⇒ String

Returns a generated signature for a source, path and encoded parameters.

Parameters:

  • source (Imglab::Source)

    the source used to generate the signature.

  • path (String)

    the path of the resource.

  • encoded_params (String) (defaults to: nil)

    encoded query params of the URL to generate the signature.

Returns:

  • (String)


11
12
13
14
15
16
17
18
19
20
21
# File 'lib/imglab/signature.rb', line 11

def self.generate(source, path, encoded_params = nil)
  decoded_secure_key = Base64.decode64(source.secure_key)
  decoded_secure_salt = Base64.decode64(source.secure_salt)

  data = "#{decoded_secure_salt}/#{path}"
  data = encoded_params ? "#{data}?#{encoded_params}" : data

  hmac = OpenSSL::HMAC.digest(OpenSSL::Digest.new("sha256"), decoded_secure_key, data)

  Base64.urlsafe_encode64(hmac).tr("=", "")
end