aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--handler_test.go70
-rw-r--r--trillian_test.go115
2 files changed, 115 insertions, 70 deletions
diff --git a/handler_test.go b/handler_test.go
index 87f06a2..277c74f 100644
--- a/handler_test.go
+++ b/handler_test.go
@@ -22,9 +22,6 @@ import (
"github.com/google/trillian"
"github.com/system-transparency/stfe/server/testdata"
"github.com/system-transparency/stfe/x509util"
-
- "google.golang.org/grpc/codes"
- "google.golang.org/grpc/status"
)
type testHandler struct {
@@ -776,70 +773,3 @@ func makeTestLeafBuffer(t *testing.T, name, pemChain, pemKey []byte, valid bool)
}
return bytes.NewBuffer(data)
}
-
-// makeTrillianQueueLeafResponse creates a valid trillian QueueLeafResponse
-func makeTrillianQueueLeafResponse(t *testing.T, name, pemChain, pemKey []byte) *trillian.QueueLeafResponse {
- t.Helper()
- leaf, appendix := makeTestLeaf(t, name, pemChain, pemKey)
- return &trillian.QueueLeafResponse{
- QueuedLeaf: &trillian.QueuedLogLeaf{
- Leaf: &trillian.LogLeaf{
- MerkleLeafHash: nil, // not used by stfe
- LeafValue: leaf,
- ExtraData: appendix,
- LeafIndex: 0, // not applicable (log is not pre-ordered)
- LeafIdentityHash: nil, // not used by stfe
- },
- Status: status.New(codes.OK, "ok").Proto(),
- },
- }
-}
-
-// makeTrillianGetInclusionProofByHashResponse
-func makeTrillianGetInclusionProofByHashResponse(t *testing.T, index int64, path [][]byte) *trillian.GetInclusionProofByHashResponse {
- t.Helper()
- return &trillian.GetInclusionProofByHashResponse{
- Proof: []*trillian.Proof{
- &trillian.Proof{
- LeafIndex: index,
- Hashes: path,
- },
- },
- SignedLogRoot: nil, // not used by stfe
- }
-}
-
-// makeTrillianGetInclusionProofByHashResponse
-func makeTrillianGetConsistencyProofResponse(t *testing.T, path [][]byte) *trillian.GetConsistencyProofResponse {
- t.Helper()
- return &trillian.GetConsistencyProofResponse{
- Proof: &trillian.Proof{
- LeafIndex: 0, // not used by consistency proofs
- Hashes: path,
- },
- SignedLogRoot: nil, // not used by stfe
- }
-}
-
-// makeTrillianGetLeavesByRangeResponse
-func makeTrillianGetLeavesByRangeResponse(t *testing.T, start, end int64, name, pemChain, pemKey []byte, valid bool) *trillian.GetLeavesByRangeResponse {
- t.Helper()
- leaves := make([]*trillian.LogLeaf, 0, start-end+1)
- for i, n := start, end+1; i < n; i++ {
- leaf, appendix := makeTestLeaf(t, append(name, []byte(fmt.Sprintf("_%d", i))...), pemChain, pemKey)
- if !valid {
- appendix = []byte{0, 1, 2, 3}
- }
- leaves = append(leaves, &trillian.LogLeaf{
- MerkleLeafHash: nil, // not used by stfe
- LeafValue: leaf,
- ExtraData: appendix,
- LeafIndex: i,
- LeafIdentityHash: nil, // not used by stfe
- })
- }
- return &trillian.GetLeavesByRangeResponse{
- Leaves: leaves,
- SignedLogRoot: testdata.NewGetLatestSignedLogRootResponse(t, 0, uint64(end)+1, make([]byte, 32)).SignedLogRoot,
- }
-}
diff --git a/trillian_test.go b/trillian_test.go
new file mode 100644
index 0000000..66ad647
--- /dev/null
+++ b/trillian_test.go
@@ -0,0 +1,115 @@
+package stfe
+
+import (
+ "testing"
+ "fmt"
+
+ "github.com/google/trillian"
+ "github.com/system-transparency/stfe/server/testdata"
+
+ "google.golang.org/grpc/codes"
+ "google.golang.org/grpc/status"
+)
+
+// TODO: TestCheckQueueLeaf
+func TestCheckQueueLeaf(t *testing.T) {
+}
+
+// TODO: TestCheckGetLeavesByRange
+func TestCheckGetLeavesByRange(t *testing.T) {
+}
+
+// TODO: TestCheckGetInclusionProofByHash
+func TestCheckGetInclusionProofByHash(t *testing.T) {
+}
+
+// TODO: TestGetConsistencyProof
+func TestCheckGetConsistencyProof(t *testing.T) {
+}
+
+// TODO: TestCheckGetLatestSignedLogRoot
+func TestCheckGetLatestSignedLogRoot(t *testing.T) {
+}
+
+
+// makeTrillianQueueLeafResponse creates a valid trillian QueueLeafResponse
+// for a package `name` where the checksum is all zeros (32 bytes). The pemKey
+// is a PEM-encoded ed25519 signing key, and pemChain its certificate chain.
+//
+// Note: MerkleLeafHash and LeafIdentityHash are unset (not used by stfe).
+func makeTrillianQueueLeafResponse(t *testing.T, name, pemChain, pemKey []byte) *trillian.QueueLeafResponse {
+ t.Helper()
+ leaf, appendix := makeTestLeaf(t, name, pemChain, pemKey)
+ return &trillian.QueueLeafResponse{
+ QueuedLeaf: &trillian.QueuedLogLeaf{
+ Leaf: &trillian.LogLeaf{
+ MerkleLeafHash: nil, // not used by stfe
+ LeafValue: leaf,
+ ExtraData: appendix,
+ LeafIndex: 0, // not applicable (log is not pre-ordered)
+ LeafIdentityHash: nil, // not used by stfe
+ },
+ Status: status.New(codes.OK, "ok").Proto(),
+ },
+ }
+}
+
+// makeTrillianGetInclusionProofByHashResponse populates a get-proof-by-hash
+// response.
+//
+// Note: SignedLogRoot is unset (not used by stfe).
+func makeTrillianGetInclusionProofByHashResponse(t *testing.T, index int64, path [][]byte) *trillian.GetInclusionProofByHashResponse {
+ t.Helper()
+ return &trillian.GetInclusionProofByHashResponse{
+ Proof: []*trillian.Proof{
+ &trillian.Proof{
+ LeafIndex: index,
+ Hashes: path,
+ },
+ },
+ SignedLogRoot: nil,
+ }
+}
+
+// makeTrillianGetConsistencyProofResponse populates a get-consistency response.
+//
+// Note: LeafIndex is not applicable for a consistency proof (0), and
+// SignedLogRoot is unset (not used by stfe).
+func makeTrillianGetConsistencyProofResponse(t *testing.T, path [][]byte) *trillian.GetConsistencyProofResponse {
+ t.Helper()
+ return &trillian.GetConsistencyProofResponse{
+ Proof: &trillian.Proof{
+ LeafIndex: 0,
+ Hashes: path,
+ },
+ SignedLogRoot: nil,
+ }
+}
+
+// makeTrillianGetLeavesByRangeResponse creates a range of leaves [start,end]
+// such that the package is `name`_<index> and the checksum is all zeros (32
+// bytes). The pemKey is a PEM-encoded ed25519 signing key, and pemChain its
+// certificate chain. Set `valid` to false to make an invalid Appendix.
+//
+// Note: MerkleLeafHash and LeafIdentityHash are unset (not used by stfe).
+func makeTrillianGetLeavesByRangeResponse(t *testing.T, start, end int64, name, pemChain, pemKey []byte, valid bool) *trillian.GetLeavesByRangeResponse {
+ t.Helper()
+ leaves := make([]*trillian.LogLeaf, 0, start-end+1)
+ for i, n := start, end+1; i < n; i++ {
+ leaf, appendix := makeTestLeaf(t, append(name, []byte(fmt.Sprintf("_%d", i))...), pemChain, pemKey)
+ if !valid {
+ appendix = []byte{0, 1, 2, 3}
+ }
+ leaves = append(leaves, &trillian.LogLeaf{
+ MerkleLeafHash: nil,
+ LeafValue: leaf,
+ ExtraData: appendix,
+ LeafIndex: i,
+ LeafIdentityHash: nil,
+ })
+ }
+ return &trillian.GetLeavesByRangeResponse{
+ Leaves: leaves,
+ SignedLogRoot: testdata.NewGetLatestSignedLogRootResponse(t, 0, uint64(end)+1, make([]byte, 32)).SignedLogRoot,
+ }
+}