github.com/cosmos/cosmos-sdk@v0.50.1/crypto/xsalsa20symmetric/symmetric_test.go (about)

     1  package xsalsa20symmetric
     2  
     3  import (
     4  	"crypto/sha256"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  	"github.com/stretchr/testify/require"
     9  	"golang.org/x/crypto/bcrypt"
    10  )
    11  
    12  func TestSimple(t *testing.T) {
    13  	plaintext := []byte("sometext")
    14  	secret := []byte("somesecretoflengththirtytwo===32")
    15  	ciphertext := EncryptSymmetric(plaintext, secret)
    16  	plaintext2, err := DecryptSymmetric(ciphertext, secret)
    17  
    18  	require.NoError(t, err, "%+v", err)
    19  	assert.Equal(t, plaintext, plaintext2)
    20  }
    21  
    22  func TestSimpleWithKDF(t *testing.T) {
    23  	plaintext := []byte("sometext")
    24  	secretPass := []byte("somesecret")
    25  	secret, err := bcrypt.GenerateFromPassword(secretPass, 12)
    26  	if err != nil {
    27  		t.Error(err)
    28  	}
    29  	secret = sha256Sum(secret)
    30  
    31  	ciphertext := EncryptSymmetric(plaintext, secret)
    32  	plaintext2, err := DecryptSymmetric(ciphertext, secret)
    33  
    34  	require.NoError(t, err, "%+v", err)
    35  	assert.Equal(t, plaintext, plaintext2)
    36  }
    37  
    38  func sha256Sum(bytes []byte) []byte {
    39  	hasher := sha256.New()
    40  	hasher.Write(bytes)
    41  	return hasher.Sum(nil)
    42  }