Can't replicate simple hashing signature example from Amazon

120

The hmac1 calls expects you to use the signing key as is, not to use an encoded version of the hex string representation of it.

You should be able to properly construct the Hmac object with this:

var hmac1 = Hmac(sha256, hex.decode(testSigninKey));
Share:
120
August Kimo
Author by

August Kimo

Updated on December 29, 2022

Comments

  • August Kimo
    August Kimo over 1 year

    I'm trying to create the final step of this example in Flutter and I can't get it right for some reason: https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html

    Using their Signing Key + String to sign they get this resulting signature: 5d672d79c15b13162d9279b0855cfba6789a8edb4c82c400e06b5924a6f2b5d7

    Using the exact same key / string to sign I end up with: fe52b221b5173b501c9863cec59554224072ca34c1c827ec5fb8a257f97637b1

    Here is my code:

    var testSigninKey =
    'c4afb1cc5771d871763a393e44b703571b55cc28424d1a5e86da6ed3c154a4b9';
    var testStringToSign = 'AWS4-HMAC-SHA256' + '\n' +
          '20150830T123600Z'  + '\n' +
          '20150830/us-east-1/iam/aws4_request'  + '\n' +
          'f536975d06c0309214f805bb90ccff089219ecd68b2577efef23edd43b7e1a59';    
    
    var hmac1 = Hmac(sha256, utf8.encode(testSigninKey));
    var digest1 = hmac1.convert(utf8.encode(testStringToSign));
    print(digest1);
    print(hex.encode(digestBytes.bytes));
    //both print: fe52b221b5173b501c9863cec59554224072ca34c1c827ec5fb8a257f97637b1