Skip to content

Commit ff09f53

Browse files
committed
[utilz] test cases for crypto
1 parent 33e2139 commit ff09f53

4 files changed

Lines changed: 51 additions & 8 deletions

File tree

userz/server.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,15 +170,15 @@ func (s *userzServer) serializeCookie(cookie *spb.Cookie) (string, error) {
170170
if err != nil {
171171
return "", errors.Wrap(err, "error serializing cookie")
172172
}
173-
serial, err := utilz.EncryptString(b, s.cookiePasscode)
173+
serial, err := utilz.EncryptToBase64String(b, s.cookiePasscode)
174174
if err != nil {
175175
return "", errors.Wrap(err, "error encrypting cookie")
176176
}
177177
return serial, nil
178178
}
179179

180180
func (s *userzServer) deserializeCookie(serial string) (*spb.Cookie, error) {
181-
b, err := utilz.DecryptString(serial, s.cookiePasscode)
181+
b, err := utilz.DecryptFromBase64String(serial, s.cookiePasscode)
182182
if err != nil {
183183
return nil, errors.Wrap(err, "error decrypting cookie")
184184
}

utilz/crypto.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func Encrypt(data []byte, passphrase string) ([]byte, error) {
3030
return cipherText, nil
3131
}
3232

33-
func EncryptString(data []byte, passphrase string) (string, error) {
33+
func EncryptToBase64String(data []byte, passphrase string) (string, error) {
3434
b, err := Encrypt(data, passphrase)
3535
if err != nil {
3636
return "", err
@@ -57,7 +57,7 @@ func Decrypt(data []byte, passphrase string) ([]byte, error) {
5757
return plainText, nil
5858
}
5959

60-
func DecryptString(s string, passphrase string) ([]byte, error) {
60+
func DecryptFromBase64String(s string, passphrase string) ([]byte, error) {
6161
b, err := base64.StdEncoding.DecodeString(s)
6262
if err != nil {
6363
return nil, err

utilz/crypto_test.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package utilz
2+
3+
import (
4+
"github.com/stretchr/testify/assert"
5+
"testing"
6+
)
7+
8+
func TestEncrypt(t *testing.T) {
9+
const passphrase = "test"
10+
original := []byte("some text")
11+
b, err := Encrypt(original, passphrase)
12+
assert.NoError(t, err)
13+
assert.NotEqual(t, original, b)
14+
15+
decrypted, err := Decrypt(b, passphrase)
16+
assert.NoError(t, err)
17+
18+
assert.Equal(t, original, decrypted)
19+
}
20+
21+
func TestEncryptBase64(t *testing.T) {
22+
const passphrase = "test"
23+
original := []byte("some text")
24+
b64, err := EncryptToBase64String(original, passphrase)
25+
assert.NoError(t, err)
26+
assert.NotEqual(t, "some text", b64)
27+
28+
decrypted, err := DecryptFromBase64String(b64, passphrase)
29+
assert.NoError(t, err)
30+
31+
assert.Equal(t, original, decrypted)
32+
}

utilz/dial.go

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,30 @@
11
package utilz
22

33
import (
4-
"github.com/explodes/serving/proto"
4+
spb "github.com/explodes/serving/proto"
55
"github.com/pkg/errors"
66
"google.golang.org/grpc"
77
)
88

99
// DialGrpc dials a client connection taking into account dialing options.
10-
func DialGrpc(addr *proto.GrpcServer) (*grpc.ClientConn, error) {
11-
if addr == nil || addr.Address == nil {
10+
func DialGrpc(serverConfig *spb.GrpcServer) (*grpc.ClientConn, error) {
11+
if serverConfig == nil || serverConfig.Address == nil {
1212
return nil, errors.New("address not specified")
1313
}
14-
conn, err := grpc.Dial(addr.Address.Address(), grpc.WithInsecure())
14+
opts := grpcDialOptions(serverConfig)
15+
conn, err := grpc.Dial(serverConfig.Address.Address(), opts...)
1516
if err != nil {
1617
return nil, errors.Wrap(err, "grpc dial error")
1718
}
1819
return conn, err
1920
}
21+
22+
// grpcDialOptions extracts dial options from the GrpcServer config.
23+
func grpcDialOptions(serverConfig *spb.GrpcServer) []grpc.DialOption {
24+
// TODO(evanleis): Add more features to GrpcServer.
25+
// Desired features:
26+
// - backoff strategies
27+
// - security
28+
// - compression
29+
return []grpc.DialOption{grpc.WithInsecure()}
30+
}

0 commit comments

Comments
 (0)