28 lines
422 B
Go
28 lines
422 B
Go
package photosapi
|
|
|
|
import (
|
|
"crypto/sha256"
|
|
"encoding/base64"
|
|
"hash"
|
|
)
|
|
|
|
type Checksum struct {
|
|
s hash.Hash
|
|
}
|
|
|
|
func NewChecksum() *Checksum {
|
|
return &Checksum{sha256.New()}
|
|
}
|
|
|
|
func (c *Checksum) Write(b []byte) (int, error) {
|
|
return c.s.Write(b)
|
|
}
|
|
|
|
func (c *Checksum) String() string {
|
|
return base64.URLEncoding.EncodeToString(c.s.Sum(nil))
|
|
}
|
|
|
|
func (c *Checksum) Match(sha string) bool {
|
|
return c.String() == sha
|
|
}
|