2016-01-22 13:15:39 -06:00
|
|
|
package util
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
2020-08-13 04:10:48 -05:00
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/stretchr/testify/require"
|
2016-01-22 13:15:39 -06:00
|
|
|
)
|
|
|
|
|
|
|
|
func TestEncryption(t *testing.T) {
|
2020-08-13 04:10:48 -05:00
|
|
|
t.Run("getting encryption key", func(t *testing.T) {
|
2019-10-23 03:40:12 -05:00
|
|
|
key, err := encryptionKeyToBytes("secret", "salt")
|
2020-08-13 04:10:48 -05:00
|
|
|
require.NoError(t, err)
|
|
|
|
assert.Len(t, key, 32)
|
2016-01-22 13:15:39 -06:00
|
|
|
|
2019-10-23 03:40:12 -05:00
|
|
|
key, err = encryptionKeyToBytes("a very long secret key that is larger then 32bytes", "salt")
|
2020-08-13 04:10:48 -05:00
|
|
|
require.NoError(t, err)
|
|
|
|
assert.Len(t, key, 32)
|
2016-01-22 13:15:39 -06:00
|
|
|
})
|
|
|
|
|
2020-08-13 04:10:48 -05:00
|
|
|
t.Run("decrypting basic payload", func(t *testing.T) {
|
|
|
|
encrypted, err := Encrypt([]byte("grafana"), "1234")
|
|
|
|
require.NoError(t, err)
|
2016-01-22 13:15:39 -06:00
|
|
|
|
2020-08-13 04:10:48 -05:00
|
|
|
decrypted, err := Decrypt(encrypted, "1234")
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
assert.Equal(t, []byte("grafana"), decrypted)
|
2016-01-22 13:15:39 -06:00
|
|
|
})
|
2021-05-25 10:35:54 -05:00
|
|
|
|
|
|
|
t.Run("decrypting empty payload should not fail", func(t *testing.T) {
|
|
|
|
_, err := Decrypt([]byte(""), "1234")
|
|
|
|
require.Error(t, err)
|
|
|
|
|
|
|
|
assert.Equal(t, "unable to compute salt", err.Error())
|
|
|
|
})
|
2016-01-22 13:15:39 -06:00
|
|
|
}
|