Encryption: Extract encryption into service (#38442)
* Add encryption service * Add tests for encryption service * Inject encryption service into http server * Replace encryption global function usage in login tests * Apply suggestions from code review Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com> * Migrate to Wire * Undo non-desired changes * Move Encryption bindings to OSS Wire set Co-authored-by: Joan López de la Franca Beltran <joanjan14@gmail.com> Co-authored-by: Joan López de la Franca Beltran <5459617+joanlopez@users.noreply.github.com> Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
This commit is contained in:
co-authored by
Emil Tullstedt
Joan López de la Franca Beltran
Joan López de la Franca Beltran
parent
79e79fe244
commit
a0108a1e5b
@@ -0,0 +1,39 @@
|
||||
package ossencryption
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestEncryption(t *testing.T) {
|
||||
svc := Service{}
|
||||
|
||||
t.Run("getting encryption key", func(t *testing.T) {
|
||||
key, err := encryptionKeyToBytes("secret", "salt")
|
||||
require.NoError(t, err)
|
||||
assert.Len(t, key, 32)
|
||||
|
||||
key, err = encryptionKeyToBytes("a very long secret key that is larger then 32bytes", "salt")
|
||||
require.NoError(t, err)
|
||||
assert.Len(t, key, 32)
|
||||
})
|
||||
|
||||
t.Run("decrypting basic payload", func(t *testing.T) {
|
||||
encrypted, err := svc.Encrypt([]byte("grafana"), "1234")
|
||||
require.NoError(t, err)
|
||||
|
||||
decrypted, err := svc.Decrypt(encrypted, "1234")
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, []byte("grafana"), decrypted)
|
||||
})
|
||||
|
||||
t.Run("decrypting empty payload should return error", func(t *testing.T) {
|
||||
_, err := svc.Decrypt([]byte(""), "1234")
|
||||
require.Error(t, err)
|
||||
|
||||
assert.Equal(t, "unable to compute salt", err.Error())
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user