Skip to content

Commit

Permalink
chore: allow identical signature data if path is different
Browse files Browse the repository at this point in the history
  • Loading branch information
chatton committed Nov 14, 2022
1 parent 3b2ab6a commit 0738aa1
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 4 deletions.
7 changes: 4 additions & 3 deletions modules/light-clients/06-solomachine/misbehaviour.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,14 @@ func (misbehaviour Misbehaviour) ValidateBasic() error {
return sdkerrors.Wrap(err, "signature two failed basic validation")
}

// misbehaviour signatures cannot be identical
// misbehaviour signatures cannot be identical.
if bytes.Equal(misbehaviour.SignatureOne.Signature, misbehaviour.SignatureTwo.Signature) {
return sdkerrors.Wrap(clienttypes.ErrInvalidMisbehaviour, "misbehaviour signatures cannot be equal")
}

// message data signed cannot be identical
if bytes.Equal(misbehaviour.SignatureOne.Data, misbehaviour.SignatureTwo.Data) {
// message data signed cannot be identical if both paths are the same.
if bytes.Equal(misbehaviour.SignatureOne.Path, misbehaviour.SignatureTwo.Path) &&
bytes.Equal(misbehaviour.SignatureOne.Data, misbehaviour.SignatureTwo.Data) {
return sdkerrors.Wrap(clienttypes.ErrInvalidMisbehaviour, "misbehaviour signature data must be signed over different messages")
}

Expand Down
10 changes: 9 additions & 1 deletion modules/light-clients/06-solomachine/misbehaviour_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,18 @@ func (suite *SoloMachineTestSuite) TestMisbehaviourValidateBasic() {
false,
},
{
"data signed is identical",
"data signed is identical but path differs",
func(misbehaviour *solomachine.Misbehaviour) {
misbehaviour.SignatureTwo.Data = misbehaviour.SignatureOne.Data
},
true,
},
{
"data signed and path are identical",
func(misbehaviour *solomachine.Misbehaviour) {
misbehaviour.SignatureTwo.Path = misbehaviour.SignatureOne.Path
misbehaviour.SignatureTwo.Data = misbehaviour.SignatureOne.Data
},
false,
},
{
Expand Down

0 comments on commit 0738aa1

Please sign in to comment.