github.com/smugmug/godynamo@v0.0.0-20151122084750-7913028f6623/auth_v4/tasks/tasks_test.go (about) 1 package tasks 2 3 import ( 4 "crypto/sha256" 5 "encoding/hex" 6 "hash" 7 "testing" 8 "time" 9 ) 10 11 func TestCanonicalRequest(t *testing.T) { 12 13 body := []byte(`{"Test":"Stuff"}`) 14 var h256 hash.Hash = sha256.New() 15 h256.Write(body) 16 hexPayload := string(hex.EncodeToString([]byte(h256.Sum(nil)))) 17 18 r := CanonicalRequest("dynamodb.us-east-1.amazonaws.com", "80", "x-amz-date: 20110909T233600Z", "", hexPayload) 19 h256.Write([]byte(r)) 20 hashedCanonicalRequest := string(hex.EncodeToString([]byte(h256.Sum(nil)))) 21 const expected = "0d336e0c2a7878efc381e1fba2606c885afa6c5ad26480d39b56c1c2503271ba" 22 if expected != hashedCanonicalRequest { 23 t.Errorf("canonical request unexpected") 24 } 25 } 26 27 func TestStringToSign(t *testing.T) { 28 body := []byte(`{"Test":"Stuff"}`) 29 var h256 hash.Hash = sha256.New() 30 h256.Write(body) 31 hexPayload := string(hex.EncodeToString([]byte(h256.Sum(nil)))) 32 33 r := CanonicalRequest("dynamodb.us-east-1.amazonaws.com", "80", "x-amz-date: 20110909T233600Z", "", hexPayload) 34 const longForm = "Jan 2, 2006 at 3:04pm (MST)" 35 test_time, t_err := time.Parse(longForm, "Feb 3, 2013 at 7:54pm (PST)") 36 if t_err != nil { 37 t.Errorf(t_err.Error()) 38 } 39 str2sign := String2Sign(test_time, r, "us-east-1", "dynamodb") 40 h256.Write([]byte(str2sign)) 41 hashedString2Sign := string(hex.EncodeToString([]byte(h256.Sum(nil)))) 42 43 const expected = "3a958ac6ec0702c4d9b05f2b360762893bdb47440f133ffcdfde1d263555479e" 44 if expected != hashedString2Sign { 45 t.Errorf("string 2 sign unexpected") 46 } 47 }