github.com/lingyao2333/mo-zero@v1.4.1/core/codec/aesecb_test.go (about) 1 package codec 2 3 import ( 4 "encoding/base64" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestAesEcb(t *testing.T) { 11 var ( 12 key = []byte("q4t7w!z%C*F-JaNdRgUjXn2r5u8x/A?D") 13 val = []byte("hello") 14 badKey1 = []byte("aaaaaaaaa") 15 // more than 32 chars 16 badKey2 = []byte("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") 17 ) 18 _, err := EcbEncrypt(badKey1, val) 19 assert.NotNil(t, err) 20 _, err = EcbEncrypt(badKey2, val) 21 assert.NotNil(t, err) 22 dst, err := EcbEncrypt(key, val) 23 assert.Nil(t, err) 24 _, err = EcbDecrypt(badKey1, dst) 25 assert.NotNil(t, err) 26 _, err = EcbDecrypt(badKey2, dst) 27 assert.NotNil(t, err) 28 _, err = EcbDecrypt(key, val) 29 // not enough block, just nil 30 assert.Nil(t, err) 31 src, err := EcbDecrypt(key, dst) 32 assert.Nil(t, err) 33 assert.Equal(t, val, src) 34 } 35 36 func TestAesEcbBase64(t *testing.T) { 37 const ( 38 val = "hello" 39 badKey1 = "aaaaaaaaa" 40 // more than 32 chars 41 badKey2 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" 42 ) 43 key := []byte("q4t7w!z%C*F-JaNdRgUjXn2r5u8x/A?D") 44 b64Key := base64.StdEncoding.EncodeToString(key) 45 b64Val := base64.StdEncoding.EncodeToString([]byte(val)) 46 _, err := EcbEncryptBase64(badKey1, val) 47 assert.NotNil(t, err) 48 _, err = EcbEncryptBase64(badKey2, val) 49 assert.NotNil(t, err) 50 _, err = EcbEncryptBase64(b64Key, val) 51 assert.NotNil(t, err) 52 dst, err := EcbEncryptBase64(b64Key, b64Val) 53 assert.Nil(t, err) 54 _, err = EcbDecryptBase64(badKey1, dst) 55 assert.NotNil(t, err) 56 _, err = EcbDecryptBase64(badKey2, dst) 57 assert.NotNil(t, err) 58 _, err = EcbDecryptBase64(b64Key, val) 59 assert.NotNil(t, err) 60 src, err := EcbDecryptBase64(b64Key, dst) 61 assert.Nil(t, err) 62 b, err := base64.StdEncoding.DecodeString(src) 63 assert.Nil(t, err) 64 assert.Equal(t, val, string(b)) 65 }