Skip to content

Commit 42b8d9c

Browse files
authored
Merge branch 'master' into witoff/aws
2 parents 9a64ac6 + 87e6cb4 commit 42b8d9c

File tree

39 files changed

+406
-171
lines changed

39 files changed

+406
-171
lines changed

cmd/createtree/main.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import (
4343
"github.com/golang/protobuf/ptypes/any"
4444
"github.com/google/trillian"
4545
"github.com/google/trillian/cmd"
46+
"github.com/google/trillian/crypto/keys"
4647
"github.com/google/trillian/crypto/keyspb"
4748
"github.com/google/trillian/crypto/sigpb"
4849
"google.golang.org/grpc"
@@ -59,7 +60,7 @@ var (
5960
displayName = flag.String("display_name", "", "Display name of the new tree")
6061
description = flag.String("description", "", "Description of the new tree")
6162

62-
privateKeyFormat = flag.String("private_key_format", "PEMKeyFile", "Type of private key to be used")
63+
privateKeyFormat = flag.String("private_key_format", "PrivateKey", "Type of private key to be used")
6364
pemKeyPath = flag.String("pem_key_path", "", "Path to the private key PEM file")
6465
pemKeyPassword = flag.String("pem_key_password", "", "Password of the private key PEM file")
6566

@@ -145,7 +146,7 @@ func newPK(opts *createOpts) (*any.Any, error) {
145146
switch opts.privateKeyType {
146147
case "PEMKeyFile":
147148
if opts.pemKeyPath == "" {
148-
return nil, errors.New("empty PEM path")
149+
return nil, errors.New("empty pem_key_path")
149150
}
150151
if opts.pemKeyPass == "" {
151152
return nil, fmt.Errorf("empty password for PEM key file %q", opts.pemKeyPath)
@@ -155,6 +156,20 @@ func newPK(opts *createOpts) (*any.Any, error) {
155156
Password: opts.pemKeyPass,
156157
}
157158
return ptypes.MarshalAny(pemKey)
159+
case "PrivateKey":
160+
if opts.pemKeyPath == "" {
161+
return nil, errors.New("empty pem_key_path")
162+
}
163+
pemSigner, err := keys.NewFromPrivatePEMFile(
164+
opts.pemKeyPath, opts.pemKeyPass)
165+
if err != nil {
166+
return nil, err
167+
}
168+
der, err := keys.MarshalPrivateKey(pemSigner)
169+
if err != nil {
170+
return nil, err
171+
}
172+
return ptypes.MarshalAny(&keyspb.PrivateKey{Der: der})
158173
default:
159174
return nil, fmt.Errorf("unknown private key type: %v", opts.privateKeyType)
160175
}

cmd/createtree/main_test.go

Lines changed: 44 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,40 @@ import (
1919
"net"
2020
"testing"
2121

22+
"github.com/gogo/protobuf/proto"
2223
"github.com/golang/protobuf/ptypes"
24+
"github.com/golang/protobuf/ptypes/any"
2325
"github.com/golang/protobuf/ptypes/empty"
2426
"github.com/google/trillian"
27+
"github.com/google/trillian/crypto/keys"
2528
"github.com/google/trillian/crypto/keyspb"
2629
"github.com/google/trillian/crypto/sigpb"
2730
"github.com/kylelemons/godebug/pretty"
2831
"golang.org/x/net/context"
2932
"google.golang.org/grpc"
3033
)
3134

35+
func marshalAny(p proto.Message) *any.Any {
36+
anyKey, err := ptypes.MarshalAny(p)
37+
if err != nil {
38+
panic(err)
39+
}
40+
return anyKey
41+
}
42+
3243
func TestRun(t *testing.T) {
33-
pemKey := &keyspb.PEMKeyFile{
34-
Path: "../../testdata/log-rpc-server.privkey.pem",
35-
Password: "towel",
44+
pemPath, pemPassword := "../../testdata/log-rpc-server.privkey.pem", "towel"
45+
pemSigner, err := keys.NewFromPrivatePEMFile(pemPath, pemPassword)
46+
if err != nil {
47+
t.Fatalf("NewFromPrivatPEM(): %v", err)
3648
}
37-
anyKey, err := ptypes.MarshalAny(pemKey)
49+
pemDer, err := keys.MarshalPrivateKey(pemSigner)
3850
if err != nil {
39-
t.Fatalf("Can't marshall pemKey: %v", err)
51+
t.Fatalf("MashalPrivateKey(): %v", err)
52+
}
53+
anyPrivKey, err := ptypes.MarshalAny(&keyspb.PrivateKey{Der: pemDer})
54+
if err != nil {
55+
t.Fatalf("MarshalAny(%v): %v", pemDer, err)
4056
}
4157

4258
// defaultTree reflects all flag defaults with the addition of a valid pk
@@ -46,7 +62,7 @@ func TestRun(t *testing.T) {
4662
HashStrategy: trillian.HashStrategy_RFC_6962,
4763
HashAlgorithm: sigpb.DigitallySigned_SHA256,
4864
SignatureAlgorithm: sigpb.DigitallySigned_RSA,
49-
PrivateKey: anyKey,
65+
PrivateKey: anyPrivKey,
5066
}
5167

5268
server, lis, stopFn, err := startFakeServer()
@@ -57,8 +73,8 @@ func TestRun(t *testing.T) {
5773

5874
validOpts := newOptsFromFlags()
5975
validOpts.addr = lis.Addr().String()
60-
validOpts.pemKeyPath = pemKey.Path
61-
validOpts.pemKeyPass = pemKey.Password
76+
validOpts.pemKeyPath = pemPath
77+
validOpts.pemKeyPass = pemPassword
6278

6379
nonDefaultTree := *defaultTree
6480
nonDefaultTree.TreeType = trillian.TreeType_MAP
@@ -87,60 +103,33 @@ func TestRun(t *testing.T) {
87103
emptyPEMPass := *validOpts
88104
emptyPEMPass.pemKeyPass = ""
89105

106+
pemKeyOpts := *validOpts
107+
pemKeyOpts.privateKeyType = "PEMKeyFile"
108+
pemKeyTree := *defaultTree
109+
pemKeyTree.PrivateKey, err = ptypes.MarshalAny(&keyspb.PEMKeyFile{
110+
Path: pemPath,
111+
Password: pemPassword,
112+
})
113+
if err != nil {
114+
t.Fatalf("MarshalAny(PEMKeyFile): %v", err)
115+
}
90116
tests := []struct {
91117
desc string
92118
opts *createOpts
93119
createErr error
94120
wantErr bool
95121
wantTree *trillian.Tree
96122
}{
97-
{
98-
desc: "validOpts",
99-
opts: validOpts,
100-
wantTree: defaultTree,
101-
},
102-
{
103-
desc: "nonDefaultOpts",
104-
opts: &nonDefaultOpts,
105-
wantTree: &nonDefaultTree,
106-
},
107-
{
108-
// No mandatory opts provided
109-
desc: "defaultOptsOnly",
110-
opts: newOptsFromFlags(),
111-
wantErr: true,
112-
},
113-
{
114-
desc: "emptyAddr",
115-
opts: &emptyAddr,
116-
wantErr: true,
117-
},
118-
{
119-
desc: "invalidEnumOpts",
120-
opts: &invalidEnumOpts,
121-
wantErr: true,
122-
},
123-
{
124-
desc: "invalidKeyTypeOpts",
125-
opts: &invalidKeyTypeOpts,
126-
wantErr: true,
127-
},
128-
{
129-
desc: "emptyPEMPath",
130-
opts: &emptyPEMPath,
131-
wantErr: true,
132-
},
133-
{
134-
desc: "emptyPEMPass",
135-
opts: &emptyPEMPass,
136-
wantErr: true,
137-
},
138-
{
139-
desc: "createErr",
140-
opts: validOpts,
141-
createErr: errors.New("create tree failed"),
142-
wantErr: true,
143-
},
123+
{desc: "validOpts", opts: validOpts, wantTree: defaultTree},
124+
{desc: "nonDefaultOpts", opts: &nonDefaultOpts, wantTree: &nonDefaultTree},
125+
{desc: "defaultOptsOnly", opts: newOptsFromFlags(), wantErr: true}, // No mandatory opts provided
126+
{desc: "emptyAddr", opts: &emptyAddr, wantErr: true},
127+
{desc: "invalidEnumOpts", opts: &invalidEnumOpts, wantErr: true},
128+
{desc: "invalidKeyTypeOpts", opts: &invalidKeyTypeOpts, wantErr: true},
129+
{desc: "emptyPEMPath", opts: &emptyPEMPath, wantErr: true},
130+
{desc: "emptyPEMPass", opts: &emptyPEMPass, wantErr: true},
131+
{desc: "PEMKeyFile", opts: &pemKeyOpts, wantErr: false, wantTree: &pemKeyTree},
132+
{desc: "createErr", opts: validOpts, createErr: errors.New("create tree failed"), wantErr: true},
144133
}
145134

146135
ctx := context.Background()

crypto/keys/mock_keys.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ package keys
66
import (
77
context "context"
88
crypto "crypto"
9-
proto "github.com/gogo/protobuf/proto"
109
gomock "github.com/golang/mock/gomock"
10+
proto "github.com/golang/protobuf/proto"
1111
keyspb "github.com/google/trillian/crypto/keyspb"
1212
)
1313

crypto/keys/pem_signer_factory.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import (
1919
"crypto"
2020
"fmt"
2121

22-
"github.com/gogo/protobuf/proto"
22+
"github.com/golang/protobuf/proto"
2323
"github.com/golang/protobuf/ptypes"
2424
"github.com/golang/protobuf/ptypes/any"
2525
"github.com/google/trillian/crypto/keyspb"

crypto/keys/private_keys.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import (
2727
"fmt"
2828
"io/ioutil"
2929

30-
"github.com/gogo/protobuf/proto"
30+
"github.com/golang/protobuf/proto"
3131
"github.com/google/trillian/crypto/keyspb"
3232
)
3333

docs/storage/commit_log/simkafka/kafka_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ func TestRead(t *testing.T) {
5454
}
5555
offset = 2
5656
if got := Read(topic, offset); got != "" {
57-
t.Errorf("Read(%q, %d)=%v; want ''", topic, got, offset)
57+
t.Errorf("Read(%q, %d)=%v; want ''", topic, offset, got)
5858
}
5959
if got := ReadMultiple(topic, offset, 1); got != nil {
60-
t.Errorf("ReadMultiple(%q, %d, 1)=%v; want ''", topic, got, offset)
60+
t.Errorf("ReadMultiple(%q, %d, 1)=%v; want ''", topic, offset, got)
6161
}
6262
}
6363

integration/admin/admin_integration_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020
"sort"
2121
"testing"
2222

23-
"github.com/gogo/protobuf/proto"
23+
"github.com/golang/protobuf/proto"
2424
"github.com/google/trillian"
2525
sa "github.com/google/trillian/server/admin"
2626
"github.com/google/trillian/server/interceptor"
@@ -342,7 +342,8 @@ func setupAdminServer() (trillian.TrillianAdminClient, func(), error) {
342342
Admin: registry.AdminStorage,
343343
QuotaManager: registry.QuotaManager,
344344
}
345-
grpcServer := grpc.NewServer(grpc.UnaryInterceptor(interceptor.WrapErrors(ti.UnaryInterceptor)))
345+
netInterceptor := interceptor.Combine(interceptor.ErrorWrapper, ti.UnaryInterceptor)
346+
grpcServer := grpc.NewServer(grpc.UnaryInterceptor(netInterceptor))
346347
// grpcServer is stopped via returned func
347348
server := sa.New(registry)
348349
trillian.RegisterTrillianAdminServer(grpcServer, server)

integration/log_integration_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ func TestInProcessLogIntegration(t *testing.T) {
106106
func TestInProcessLogIntegrationDuplicateLeaves(t *testing.T) {
107107
ctx := context.Background()
108108
const numSequencers = 2
109-
ms := memory.NewLogStorage()
109+
ms := memory.NewLogStorage(nil)
110110

111111
reggie := extension.Registry{
112112
AdminStorage: memory.NewAdminStorage(ms),

integration/quota/quota_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,8 @@ func setupLogServer(maxUnsequenced int) (trillian.TrillianAdminClient, trillian.
118118
Admin: registry.AdminStorage,
119119
QuotaManager: registry.QuotaManager,
120120
}
121-
s = grpc.NewServer(grpc.UnaryInterceptor(interceptor.WrapErrors(intercept.UnaryInterceptor)))
121+
netInterceptor := interceptor.Combine(interceptor.ErrorWrapper, intercept.UnaryInterceptor)
122+
s = grpc.NewServer(grpc.UnaryInterceptor(netInterceptor))
122123
trillian.RegisterTrillianAdminServer(s, admin.New(registry))
123124
trillian.RegisterTrillianLogServer(s, server.NewTrillianLogRPCServer(registry, util.SystemTimeSource{}))
124125

0 commit comments

Comments
 (0)