github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/tm2/pkg/crypto/xsalsa20symmetric/symmetric_test.go (about) 1 package xsalsa20symmetric 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 "github.com/stretchr/testify/require" 8 9 "github.com/gnolang/gno/tm2/pkg/crypto" 10 "github.com/gnolang/gno/tm2/pkg/crypto/bcrypt" 11 ) 12 13 func TestSimple(t *testing.T) { 14 t.Parallel() 15 16 plaintext := []byte("sometext") 17 secret := []byte("somesecretoflengththirtytwo===32") 18 ciphertext := EncryptSymmetric(plaintext, secret) 19 plaintext2, err := DecryptSymmetric(ciphertext, secret) 20 21 require.Nil(t, err, "%+v", err) 22 assert.Equal(t, plaintext, plaintext2) 23 } 24 25 func TestSimpleWithKDF(t *testing.T) { 26 t.Parallel() 27 28 salt := []byte("1234567890123456") 29 plaintext := []byte("sometext") 30 secretPass := []byte("somesecret") 31 secret, err := bcrypt.GenerateFromPassword(salt, secretPass, 12) 32 if err != nil { 33 t.Error(err) 34 } 35 secret = crypto.Sha256(secret) 36 37 ciphertext := EncryptSymmetric(plaintext, secret) 38 plaintext2, err := DecryptSymmetric(ciphertext, secret) 39 40 require.Nil(t, err, "%+v", err) 41 assert.Equal(t, plaintext, plaintext2) 42 }