diff options
Diffstat (limited to 'core/authenticator.go')
-rw-r--r-- | core/authenticator.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/core/authenticator.go b/core/authenticator.go index f773d52..60a4cf8 100644 --- a/core/authenticator.go +++ b/core/authenticator.go @@ -44,6 +44,7 @@ func NewAuthenticator(prvKey crypto.PrivateKey) (auth *Authenticator) { // SignBlock signs a types.Block. func (au *Authenticator) SignBlock(b *types.Block) (err error) { b.ProposerID = au.proposerID + b.PayloadHash = crypto.Keccak256Hash(b.Payload) if b.Hash, err = hashBlock(b); err != nil { return } @@ -112,6 +113,11 @@ func (au *Authenticator) SignDKGFinalize( // VerifyBlock verifies the signature of types.Block. func (au *Authenticator) VerifyBlock(b *types.Block) (err error) { + payloadHash := crypto.Keccak256Hash(b.Payload) + if payloadHash != b.PayloadHash { + err = ErrIncorrectHash + return + } hash, err := hashBlock(b) if err != nil { return |