From 8bbf4bc3face4e040e52afd392b70def7b3aaf58 Mon Sep 17 00:00:00 2001 From: Wei-Ning Huang Date: Fri, 4 Jan 2019 17:39:21 +0800 Subject: core: expose HashVote function for test (#400) --- core/utils/crypto.go | 5 +++-- core/utils/crypto_test.go | 2 +- core/utils/penalty-helper_test.go | 8 ++++---- core/utils/signer.go | 2 +- 4 files changed, 9 insertions(+), 8 deletions(-) (limited to 'core/utils') diff --git a/core/utils/crypto.go b/core/utils/crypto.go index 6042411..43bbde1 100644 --- a/core/utils/crypto.go +++ b/core/utils/crypto.go @@ -90,7 +90,8 @@ func VerifyBlockSignature(b *types.Block) (err error) { } -func hashVote(vote *types.Vote) common.Hash { +// HashVote generates hash of a types.Vote. +func HashVote(vote *types.Vote) common.Hash { binaryPeriod := make([]byte, 8) binary.LittleEndian.PutUint64(binaryPeriod, vote.Period) @@ -108,7 +109,7 @@ func hashVote(vote *types.Vote) common.Hash { // VerifyVoteSignature verifies the signature of types.Vote. func VerifyVoteSignature(vote *types.Vote) (bool, error) { - hash := hashVote(vote) + hash := HashVote(vote) pubKey, err := crypto.SigToPub(hash, vote.Signature) if err != nil { return false, err diff --git a/core/utils/crypto_test.go b/core/utils/crypto_test.go index f4280c2..f1fa9b6 100644 --- a/core/utils/crypto_test.go +++ b/core/utils/crypto_test.go @@ -130,7 +130,7 @@ func (s *CryptoTestSuite) TestVoteSignature() { nID := types.NewNodeID(pub) vote := types.NewVote(types.VoteInit, common.NewRandomHash(), 1) vote.ProposerID = nID - vote.Signature, err = prv.Sign(hashVote(vote)) + vote.Signature, err = prv.Sign(HashVote(vote)) s.Require().NoError(err) ok, err := VerifyVoteSignature(vote) s.Require().NoError(err) diff --git a/core/utils/penalty-helper_test.go b/core/utils/penalty-helper_test.go index ba51867..7b61781 100644 --- a/core/utils/penalty-helper_test.go +++ b/core/utils/penalty-helper_test.go @@ -122,9 +122,9 @@ func (s *PenaltyHelperTestSuite) TestForkVote() { for vote2.BlockHash == vote1.BlockHash { vote2.BlockHash = common.NewRandomHash() } - vote1.Signature, err = prv1.Sign(hashVote(vote1)) + vote1.Signature, err = prv1.Sign(HashVote(vote1)) s.Require().NoError(err) - vote2.Signature, err = prv1.Sign(hashVote(vote2)) + vote2.Signature, err = prv1.Sign(HashVote(vote2)) s.Require().NoError(err) ok, err := NeedPenaltyForkVote(vote1, vote2) @@ -138,7 +138,7 @@ func (s *PenaltyHelperTestSuite) TestForkVote() { s.False(ok) // Period not matched. - vote2.Signature, err = prv1.Sign(hashVote(vote2)) + vote2.Signature, err = prv1.Sign(HashVote(vote2)) s.Require().NoError(err) ok, err = NeedPenaltyForkVote(vote1, vote2) s.Require().NoError(err) @@ -152,7 +152,7 @@ func (s *PenaltyHelperTestSuite) TestForkVote() { prv2, err := ecdsa.NewPrivateKey() s.Require().NoError(err) vote2.ProposerID = types.NewNodeID(prv2.PublicKey()) - vote2.Signature, err = prv2.Sign(hashVote(vote2)) + vote2.Signature, err = prv2.Sign(HashVote(vote2)) s.Require().NoError(err) ok, err = NeedPenaltyForkVote(vote1, vote2) s.Require().NoError(err) diff --git a/core/utils/signer.go b/core/utils/signer.go index 47bea3f..7694dab 100644 --- a/core/utils/signer.go +++ b/core/utils/signer.go @@ -66,7 +66,7 @@ func (s *Signer) SignBlock(b *types.Block) (err error) { // SignVote signs a types.Vote. func (s *Signer) SignVote(v *types.Vote) (err error) { v.ProposerID = s.proposerID - v.Signature, err = s.prvKey.Sign(hashVote(v)) + v.Signature, err = s.prvKey.Sign(HashVote(v)) return } -- cgit v1.2.3