diff options
author | Jimmy Hu <jimmy.hu@dexon.org> | 2018-09-23 20:51:05 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-23 20:51:05 +0800 |
commit | 0ab5a2d4f63ece79a4df32c6fb3ac710a954fd89 (patch) | |
tree | 626db6969aee92702001e5c9f3de56e2a439ccac /core/dkg-tsig-protocol_test.go | |
parent | 2c71e8448a9c03e924a7869351eebf2def1af057 (diff) | |
download | dexon-consensus-0ab5a2d4f63ece79a4df32c6fb3ac710a954fd89.tar.gz dexon-consensus-0ab5a2d4f63ece79a4df32c6fb3ac710a954fd89.tar.zst dexon-consensus-0ab5a2d4f63ece79a4df32c6fb3ac710a954fd89.zip |
core: run first DKG at startup. (#129)
Diffstat (limited to 'core/dkg-tsig-protocol_test.go')
-rw-r--r-- | core/dkg-tsig-protocol_test.go | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/core/dkg-tsig-protocol_test.go b/core/dkg-tsig-protocol_test.go index 2bcbe9e..63b47ec 100644 --- a/core/dkg-tsig-protocol_test.go +++ b/core/dkg-tsig-protocol_test.go @@ -193,6 +193,13 @@ func (s *DKGTSIGProtocolTestSuite) TestDKGTSIGProtocol() { qualifyIDs[id] = struct{}{} } + for _, nID := range gpk.qualifyNodeIDs { + id, exist := gpk.idMap[nID] + s.Require().True(exist) + _, exist = qualifyIDs[id] + s.Require().True(exist) + } + shareSecrets := make( map[types.NodeID]*dkgShareSecret, len(qualifyIDs)) @@ -299,21 +306,26 @@ func (s *DKGTSIGProtocolTestSuite) TestComplaint() { ReceiverID: targetID, Round: round, }) - s.Error(ErrNotDKGParticipant, err) - err = protocol.processPrivateShare(&types.DKGPrivateShare{ + s.Equal(ErrNotDKGParticipant, err) + receivers[byzantineID].ProposeDKGPrivateShare(&types.DKGPrivateShare{ ProposerID: byzantineID, ReceiverID: targetID, Round: round, }) - s.Error(ErrIncorrectPrivateShareSignature, err) + invalidShare := receivers[byzantineID].prvShare[targetID] + invalidShare.Signature[1]++ + err = protocol.processPrivateShare(invalidShare) + s.Equal(ErrIncorrectPrivateShareSignature, err) + delete(receivers[byzantineID].prvShare, targetID) // Byzantine node is sending incorrect private share. receivers[byzantineID].ProposeDKGPrivateShare(&types.DKGPrivateShare{ - ProposerID: byzantineID, - ReceiverID: targetID, - Round: round, + ProposerID: byzantineID, + ReceiverID: targetID, + Round: round, + PrivateShare: *dkg.NewPrivateKey(), }) - invalidShare := receivers[byzantineID].prvShare[targetID] + invalidShare = receivers[byzantineID].prvShare[targetID] s.Require().NoError(protocol.processPrivateShare(invalidShare)) s.Require().Len(receiver.complaints, 1) complaint, exist := receiver.complaints[byzantineID] @@ -575,16 +587,17 @@ func (s *DKGTSIGProtocolTestSuite) TestPartialSignature() { PartialSignature: shareSecret.sign(msgHash), } if nID == byzantineID2 { - psig.PartialSignature[0]++ + psig.PartialSignature = shareSecret.sign( + crypto.Keccak256Hash([]byte("💣"))) } var err error psig.Signature, err = s.prvKeys[nID].Sign(hashDKGPartialSignature(psig)) s.Require().NoError(err) err = tsig.processPartialSignature(msgHash, psig) if nID == byzantineID { - s.Require().Error(ErrNotQualifyDKGParticipant, err) + s.Require().Equal(ErrNotQualifyDKGParticipant, err) } else if nID == byzantineID2 { - s.Require().Error(ErrIncorrectPartialSignature, err) + s.Require().Equal(ErrIncorrectPartialSignature, err) } else { s.Require().NoError(err) } |