aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-07-29 18:28:15 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-07-29 18:28:15 +0200
commit603149f89679abf76b65ce1d5758c55e239cc104 (patch)
treed03584a9503b50e776b93a5adf20a1c15c52bed7
parent90b08ea3ee65c5255d623f76b02e66745b7c6335 (diff)
...
-rw-r--r--sign.go9
-rw-r--r--zsig/header.go26
-rw-r--r--zsig/header_test.go6
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)
}