github.com/aavshr/aws-sdk-go@v1.41.3/service/s3/s3crypto/aes_cbc_padder_test.go (about) 1 package s3crypto 2 3 import ( 4 "bytes" 5 "fmt" 6 "testing" 7 ) 8 9 func TestAESCBCPadding(t *testing.T) { 10 for i := 0; i < 16; i++ { 11 input := make([]byte, i) 12 expected := append(input, bytes.Repeat([]byte{byte(16 - i)}, 16-i)...) 13 b, err := AESCBCPadder.Pad(input, len(input)) 14 if err != nil { 15 t.Fatal("Expected error to be nil but received " + err.Error()) 16 } 17 if len(b) != len(expected) { 18 t.Fatal(fmt.Sprintf("Case %d: data is not of the same length", i)) 19 } 20 if bytes.Compare(b, expected) != 0 { 21 t.Fatal(fmt.Sprintf("Expected %v but got %v", expected, b)) 22 } 23 } 24 } 25 26 func TestAESCBCUnpadding(t *testing.T) { 27 for i := 0; i < 16; i++ { 28 expected := make([]byte, i) 29 input := append(expected, bytes.Repeat([]byte{byte(16 - i)}, 16-i)...) 30 b, err := AESCBCPadder.Unpad(input) 31 if err != nil { 32 t.Fatal("Error received, was expecting nil: " + err.Error()) 33 } 34 if len(b) != len(expected) { 35 t.Fatal(fmt.Sprintf("Case %d: data is not of the same length", i)) 36 } 37 if bytes.Compare(b, expected) != 0 { 38 t.Fatal(fmt.Sprintf("Expected %v but got %v", expected, b)) 39 } 40 } 41 }