From 9f7690327f8d74abdd86232546a154ab8408d174 Mon Sep 17 00:00:00 2001 From: Rasmus Dahlberg Date: Tue, 16 Mar 2021 00:26:07 +0100 Subject: started to re-add basic client commands --- client/cmd/add-entry/main.go | 52 ++++++++++++++++++++++++++++++++++++++++++++ client/cmd/get-sth/main.go | 35 +++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 client/cmd/add-entry/main.go create mode 100644 client/cmd/get-sth/main.go (limited to 'client/cmd') 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 +} diff --git a/client/cmd/get-sth/main.go b/client/cmd/get-sth/main.go new file mode 100644 index 0000000..6b23b06 --- /dev/null +++ b/client/cmd/get-sth/main.go @@ -0,0 +1,35 @@ +package main + +import ( + "context" + "flag" + "fmt" + + "encoding/base64" + + "github.com/golang/glog" + "github.com/system-transparency/stfe/client" + "github.com/system-transparency/stfe/types" +) + +func main() { + flag.Parse() + defer glog.Flush() + + client, err := client.NewClientFromFlags() + if err != nil { + glog.Errorf("NewClientFromFlags: %v", err) + return + } + sth, err := client.GetLatestSth(context.Background()) + if err != nil { + glog.Errorf("GetLatestSth: %v", err) + return + } + serialized, err := types.Marshal(*sth) + if err != nil { + glog.Errorf("Marshal: %v", err) + return + } + fmt.Println("sth:", base64.StdEncoding.EncodeToString(serialized)) +} -- cgit v1.2.3