package transformer import ( "crypto/sha256" "hash" "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/checksum" objectSDK "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object" "git.frostfs.info/TrueCloudLab/tzhash/tz" ) type payloadChecksumHasher struct { hasher hash.Hash typ checksum.Type } func (h payloadChecksumHasher) writeChecksum(obj *objectSDK.Object) { switch h.typ { case checksum.SHA256: csSHA := [sha256.Size]byte{} h.hasher.Sum(csSHA[:0]) var cs checksum.Checksum cs.SetSHA256(csSHA) obj.SetPayloadChecksum(cs) case checksum.TZ: csTZ := [tz.Size]byte{} h.hasher.Sum(csTZ[:0]) var cs checksum.Checksum cs.SetTillichZemor(csTZ) obj.SetPayloadHomomorphicHash(cs) default: panic("unreachable") } }