aboutsummaryrefslogtreecommitdiff
path: root/zsig
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-05-01 15:38:30 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-05-01 15:38:30 +0200
commit602fcf7050d84d4840aa1a37034a08e927a8949a (patch)
treefef922c94df5e809237f6af35d88317f8558d15e /zsig
parentc6268fc8889dad6048965f0d63053b0a5795fec5 (diff)
Add sum
Diffstat (limited to 'zsig')
-rw-r--r--zsig/sum.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/zsig/sum.go b/zsig/sum.go
new file mode 100644
index 0000000..8e5b23f
--- /dev/null
+++ b/zsig/sum.go
@@ -0,0 +1,24 @@
+package zsig
+
+import (
+ "crypto/sha512"
+ "io"
+)
+
+// Sum calculates SHA512/256
+func Sum(r io.Reader) chan []byte {
+ c := make(chan []byte)
+ go func() {
+ defer close(c)
+ buf := make([]byte, BlockSz)
+ for {
+ n, err := io.ReadFull(r, buf)
+ if err == io.EOF {
+ return
+ }
+ sum := sha512.Sum512_256(buf[:n])
+ c <- sum[:]
+ }
+ }()
+ return c
+}