From f175b3f07a7195cb498d04f0974bfcabfe234b9c Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 28 Jul 2017 08:06:23 +0200 Subject: Add NewHeader --- zsig/header.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) 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 +} -- cgit v1.2.3