From 77f5e904667fa65dc62d01ba0762cd3532873e92 Mon Sep 17 00:00:00 2001 From: Andrew Kozlik Date: Mon, 26 Oct 2020 16:20:59 +0100 Subject: [PATCH] fix(core): In apps.bitcoin ensure that get_address() fails for multisig if user's public key is not included. --- core/src/apps/bitcoin/addresses.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/core/src/apps/bitcoin/addresses.py b/core/src/apps/bitcoin/addresses.py index 7a767e931..b7ee16710 100644 --- a/core/src/apps/bitcoin/addresses.py +++ b/core/src/apps/bitcoin/addresses.py @@ -23,16 +23,15 @@ def get_address( node: bip32.HDNode, multisig: MultisigRedeemScriptType = None, ) -> str: + if multisig: + # Ensure that our public key is included in the multisig. + multisig_pubkey_index(multisig, node.public_key()) if ( script_type == InputScriptType.SPENDADDRESS or script_type == InputScriptType.SPENDMULTISIG ): if multisig: # p2sh multisig - pubkey = node.public_key() - index = multisig_pubkey_index(multisig, pubkey) - if index is None: - raise wire.ProcessError("Public key not found") if coin.address_type_p2sh is None: raise wire.ProcessError("Multisig not enabled on this coin")