github.com/lingyao2333/mo-zero@v1.4.1/core/codec/rsa_test.go (about)

     1  package codec
     2  
     3  import (
     4  	"encoding/base64"
     5  	"testing"
     6  
     7  	"github.com/lingyao2333/mo-zero/core/fs"
     8  	"github.com/stretchr/testify/assert"
     9  )
    10  
    11  const (
    12  	priKey = `-----BEGIN RSA PRIVATE KEY-----
    13  MIICXQIBAAKBgQC4TJk3onpqb2RYE3wwt23J9SHLFstHGSkUYFLe+nl1dEKHbD+/
    14  Zt95L757J3xGTrwoTc7KCTxbrgn+stn0w52BNjj/kIE2ko4lbh/v8Fl14AyVR9ms
    15  fKtKOnhe5FCT72mdtApr+qvzcC3q9hfXwkyQU32pv7q5UimZ205iKSBmgQIDAQAB
    16  AoGAM5mWqGIAXj5z3MkP01/4CDxuyrrGDVD5FHBno3CDgyQa4Gmpa4B0/ywj671B
    17  aTnwKmSmiiCN2qleuQYASixes2zY5fgTzt+7KNkl9JHsy7i606eH2eCKzsUa/s6u
    18  WD8V3w/hGCQ9zYI18ihwyXlGHIgcRz/eeRh+nWcWVJzGOPUCQQD5nr6It/1yHb1p
    19  C6l4fC4xXF19l4KxJjGu1xv/sOpSx0pOqBDEX3Mh//FU954392rUWDXV1/I65BPt
    20  TLphdsu3AkEAvQJ2Qay/lffFj9FaUrvXuftJZ/Ypn0FpaSiUh3Ak3obBT6UvSZS0
    21  bcYdCJCNHDtBOsWHnIN1x+BcWAPrdU7PhwJBAIQ0dUlH2S3VXnoCOTGc44I1Hzbj
    22  Rc65IdsuBqA3fQN2lX5vOOIog3vgaFrOArg1jBkG1wx5IMvb/EnUN2pjVqUCQCza
    23  KLXtCInOAlPemlCHwumfeAvznmzsWNdbieOZ+SXVVIpR6KbNYwOpv7oIk3Pfm9sW
    24  hNffWlPUKhW42Gc+DIECQQDmk20YgBXwXWRM5DRPbhisIV088N5Z58K9DtFWkZsd
    25  OBDT3dFcgZONtlmR1MqZO0pTh30lA4qovYj3Bx7A8i36
    26  -----END RSA PRIVATE KEY-----`
    27  	pubKey = `-----BEGIN PUBLIC KEY-----
    28  MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4TJk3onpqb2RYE3wwt23J9SHL
    29  FstHGSkUYFLe+nl1dEKHbD+/Zt95L757J3xGTrwoTc7KCTxbrgn+stn0w52BNjj/
    30  kIE2ko4lbh/v8Fl14AyVR9msfKtKOnhe5FCT72mdtApr+qvzcC3q9hfXwkyQU32p
    31  v7q5UimZ205iKSBmgQIDAQAB
    32  -----END PUBLIC KEY-----`
    33  	testBody = `this is the content`
    34  )
    35  
    36  func TestCryption(t *testing.T) {
    37  	enc, err := NewRsaEncrypter([]byte(pubKey))
    38  	assert.Nil(t, err)
    39  	ret, err := enc.Encrypt([]byte(testBody))
    40  	assert.Nil(t, err)
    41  
    42  	file, err := fs.TempFilenameWithText(priKey)
    43  	assert.Nil(t, err)
    44  	dec, err := NewRsaDecrypter(file)
    45  	assert.Nil(t, err)
    46  	actual, err := dec.Decrypt(ret)
    47  	assert.Nil(t, err)
    48  	assert.Equal(t, testBody, string(actual))
    49  
    50  	actual, err = dec.DecryptBase64(base64.StdEncoding.EncodeToString(ret))
    51  	assert.Nil(t, err)
    52  	assert.Equal(t, testBody, string(actual))
    53  }
    54  
    55  func TestBadPubKey(t *testing.T) {
    56  	_, err := NewRsaEncrypter([]byte("foo"))
    57  	assert.Equal(t, ErrPublicKey, err)
    58  }