github.com/argoproj/argo-cd/v3@v3.2.1/util/crypto/crypto_test.go (about) 1 package crypto 2 3 import ( 4 "crypto/rand" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func newKey() ([]byte, error) { 12 b := make([]byte, 32) 13 _, err := rand.Read(b) 14 if err != nil { 15 b = nil 16 } 17 return b, err 18 } 19 20 func TestEncryptDecrypt_Successful(t *testing.T) { 21 key, err := newKey() 22 require.NoError(t, err) 23 encrypted, err := Encrypt([]byte("test"), key) 24 require.NoError(t, err) 25 26 decrypted, err := Decrypt(encrypted, key) 27 require.NoError(t, err) 28 29 assert.Equal(t, "test", string(decrypted)) 30 } 31 32 func TestEncryptDecrypt_Failed(t *testing.T) { 33 key, err := newKey() 34 require.NoError(t, err) 35 encrypted, err := Encrypt([]byte("test"), key) 36 require.NoError(t, err) 37 38 wrongKey, err := newKey() 39 require.NoError(t, err) 40 41 _, err = Decrypt(encrypted, wrongKey) 42 assert.Error(t, err) 43 }