Não foi possível reproduzir a assinatura da AWS do exemplo usando o HMAC SHA256

Eu estou seguindo este exemplo

http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html

e tentando reproduzir a cadeia de 64 caracteres para a assinatura que eles afirmam como ...

aeeed9bbccd4d02ee5c0109b86d86835f995330da4c265957d157751f604d404

Consegui corresponder com êxito o digeset hexadecimal da solicitação canônica e positivo que a string StringToSign está correta.

A última parte é o cálculo da chave e da assinatura. É aqui que estou atingindo um bloqueio de estrada usando a função ruby fornecida 'getSignatureKey'

http://docs.aws.amazon.com/general/latest/gr/signature-v4-examples.html#signature-v4-examples-ruby

signing_key = getSignatureKey secret_access_key, current_date, region, aws_service
signature = OpenSSL::HMAC.digest('sha256', signing_key, string_to_sign)


 def getSignatureKey key, dateStamp, regionName, serviceName
  kDate    = OpenSSL::HMAC.digest('sha256', "AWS4" + key, dateStamp)
  kRegion  = OpenSSL::HMAC.digest('sha256', kDate, regionName)
  kService = OpenSSL::HMAC.digest('sha256', kRegion, serviceName)
  kSigning = OpenSSL::HMAC.digest('sha256', kService, "aws4_request")

  kSigning
end

A saída atual para 'signature' é essa estranha sequência de caracteres.

ٻ . h5 3 e } wQ

O que estou perdendo para obter a assinatura igual ...

aeeed9bbccd4d02ee5c0109b86d86835f995330da4c265957d157751f604d404

questionAnswers(2)

yourAnswerToTheQuestion