github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/pkg/auth/crypt/encryption_test.go (about) 1 package crypt_test 2 3 import ( 4 "bytes" 5 "fmt" 6 "testing" 7 8 "github.com/treeverse/lakefs/pkg/auth/crypt" 9 ) 10 11 func TestSecretStore_Encrypt(t *testing.T) { 12 cases := []struct { 13 Secret string 14 Data []byte 15 }{ 16 {"some secret", []byte("test string")}, 17 {"some other secret with a different length", []byte("another test string")}, 18 {"", []byte("something else, empty secret")}, 19 {"1", []byte("short secret this time")}, 20 {"some secret", []byte("")}, 21 } 22 23 for i, cas := range cases { 24 t.Run(fmt.Sprintf("encrypt_%d", i), func(t *testing.T) { 25 aes := crypt.NewSecretStore([]byte(cas.Secret)) 26 encrypted, err := aes.Encrypt(cas.Data) 27 if err != nil { 28 t.Fatal(err) 29 } 30 31 decrypted, err := aes.Decrypt(encrypted) 32 if err != nil { 33 t.Fatal(err) 34 } 35 36 if !bytes.Equal(cas.Data, decrypted) { 37 t.Fatalf("expected decrypted data to equal original data %s, instead got %s", cas.Data, decrypted) 38 } 39 40 }) 41 } 42 } 43 44 func BenchmarkSecretStore_Encrypt(b *testing.B) { 45 secret := "foo bar" 46 data := []byte("some value, it doesn't really matter what") 47 aes := crypt.NewSecretStore([]byte(secret)) 48 encrypted, err := aes.Encrypt(data) 49 if err != nil { 50 b.Fatal(err) 51 } 52 b.ResetTimer() 53 for i := 0; i < b.N; i++ { 54 _, _ = aes.Decrypt(encrypted) 55 } 56 }