Mit HMAC SHA256 kann die AWS-Signatur nicht aus dem Beispiel reproduziert werden.

Ich folge diesem Beispiel

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

und versuchen, die 64-stellige Zeichenfolge für die Signatur zu reproduzieren, die sie als ... @ angeb

aeeed9bbccd4d02ee5c0109b86d86835f995330da4c265957d157751f604d404

Ich habe das Hexadezimal-Digeset für die kanonische Anforderung erfolgreich abgeglichen und festgestellt, dass die Zeichenfolge "StringToSign" korrekt ist.

Das letzte Stück berechnet den signing_key und die Signatur. Hier stoße ich mit der mitgelieferten Ruby-Funktion 'getSignatureKey' auf eine Straßensperre

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

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

Die aktuelle Ausgabe für "Signatur" ist diese seltsame Zeichenfolge.

ٻ . ٻ h5 3 e } wQ

Was fehlt mir, um die Signatur gleich zu bekommen ...

aeeed9bbccd4d02ee5c0109b86d86835f995330da4c265957d157751f604d404