normalized = normalize(params) canonicalized = canonicalize(normalized) string_to_sign = "#{method}&#{encode('/')}&#{encode(canonicalized)}" key = self.access_key_secret + '&' signature = Base64.encode64(OpenSSL::HMAC.digest('sha1', key, string_to_sign)).strip normalized.push(['Signature', encode(signature)])