pieces.go 327 B

12345678910111213141516171819202122
  1. package metainfo
  2. import (
  3. "crypto/sha1"
  4. "io"
  5. )
  6. func GeneratePieces(r io.Reader, pieceLength int64, b []byte) ([]byte, error) {
  7. for {
  8. h := sha1.New()
  9. written, err := io.CopyN(h, r, pieceLength)
  10. if written > 0 {
  11. b = h.Sum(b)
  12. }
  13. if err == io.EOF {
  14. return b, nil
  15. }
  16. if err != nil {
  17. return b, err
  18. }
  19. }
  20. }