module AliyunSDK::STS::Util

Util functions to help generate formatted Date, signatures, etc.

Public Class Methods

get_signature(verb, params, key) click to toggle source

Calculate request signatures

# File lib/aliyun_sdk/sts/util.rb, line 21
def get_signature(verb, params, key)
  logger.debug("Sign, verb: #{verb}, params: #{params}")

  cano_query = params.sort.map {
    |k, v| [CGI.escape(k), CGI.escape(v)].join('=') }.join('&')

  string_to_sign =
    verb + '&' + CGI.escape('/') + '&' + CGI.escape(cano_query)

  logger.debug("String to sign: #{string_to_sign}")

  Util.sign(key + '&', string_to_sign)
end
sign(key, string_to_sign) click to toggle source

Sign a string using HMAC and BASE64 @param [String] key the secret key @param [String] string_to_sign the string to sign @return [String] the signature

# File lib/aliyun_sdk/sts/util.rb, line 39
def sign(key, string_to_sign)
  Base64.strict_encode64(
    OpenSSL::HMAC.digest('sha1', key, string_to_sign))
end