Files
argo-cd/util/crypto/crypto_test.go
Alexander Matyushentsev ecc3ab3cab feat: Use encrypted cookie to store OAuth2 state nonce (instead of redis) (#8241)
feat: Use encrypted cookie to store OAuth2 state nonce (instead of redis) (#8241)

Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2022-01-26 10:59:50 -08:00

44 lines
831 B
Go

package crypto
import (
"crypto/rand"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func newKey() ([]byte, error) {
b := make([]byte, 32)
_, err := rand.Read(b)
if err != nil {
b = nil
}
return b, err
}
func TestEncryptDecrypt_Successful(t *testing.T) {
key, err := newKey()
require.NoError(t, err)
encrypted, err := Encrypt([]byte("test"), key)
require.NoError(t, err)
decrypted, err := Decrypt(encrypted, key)
require.NoError(t, err)
assert.Equal(t, "test", string(decrypted))
}
func TestEncryptDecrypt_Failed(t *testing.T) {
key, err := newKey()
require.NoError(t, err)
encrypted, err := Encrypt([]byte("test"), key)
require.NoError(t, err)
wrongKey, err := newKey()
require.NoError(t, err)
_, err = Decrypt(encrypted, wrongKey)
assert.Error(t, err)
}