From 6f691cbd83050ff0e3b2cb83b6e6888a4492b1a7 Mon Sep 17 00:00:00 2001 From: andy-shi88 Date: Thu, 12 Mar 2020 11:04:48 +0800 Subject: [PATCH 1/2] #651 fix multisig_address signature validation --- common/crypto/signature.go | 2 -- common/transaction/multiSignature.go | 5 ++++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/common/crypto/signature.go b/common/crypto/signature.go index 0a8fd5a0f..aaecf05b8 100644 --- a/common/crypto/signature.go +++ b/common/crypto/signature.go @@ -129,8 +129,6 @@ func (*Signature) VerifySignature(payload, signature []byte, accountAddress stri ) } return nil - case model.SignatureType_MultisigSignature: // multisig validation-only - return nil default: return blocker.NewBlocker( blocker.ValidationErr, diff --git a/common/transaction/multiSignature.go b/common/transaction/multiSignature.go index 4d5f0c6e6..959af6ca4 100644 --- a/common/transaction/multiSignature.go +++ b/common/transaction/multiSignature.go @@ -312,7 +312,10 @@ func (tx *MultiSignatureTransaction) Validate(dbTx bool) error { } err := tx.Signature.VerifySignature(body.SignatureInfo.TransactionHash, sig, addr) if err != nil { - return err + signatureType := util.ConvertBytesToUint32(sig[:]) + if model.SignatureType(signatureType) != model.SignatureType_MultisigSignature { + return err + } } } } From faa37a99d82c68a9d8e2a54079777f24ae8e9255 Mon Sep 17 00:00:00 2001 From: andy-shi88 Date: Thu, 12 Mar 2020 11:22:47 +0800 Subject: [PATCH 2/2] #651 fix test --- common/transaction/multiSignature_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/transaction/multiSignature_test.go b/common/transaction/multiSignature_test.go index 0ac431cc9..3f81fcf27 100644 --- a/common/transaction/multiSignature_test.go +++ b/common/transaction/multiSignature_test.go @@ -589,7 +589,7 @@ func TestMultiSignatureTransaction_Validate(t *testing.T) { SignatureInfo: &model.SignatureInfo{ TransactionHash: make([]byte, 32), Signatures: map[string][]byte{ - "A": {1, 2, 3}, + "A": {1, 2, 3, 4}, }, }, },