grafana/pkg/util/encryption_test.go

38 lines
927 B
Go
Raw Normal View History

2016-01-22 13:15:39 -06:00
package util
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
2016-01-22 13:15:39 -06:00
)
func TestEncryption(t *testing.T) {
t.Run("getting encryption key", func(t *testing.T) {
key, err := encryptionKeyToBytes("secret", "salt")
require.NoError(t, err)
assert.Len(t, key, 32)
2016-01-22 13:15:39 -06:00
key, err = encryptionKeyToBytes("a very long secret key that is larger then 32bytes", "salt")
require.NoError(t, err)
assert.Len(t, key, 32)
2016-01-22 13:15:39 -06: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
decrypted, err := Decrypt(encrypted, "1234")
require.NoError(t, err)
assert.Equal(t, []byte("grafana"), decrypted)
2016-01-22 13:15:39 -06: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
}