...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package tuf
20
21 import (
22 "io/ioutil"
23 "testing"
24
25 "github.com/theupdateframework/go-tuf"
26 )
27
28 func generateTestRepo(t *testing.T, files map[string][]byte) tuf.LocalStore {
29 store := tuf.MemoryStore(nil, files)
30 repo, err := tuf.NewRepo(store)
31 if err := repo.Init(false); err != nil {
32 t.Fatalf("unexpected error")
33 }
34 if err != nil {
35 t.Fatalf("unexpected error")
36 }
37 for _, role := range []string{"root", "snapshot", "targets", "timestamp"} {
38 _, err := repo.GenKey(role)
39 if err != nil {
40 t.Fatalf("unexpected error")
41 }
42 }
43 for file := range files {
44 repo.AddTarget(file, nil)
45 }
46 repo.Snapshot()
47 repo.Timestamp()
48 repo.Commit()
49
50 return store
51 }
52
53
54 func createTufSignedArtifact(t *testing.T, artifactPath, rootPath string) {
55 t.Helper()
56
57 store := generateTestRepo(t, map[string][]byte{
58 "foo.txt": []byte("foo")})
59 meta, err := store.GetMeta()
60 if err != nil {
61 t.Fatal(err)
62 }
63 rootJSON, ok := meta["root.json"]
64 if !ok {
65 t.Fatal(err)
66 }
67 timestampJSON, ok := meta["timestamp.json"]
68 if !ok {
69 t.Fatal(err)
70 }
71 if err := ioutil.WriteFile(artifactPath, timestampJSON, 0644); err != nil {
72 t.Fatal(err)
73 }
74 if err := ioutil.WriteFile(rootPath, rootJSON, 0644); err != nil {
75 t.Fatal(err)
76 }
77 }
78
View as plain text