aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-07-28 08:06:23 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-07-28 08:06:23 +0200
commitf175b3f07a7195cb498d04f0974bfcabfe234b9c (patch)
treeb0752ce61e874c8ef00352f1a673daf3ae5684d7
parentabd2fe663591aab0388bff22df5a462632cff7f1 (diff)
Add NewHeader
-rw-r--r--zsig/header.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/zsig/header.go b/zsig/header.go
index 20d4db7..a565b52 100644
--- a/zsig/header.go
+++ b/zsig/header.go
@@ -103,3 +103,24 @@ func (z ZHeader) Verify(r io.Reader) error {
}
return nil
}
+
+func NewHeader(r io.Reader) (ZHeader, error) {
+ hdr := ZHeader{
+ Date: time.Now(),
+ Alg: Alg,
+ BlockSize: BlockSize,
+ }
+ h := sha512.New512_256()
+ for {
+ h.Reset()
+ n, err := io.CopyN(h, r, hdr.BlockSize)
+ if n == 0 && err == io.EOF {
+ break
+ }
+ if err != nil && err != io.EOF {
+ return ZHeader{}, err
+ }
+ hdr.Sums = append(hdr.Sums, h.Sum(nil))
+ }
+ return hdr, nil
+}