Skip to content

Commit c619068

Browse files
committed
verify: Add very basic test for VerifyLogEntry
Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
1 parent c1e1bca commit c619068

File tree

1 file changed

+54
-5
lines changed

1 file changed

+54
-5
lines changed

pkg/verify/verify_test.go

+54-5
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,20 @@ package verify
1818
import (
1919
"context"
2020
"crypto/sha256"
21-
"encoding/base64"
2221
"testing"
2322

2423
pbs "github.com/sigstore/protobuf-specs/gen/pb-go/rekor/v1"
2524
rekornote "github.com/sigstore/rekor-tiles/pkg/note"
2625
"github.com/sigstore/sigstore/pkg/signature"
26+
"github.com/stretchr/testify/assert"
2727
f_log "github.com/transparency-dev/formats/log"
2828
note "golang.org/x/mod/sumdb/note"
2929
)
3030

3131
func TestVerifyInclusionProof(t *testing.T) {
3232
hash := []byte{89, 165, 117, 241, 87, 39, 71, 2, 195, 141, 227, 171, 30, 23, 132, 34, 111, 57, 31, 183, 149, 0, 235, 249, 240, 43, 68, 57, 251, 119, 87, 76}
3333
rootHash := []byte{91, 225, 117, 141, 210, 34, 138, 207, 175, 37, 70, 180, 182, 206, 138, 164, 12, 130, 163, 116, 143, 61, 203, 85, 14, 13, 103, 186, 52, 240, 42, 69}
34-
body, err := base64.StdEncoding.DecodeString("eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoicmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJlY2RjNTUzNmY3M2JkYWU4ODE2ZjBlYTQwNzI2ZWY1ZTliODEwZDkxNDQ5MzA3NTkwM2JiOTA2MjNkOTdiMWQ4In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUUQvUGRQUW1LV0MxKzBCTkVkNWdLdlFHcjF4eGwzaWVVZmZ2M2prMXp6Skt3SWhBTEJqM3hmQXlXeGx6NGpwb0lFSVYxVWZLOXZua1VVT1NvZVp4QlpQSEtQQyIsImZvcm1hdCI6Ing1MDkiLCJwdWJsaWNLZXkiOnsiY29udGVudCI6IkxTMHRMUzFDUlVkSlRpQlFWVUpNU1VNZ1MwVlpMUzB0TFMwS1RVWnJkMFYzV1VoTGIxcEplbW93UTBGUldVbExiMXBKZW1vd1JFRlJZMFJSWjBGRlRVOWpWR1pTUWxNNWFtbFlUVGd4UmxvNFoyMHZNU3R2YldWTmR3cHRiaTh6TkRjdk5UVTJaeTlzY21sVE56SjFUV2haT1V4alZDczFWVW8yWmtkQ1oyeHlOVm80VERCS1RsTjFZWE41WldRNVQzUmhVblozUFQwS0xTMHRMUzFGVGtRZ1VGVkNURWxESUV0RldTMHRMUzB0Q2c9PSJ9fX19")
35-
if err != nil {
36-
t.Fatal(err)
37-
}
34+
body := []byte("{\"apiVersion\":\"0.0.1\",\"kind\":\"rekord\",\"spec\":{\"data\":{\"hash\":{\"algorithm\":\"sha256\",\"value\":\"ecdc5536f73bdae8816f0ea40726ef5e9b810d914493075903bb90623d97b1d8\"}},\"signature\":{\"content\":\"MEYCIQD/PdPQmKWC1+0BNEd5gKvQGr1xxl3ieUffv3jk1zzJKwIhALBj3xfAyWxlz4jpoIEIV1UfK9vnkUUOSoeZxBZPHKPC\",\"format\":\"x509\",\"publicKey\":{\"content\":\"LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFTU9jVGZSQlM5amlYTTgxRlo4Z20vMStvbWVNdwptbi8zNDcvNTU2Zy9scmlTNzJ1TWhZOUxjVCs1VUo2ZkdCZ2xyNVo4TDBKTlN1YXN5ZWQ5T3RhUnZ3PT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg==\"}}}}")
3835

3936
for _, test := range []struct {
4037
name string
@@ -182,3 +179,55 @@ func TestVerifyCheckpoint(t *testing.T) {
182179
})
183180
}
184181
}
182+
183+
func TestVerifyLogEntry(t *testing.T) {
184+
hostname := "rekor.localhost"
185+
hash := []byte{89, 165, 117, 241, 87, 39, 71, 2, 195, 141, 227, 171, 30, 23, 132, 34, 111, 57, 31, 183, 149, 0, 235, 249, 240, 43, 68, 57, 251, 119, 87, 76}
186+
rootHash := []byte{91, 225, 117, 141, 210, 34, 138, 207, 175, 37, 70, 180, 182, 206, 138, 164, 12, 130, 163, 116, 143, 61, 203, 85, 14, 13, 103, 186, 52, 240, 42, 69}
187+
body := []byte("{\"apiVersion\":\"0.0.1\",\"kind\":\"rekord\",\"spec\":{\"data\":{\"hash\":{\"algorithm\":\"sha256\",\"value\":\"ecdc5536f73bdae8816f0ea40726ef5e9b810d914493075903bb90623d97b1d8\"}},\"signature\":{\"content\":\"MEYCIQD/PdPQmKWC1+0BNEd5gKvQGr1xxl3ieUffv3jk1zzJKwIhALBj3xfAyWxlz4jpoIEIV1UfK9vnkUUOSoeZxBZPHKPC\",\"format\":\"x509\",\"publicKey\":{\"content\":\"LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFTU9jVGZSQlM5amlYTTgxRlo4Z20vMStvbWVNdwptbi8zNDcvNTU2Zy9scmlTNzJ1TWhZOUxjVCs1VUo2ZkdCZ2xyNVo4TDBKTlN1YXN5ZWQ5T3RhUnZ3PT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg==\"}}}}")
188+
189+
sv, _, err := signature.NewDefaultECDSASignerVerifier()
190+
if err != nil {
191+
t.Fatal(err)
192+
}
193+
194+
noteVerifier, err := rekornote.NewNoteVerifier(hostname, sv)
195+
if err != nil {
196+
t.Fatal(err)
197+
}
198+
199+
noteSigner, err := rekornote.NewNoteSigner(context.Background(), hostname, sv)
200+
if err != nil {
201+
t.Fatal(err)
202+
}
203+
cpRaw := f_log.Checkpoint{
204+
Origin: hostname,
205+
Size: uint64(2),
206+
Hash: rootHash,
207+
}.Marshal()
208+
209+
n, err := note.Sign(&note.Note{Text: string(cpRaw)}, noteSigner)
210+
if err != nil {
211+
t.Fatal(err)
212+
}
213+
214+
proof := &pbs.InclusionProof{
215+
LogIndex: 1,
216+
TreeSize: 2,
217+
Hashes: [][]byte{
218+
[]byte(hash),
219+
},
220+
Checkpoint: &pbs.Checkpoint{
221+
Envelope: string(n),
222+
},
223+
}
224+
225+
entry := &pbs.TransparencyLogEntry{
226+
CanonicalizedBody: body,
227+
InclusionProof: proof,
228+
LogIndex: 1,
229+
}
230+
231+
gotErr := VerifyLogEntry(entry, noteVerifier)
232+
assert.NoError(t, gotErr)
233+
}

0 commit comments

Comments
 (0)