etag.go 439 B

123456789101112131415161718192021
  1. package main
  2. import (
  3. "crypto/sha256"
  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 := sha256.Sum256(b)
  10. hash := sha256.New()
  11. hash.Write(footprint[:])
  12. hash.Write([]byte(version))
  13. binary.Write(hash, binary.LittleEndian, conf)
  14. binary.Write(hash, binary.LittleEndian, *po)
  15. return fmt.Sprintf("%x", hash.Sum(nil))
  16. }