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  }