diff options
author | Rasmus Dahlberg <rasmus.dahlberg@kau.se> | 2021-03-16 00:26:07 +0100 |
---|---|---|
committer | Rasmus Dahlberg <rasmus.dahlberg@kau.se> | 2021-03-16 00:26:07 +0100 |
commit | 9f7690327f8d74abdd86232546a154ab8408d174 (patch) | |
tree | 0abeaade1c7673579c1b6a76cd4c6c25395555ee /client/cmd/add-entry/main.go | |
parent | e2959d506de6067afe494315c3621b33613b5414 (diff) |
started to re-add basic client commands
Diffstat (limited to 'client/cmd/add-entry/main.go')
-rw-r--r-- | client/cmd/add-entry/main.go | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/client/cmd/add-entry/main.go b/client/cmd/add-entry/main.go new file mode 100644 index 0000000..03844fa --- /dev/null +++ b/client/cmd/add-entry/main.go @@ -0,0 +1,52 @@ +package main + +import ( + "context" + "flag" + "fmt" + + "encoding/base64" + + "github.com/golang/glog" + "github.com/system-transparency/stfe/client" + "github.com/system-transparency/stfe/types" +) + +var ( + identifier = flag.String("identifier", "foobar-1.2.3", "checksum identifier") + checksum = flag.String("checksum", "50e7967bce266a506f8f614bb5096beba580d205046b918f47d23b2ec626d75e", "base64-encoded checksum") +) + +func main() { + flag.Parse() + defer glog.Flush() + + client, err := client.NewClientFromFlags() + if err != nil { + glog.Errorf("NewClientFromFlags: %v", err) + return + } + data, err := NewChecksumV1FromFlags() + if err != nil { + glog.Errorf("NewChecksumV1FromFlags: %v", err) + return + } + leafHash, err := client.AddEntry(context.Background(), data) + if err != nil { + glog.Errorf("AddEntry: %v", err) + return + } + fmt.Println("leaf hash:", base64.StdEncoding.EncodeToString(leafHash)) +} + +func NewChecksumV1FromFlags() (*types.ChecksumV1, error) { + var err error + data := types.ChecksumV1{ + Identifier: []byte(*identifier), + } + data.Checksum, err = base64.StdEncoding.DecodeString(*checksum) + if err != nil { + return nil, fmt.Errorf("entry_checksum: DecodeString: %v", err) + } + return &data, nil +} |