aboutsummaryrefslogtreecommitdiff
path: root/zhead/header.go
diff options
context:
space:
mode:
Diffstat (limited to 'zhead/header.go')
-rw-r--r--zhead/header.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/zhead/header.go b/zhead/header.go
new file mode 100644
index 0000000..400be5b
--- /dev/null
+++ b/zhead/header.go
@@ -0,0 +1,39 @@
+package zhead
+
+import (
+ "bytes"
+ "text/template"
+ "time"
+)
+
+const header = `{{define "header" -}}
+date={{.Date.Format "2006-01-02T15:04:05Z07:00"}}
+key={{.KeyFile}}
+algorithm={{.Alg}}
+bocksize={{.BlockSize}}
+
+{{range .Sums}}{{printf "%x" .}}
+{{end}}{{end}}`
+
+type Header struct {
+ Date time.Time
+ KeyFile string
+ Alg string
+ BlockSize int
+ Sums [][]byte
+}
+
+const (
+ DefaultAlg = "SHA512/256"
+ DefaultBlockSize = 65535
+)
+
+func (h Header) Print() ([]byte, error) {
+ t, err := template.New("header").Parse(header)
+ if err != nil {
+ return nil, err
+ }
+ buf := new(bytes.Buffer)
+ err = t.ExecuteTemplate(buf, "header", h)
+ return buf.Bytes(), err
+}