etag.go 386 B

1234567891011121314151617181920
  1. package main
  2. import (
  3. "crypto/sha1"
  4. "encoding/binary"
  5. "fmt"
  6. )
  7. var notModifiedErr = newError(304, "Not modified", "Not modified")
  8. func calcETag(b []byte, po *processingOptions) string {
  9. footprint := sha1.Sum(b)
  10. hash := sha1.New()
  11. hash.Write(footprint[:])
  12. binary.Write(hash, binary.LittleEndian, *po)
  13. hash.Write(conf.ETagSignature)
  14. return fmt.Sprintf("%x", hash.Sum(nil))
  15. }