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  }