]> Sergey Matveev's repositories - btrtrc.git/blob - metainfo/pieces.go
Drop support for go 1.20
[btrtrc.git] / metainfo / pieces.go
1 package metainfo
2
3 import (
4         "crypto/sha1"
5         "io"
6 )
7
8 func GeneratePieces(r io.Reader, pieceLength int64, b []byte) ([]byte, error) {
9         for {
10                 h := sha1.New()
11                 written, err := io.CopyN(h, r, pieceLength)
12                 if written > 0 {
13                         b = h.Sum(b)
14                 }
15                 if err == io.EOF {
16                         return b, nil
17                 }
18                 if err != nil {
19                         return b, err
20                 }
21         }
22 }