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 }