From 603149f89679abf76b65ce1d5758c55e239cc104 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 29 Jul 2017 18:28:15 +0200 Subject: ... --- sign.go | 9 +++++---- zsig/header.go | 26 ++++++++++++++++---------- zsig/header_test.go | 6 +++--- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/sign.go b/sign.go index 699f257..ba49418 100644 --- a/sign.go +++ b/sign.go @@ -1,7 +1,6 @@ package main import ( - "bytes" "flag" "io/ioutil" "log" @@ -97,10 +96,12 @@ func signGzip(secFile, msgFile, sigFile string) error { if err != nil { return err } - buf := new(bytes.Buffer) log.Println(zhead) - zhead.Print(buf) - log.Println(buf.String()) + body, err := zhead.MarshalText() + if err != nil { + return err + } + log.Println(body) return nil } diff --git a/zsig/header.go b/zsig/header.go index a565b52..bc16cb1 100644 --- a/zsig/header.go +++ b/zsig/header.go @@ -26,15 +26,16 @@ type ZHeader struct { Sums [][]byte } -func (h ZHeader) Print(w io.Writer) error { - fmt.Fprintf(w, "date=%v\n", h.Date.Format(time.RFC3339)) - fmt.Fprintf(w, "key=%v\n", h.KeyFile) - fmt.Fprintf(w, "algorithm=%v\n", h.Alg) - fmt.Fprintf(w, "blocksize=%v\n\n", h.BlockSize) +func (h ZHeader) MarshalText() ([]byte, error) { + buf := new(bytes.Buffer) + fmt.Fprintf(buf, "date=%v\n", h.Date.Format(time.RFC3339)) + fmt.Fprintf(buf, "key=%v\n", h.KeyFile) + fmt.Fprintf(buf, "algorithm=%v\n", h.Alg) + fmt.Fprintf(buf, "blocksize=%v\n\n", h.BlockSize) for _, sum := range h.Sums { - fmt.Fprintf(w, "%x\n", sum) + fmt.Fprintf(buf, "%x\n", sum) } - return nil + return buf.Bytes(), nil } func ParseBytes(data []byte) (ZHeader, error) { @@ -42,6 +43,11 @@ func ParseBytes(data []byte) (ZHeader, error) { return Parse(r) } +// TODO +func (z *ZHeader) UnmarshalText(data []byte) error { + return nil +} + func Parse(r io.Reader) (ZHeader, error) { var h ZHeader s := bufio.NewScanner(r) @@ -104,8 +110,8 @@ func (z ZHeader) Verify(r io.Reader) error { return nil } -func NewHeader(r io.Reader) (ZHeader, error) { - hdr := ZHeader{ +func NewHeader(r io.Reader) (*ZHeader, error) { + hdr := &ZHeader{ Date: time.Now(), Alg: Alg, BlockSize: BlockSize, @@ -118,7 +124,7 @@ func NewHeader(r io.Reader) (ZHeader, error) { break } if err != nil && err != io.EOF { - return ZHeader{}, err + return nil, err } hdr.Sums = append(hdr.Sums, h.Sum(nil)) } diff --git a/zsig/header_test.go b/zsig/header_test.go index 55921dd..38893e6 100644 --- a/zsig/header_test.go +++ b/zsig/header_test.go @@ -21,11 +21,11 @@ func TestZHeader(t *testing.T) { []byte{6, 7, 8, 9, 10}, }, } - buf := new(bytes.Buffer) - if err := h.Print(buf); err != nil { + body, err := h.MarshalText() + if err != nil { t.Fatal(err) } - head, err := Parse(bytes.NewReader(buf.Bytes())) + head, err := Parse(bytes.NewReader(body)) if err != nil { t.Fatal(err) } -- cgit v1.2.3