From a674a2215580ea05918afd25661b0061dd253045 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Tue, 3 Sep 2024 16:58:41 +0000 Subject: [PATCH] follow-up moving some funcs from ecc.py to bitcoin.py follow-up 2f3d89f415f8e40458b385c699250d2278fe9394 --- electrum/bitcoin.py | 2 -- electrum/gui/qt/update_checker.py | 8 +++++--- electrum/plugins/digitalbitbox/digitalbitbox.py | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/electrum/bitcoin.py b/electrum/bitcoin.py index 79d65b3f4..dd4944a5f 100644 --- a/electrum/bitcoin.py +++ b/electrum/bitcoin.py @@ -845,7 +845,6 @@ def control_block_for_taproot_script_spend( # user message signing def usermessage_magic(message: bytes) -> bytes: - from .bitcoin import var_int length = var_int(len(message)) return b"\x18Bitcoin Signed Message:\n" + length + message @@ -855,7 +854,6 @@ def ecdsa_sign_usermessage(ec_privkey, message: Union[bytes, str], *, is_compres return ec_privkey.ecdsa_sign_recoverable(msg32, is_compressed=is_compressed) def verify_usermessage_with_address(address: str, sig65: bytes, message: bytes, *, net=None) -> bool: - from .bitcoin import pubkey_to_address from .ecc import ECPubkey assert_bytes(sig65, message) if net is None: net = constants.net diff --git a/electrum/gui/qt/update_checker.py b/electrum/gui/qt/update_checker.py index 7e8d1c8f9..daf775417 100644 --- a/electrum/gui/qt/update_checker.py +++ b/electrum/gui/qt/update_checker.py @@ -11,7 +11,7 @@ from PyQt5.QtWidgets import (QWidget, QVBoxLayout, QLabel, QProgressBar, from electrum import version from electrum import constants -from electrum import ecc +from electrum.bitcoin import verify_usermessage_with_address from electrum.i18n import _ from electrum.util import make_aiohttp_session from electrum.logging import Logger @@ -123,8 +123,10 @@ class UpdateCheckThread(QThread, Logger): continue sig = base64.b64decode(sig) msg = version_num.encode('utf-8') - if ecc.verify_usermessage_with_address(address=address, sig65=sig, message=msg, - net=constants.BitcoinMainnet): + if verify_usermessage_with_address( + address=address, sig65=sig, message=msg, + net=constants.BitcoinMainnet + ): self.logger.info(f"valid sig for version announcement '{version_num}' from address '{address}'") break else: diff --git a/electrum/plugins/digitalbitbox/digitalbitbox.py b/electrum/plugins/digitalbitbox/digitalbitbox.py index 2a89a33cc..56ab18c24 100644 --- a/electrum/plugins/digitalbitbox/digitalbitbox.py +++ b/electrum/plugins/digitalbitbox/digitalbitbox.py @@ -18,7 +18,7 @@ import copy from typing import TYPE_CHECKING, Optional from electrum.crypto import sha256d, EncodeAES_bytes, DecodeAES_bytes, hmac_oneshot -from electrum.bitcoin import public_key_to_p2pkh, usermessage_magic +from electrum.bitcoin import public_key_to_p2pkh, usermessage_magic, verify_usermessage_with_address from electrum.bip32 import BIP32Node, convert_bip32_intpath_to_strpath, is_all_public_derivation from electrum.bip32 import normalize_bip32_derivation from electrum import descriptor @@ -497,7 +497,7 @@ class DigitalBitbox_KeyStore(Hardware_KeyStore): sig = ecc.construct_ecdsa_sig65(sig_string, recid, is_compressed=True) pubkey, compressed, txin_type_guess = ecc.ECPubkey.from_ecdsa_sig65(sig, msg_hash) addr = public_key_to_p2pkh(pubkey.get_public_key_bytes(compressed=compressed)) - if ecc.verify_usermessage_with_address(addr, sig, message) is False: + if verify_usermessage_with_address(addr, sig, message) is False: raise Exception(_("Could not sign message")) elif 'pubkey' in reply['sign'][0]: # firmware <= v2.1.1 @@ -506,7 +506,7 @@ class DigitalBitbox_KeyStore(Hardware_KeyStore): sig = ecc.construct_ecdsa_sig65(sig_string, recid, is_compressed=True) try: addr = public_key_to_p2pkh(binascii.unhexlify(reply['sign'][0]['pubkey'])) - if ecc.verify_usermessage_with_address(addr, sig, message): + if verify_usermessage_with_address(addr, sig, message): break except Exception: continue