Looking at the Ruby code for rpc_client.rb shows the signature being calculated using the secret key and the encoded parameter string. The signature parameter is added after the calculation.
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, s
+tring_to_sign)).strip
normalized.push(['Signature', encode(signature)])
poj |