File: gen-keys.go

package info (click to toggle)
golang-github-theupdateframework-go-tuf 0.5.2-5~bpo12%2B1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-backports
  • size: 7,596 kB
  • sloc: python: 163; sh: 37; makefile: 12
file content (50 lines) | stat: -rw-r--r-- 972 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// This helper files generates a bunch of ed25519 keys to be used by the test
// runners. This is done such that the signatures stay stable when the metadata
// is regenerated.

package main

import (
	"encoding/json"
	"fmt"
	"os"
	"time"

	"github.com/theupdateframework/go-tuf/data"
)

var expirationDate = time.Date(2100, time.January, 1, 0, 0, 0, 0, time.UTC)

func main() {
	rolenames := []string{
		"root",
		"snapshot",
		"targets",
		"timestamp",
	}

	roles := make(map[string][][]*data.PrivateKey)

	for _, name := range rolenames {
		keys := [][]*data.PrivateKey{}

		for i := 0; i < 2; i++ {
			signer, err := keys.GenerateEd25519Key()
			assertNoError(err)
			keys = append(keys, []*data.PrivateKey{signer})
		}

		roles[name] = keys
	}

	s, err := json.MarshalIndent(&roles, "", "    ")
	assertNoError(err)

	os.WriteFile("keys.json", []byte(s), 0644)
}

func assertNoError(err error) {
	if err != nil {
		panic(fmt.Sprintf("assertion failed: %s", err))
	}
}