[#170] checksum: Drop Empty method

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
This commit is contained in:
Pavel Karpy 2021-03-22 13:56:18 +03:00 committed by LeL
parent 9c502a9cae
commit fd13e61266
11 changed files with 188 additions and 253 deletions

View file

@ -1,6 +1,7 @@
package object
import (
"bytes"
"crypto/ecdsa"
"crypto/sha256"
"errors"
@ -20,10 +21,10 @@ var errIncorrectID = errors.New("incorrect object identifier")
// CalculatePayloadChecksum calculates and returns checksum of
// object payload bytes.
func CalculatePayloadChecksum(payload []byte) *checksum.Checksum {
res := checksum.New()
res.SetSHA256(sha256.Sum256(payload))
var res checksum.Checksum
checksum.Calculate(&res, checksum.SHA256, payload)
return res
return &res
}
// CalculateAndSetPayloadChecksum calculates checksum of current
@ -38,7 +39,7 @@ func CalculateAndSetPayloadChecksum(obj *Object) {
// corresponds to its payload.
func VerifyPayloadChecksum(obj *Object) error {
actual := CalculatePayloadChecksum(obj.Payload())
if !checksum.Equal(obj.PayloadChecksum(), actual) {
if !bytes.Equal(obj.PayloadChecksum().Value(), actual.Value()) {
return errCheckSumMismatch
}

View file

@ -201,33 +201,45 @@ func (o *Object) SetCreationEpoch(v uint64) {
// PayloadChecksum returns checksum of the object payload.
func (o *Object) PayloadChecksum() *checksum.Checksum {
return checksum.NewFromV2(
(*object.Object)(o).
var v checksum.Checksum
v.ReadFromV2(
*(*object.Object)(o).
GetHeader().
GetPayloadHash(),
)
return &v
}
// SetPayloadChecksum sets checksum of the object payload.
func (o *Object) SetPayloadChecksum(v *checksum.Checksum) {
var v2 refs.Checksum
v.WriteToV2(&v2)
o.setHeaderField(func(h *object.Header) {
h.SetPayloadHash(v.ToV2())
h.SetPayloadHash(&v2)
})
}
// PayloadHomomorphicHash returns homomorphic hash of the object payload.
func (o *Object) PayloadHomomorphicHash() *checksum.Checksum {
return checksum.NewFromV2(
(*object.Object)(o).
var v checksum.Checksum
v.ReadFromV2(
*(*object.Object)(o).
GetHeader().
GetHomomorphicHash(),
)
return &v
}
// SetPayloadHomomorphicHash sets homomorphic hash of the object payload.
func (o *Object) SetPayloadHomomorphicHash(v *checksum.Checksum) {
var v2 refs.Checksum
v.WriteToV2(&v2)
o.setHeaderField(func(h *object.Header) {
h.SetHomomorphicHash(v.ToV2())
h.SetHomomorphicHash(&v2)
})
}

View file

@ -122,23 +122,23 @@ func TestObject_SetCreationEpoch(t *testing.T) {
func TestObject_SetPayloadChecksum(t *testing.T) {
obj := New()
cs := checksum.New()
var cs checksum.Checksum
cs.SetSHA256(randSHA256Checksum(t))
obj.SetPayloadChecksum(cs)
obj.SetPayloadChecksum(&cs)
require.Equal(t, cs, obj.PayloadChecksum())
require.Equal(t, &cs, obj.PayloadChecksum())
}
func TestObject_SetPayloadHomomorphicHash(t *testing.T) {
obj := New()
cs := checksum.New()
var cs checksum.Checksum
cs.SetTillichZemor(randTZChecksum(t))
obj.SetPayloadHomomorphicHash(cs)
obj.SetPayloadHomomorphicHash(&cs)
require.Equal(t, cs, obj.PayloadHomomorphicHash())
require.Equal(t, &cs, obj.PayloadHomomorphicHash())
}
func TestObject_SetAttributes(t *testing.T) {