From a4081bab7276ad0697acfc7fea17e5999c1b764a Mon Sep 17 00:00:00 2001 From: Jan Pochyla Date: Tue, 27 Feb 2018 14:45:11 +0100 Subject: [PATCH] src: move HashWriter to trezor.utils --- src/apps/common/hash_writer.py | 16 ---------------- src/apps/common/signverify.py | 3 +-- src/apps/ethereum/sign_message.py | 2 +- src/apps/ethereum/sign_tx.py | 2 +- src/apps/wallet/sign_tx/multisig.py | 2 +- src/apps/wallet/sign_tx/segwit_bip143.py | 2 +- src/apps/wallet/sign_tx/signing.py | 2 +- src/trezor/utils.py | 17 +++++++++++++++++ 8 files changed, 23 insertions(+), 23 deletions(-) delete mode 100644 src/apps/common/hash_writer.py diff --git a/src/apps/common/hash_writer.py b/src/apps/common/hash_writer.py deleted file mode 100644 index 025e5a2e2..000000000 --- a/src/apps/common/hash_writer.py +++ /dev/null @@ -1,16 +0,0 @@ - -class HashWriter: - - def __init__(self, hashfunc): - self.ctx = hashfunc() - self.buf = bytearray(1) # used in append() - - def extend(self, buf: bytearray): - self.ctx.update(buf) - - def append(self, b: int): - self.buf[0] = b - self.ctx.update(self.buf) - - def get_digest(self, *args) -> bytes: - return self.ctx.digest(*args) diff --git a/src/apps/common/signverify.py b/src/apps/common/signverify.py index bee782d57..d5168d92b 100644 --- a/src/apps/common/signverify.py +++ b/src/apps/common/signverify.py @@ -2,8 +2,7 @@ from ubinascii import hexlify from trezor.crypto.hashlib import sha256 from trezor import ui from trezor.ui.text import TEXT_MARGIN_LEFT -from trezor.utils import chunks, split_words -from apps.common.hash_writer import HashWriter +from trezor.utils import chunks, split_words, HashWriter from apps.wallet.sign_tx.signing import write_varint diff --git a/src/apps/ethereum/sign_message.py b/src/apps/ethereum/sign_message.py index b35ac4d6d..bb193d18e 100644 --- a/src/apps/ethereum/sign_message.py +++ b/src/apps/ethereum/sign_message.py @@ -2,7 +2,7 @@ def message_digest(message): from apps.wallet.sign_tx.signing import write_varint from trezor.crypto.hashlib import sha3_256 - from apps.common.hash_writer import HashWriter + from trezor.utils import HashWriter h = HashWriter(sha3_256) signed_message_header = 'Ethereum Signed Message:\n' diff --git a/src/apps/ethereum/sign_tx.py b/src/apps/ethereum/sign_tx.py index dfcaf2696..8706f1894 100644 --- a/src/apps/ethereum/sign_tx.py +++ b/src/apps/ethereum/sign_tx.py @@ -1,7 +1,7 @@ from trezor.messages.EthereumSignTx import EthereumSignTx from trezor.messages.EthereumTxRequest import EthereumTxRequest from trezor.messages import FailureType -from apps.common.hash_writer import HashWriter +from trezor.utils import HashWriter from trezor.crypto import rlp from apps.ethereum import tokens, layout diff --git a/src/apps/wallet/sign_tx/multisig.py b/src/apps/wallet/sign_tx/multisig.py index 8a07b1351..ba41b7eaa 100644 --- a/src/apps/wallet/sign_tx/multisig.py +++ b/src/apps/wallet/sign_tx/multisig.py @@ -1,12 +1,12 @@ from trezor.crypto.hashlib import sha256 from trezor.crypto import bip32 +from trezor.utils import HashWriter from trezor.messages.MultisigRedeemScriptType import MultisigRedeemScriptType from trezor.messages.HDNodePathType import HDNodePathType from trezor.messages import FailureType from apps.wallet.sign_tx.writers import * -from apps.common.hash_writer import * class MultisigError(ValueError): diff --git a/src/apps/wallet/sign_tx/segwit_bip143.py b/src/apps/wallet/sign_tx/segwit_bip143.py index 0423a4631..c48a6701a 100644 --- a/src/apps/wallet/sign_tx/segwit_bip143.py +++ b/src/apps/wallet/sign_tx/segwit_bip143.py @@ -1,11 +1,11 @@ from trezor.crypto.hashlib import sha256 from trezor.messages.SignTx import SignTx from trezor.messages import InputScriptType, FailureType +from trezor.utils import HashWriter from apps.wallet.sign_tx.writers import * from apps.wallet.sign_tx.scripts import output_script_p2pkh, output_script_multisig from apps.wallet.sign_tx.multisig import multisig_get_pubkeys -from apps.common.hash_writer import HashWriter class Bip143Error(ValueError): diff --git a/src/apps/wallet/sign_tx/signing.py b/src/apps/wallet/sign_tx/signing.py index 0599cf9a2..d00f1bbb3 100644 --- a/src/apps/wallet/sign_tx/signing.py +++ b/src/apps/wallet/sign_tx/signing.py @@ -3,13 +3,13 @@ from micropython import const from trezor.crypto import base58, bip32, der from trezor.crypto.curve import secp256k1 from trezor.crypto.hashlib import sha256 +from trezor.utils import HashWriter from trezor.messages import OutputScriptType from trezor.messages.TxRequestDetailsType import TxRequestDetailsType from trezor.messages.TxRequestSerializedType import TxRequestSerializedType from apps.common import address_type, coins -from apps.common.hash_writer import HashWriter from apps.wallet.sign_tx.addresses import * from apps.wallet.sign_tx.helpers import * from apps.wallet.sign_tx.scripts import * diff --git a/src/trezor/utils.py b/src/trezor/utils.py index 8bb7b6889..25d565875 100644 --- a/src/trezor/utils.py +++ b/src/trezor/utils.py @@ -59,3 +59,20 @@ def format_amount(amount, decimals): def format_ordinal(number): return str(number) + {1: 'st', 2: 'nd', 3: 'rd'}.get(4 if 10 <= number % 100 < 20 else number % 10, 'th') + + +class HashWriter: + + def __init__(self, hashfunc): + self.ctx = hashfunc() + self.buf = bytearray(1) # used in append() + + def extend(self, buf: bytearray): + self.ctx.update(buf) + + def append(self, b: int): + self.buf[0] = b + self.ctx.update(self.buf) + + def get_digest(self, *args) -> bytes: + return self.ctx.digest(*args)