1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-10-18 05:49:11 +00:00
Commit Graph

597 Commits

Author SHA1 Message Date
matejcik
639406b01f feat(all): make chain_id mandatory 2021-09-10 15:09:03 +02:00
arbitrarylink
f051225730 feat(core,legacy): add support for Ethereum 64-bit chain_id
* Changes from original PR

* Now that we are rejecting chain_ids of 0, we need to have the tests set the chain_ids to at least 1.

* Ran 'make gen' and uploaded changed files.

* Ran make style_check and fixed reported errors

* Added changelog files

* Reverted changes concerning chain_id 0 being rejected.

* Adds tests for MAX_CHAIN_ID and MAX_CHAIN_ID+1.  Also reverts MAX_CHAIN_ID to the previous value.

* Added missing whitespace around arithmetic operator.

Co-authored-by: Michael Hatton <michaelhatton@Michaels-Mini.fios-router.home>
2021-09-10 15:09:03 +02:00
matejcik
f083beb3c2 fix(python/trezorctl): fix "invalid value" of ChoiceType with default
[no changelog] as the changelog entry is explicitly added to previous
version
2021-09-07 13:37:23 +02:00
gabrielkerekes
b0c8590f00 feat(cardano): streamed transaction signing 2021-08-20 11:50:13 +02:00
gabrielkerekes
d2a5be4e38 feat(cardano): prepare protobuf messages for streamed tx signing 2021-08-20 11:50:13 +02:00
matejcik
ee068b01ea chore(python): remove Lisk 2021-08-19 10:25:41 +02:00
Jun Luo
1adc869626 fix(python/stellar): correct the data type passed to StellarAllowTrustOp.is_authorized.
[no changelog]
2021-08-11 14:15:27 +02:00
Frederik Bolding
38fa9197ca feat(core,python): support for Ethereum EIP1559 transactions
Initial EIP1559 implementation

Fix a few small issues

Progress on Python lib implementation and firmware

Fix RLP length

Start fixing tests

Fix legacy transactions

Simplify API and logic

Add EIP1559 tests

Fix access list formatting

Fix UI visiblity issue

Fix commented out code

fix: correct linting issues

Fix access_list protobuf formatting

Remove unneeded code

Remove dead code

Check tx_type bounds for EIP 2718

Reduce code duplication

Prefer eip2718_type over re-using tx_type

Add more tests

Simplify format_access_list

Simplify sign_tx slightly

Change Access List format and add logic to encode it

Fix a bunch of small PR comments

Fix a linting issue

Move tests out of class and regenerate

Remove copy-pasted comments

Add access list to CLI

Simplify _parse_access_list_item

Fix small mistakes following rebase

Fix linting

Refactor to use a separate message for EIP 1559 tx

Simplify changed legacy code

Fix a few small PR comments

Fix linting

fix(legacy): recognize SignTxEIP1559 on legacy build

Fix PR comments
2021-08-10 11:00:29 +02:00
overcat
5cf873a03a feat(python/stellar): print a readable message when the user has not submitted a base64-encoded transaction envelope. 2021-08-06 13:14:57 +02:00
Jun Luo
543b9f407c refactor(python/stellar): Use Stellar Python SDK to parse Stellar transactions.
As a side effect, support for TransactionV1 format transaction is added.
2021-08-06 13:14:57 +02:00
gabrielkerekes
4f7c6b3586 feat(common): change all protobuf message type hints to strings
In order to support recursive protobuf messages, which will be needed by Cardano's native scripts.
[no changelog]
2021-08-05 12:10:30 +02:00
matejcik
9ab1891b22 feat(common): more required fields in messages-management
[no changelog]
2021-08-04 15:03:11 +02:00
matejcik
0e650b1a5b fix(python): do not set socket to nonblocking for wait_until_ready
There's two udp calls in `UdpTransport._ping()`:
- socket.sendall(b"PINGPING") -> this will be instanteous, AND it will
raise if the receiving side is not listening.
- socket.recv() -> this will wait for SOCKET_TIMEOUT seconds, but only
in case the sendall() succeeded. This means that receiving side exists
and we are now waiting until it's awake enough to respond.

In conclusion, we avoid hammering emulator with PINGPINGs with a timeout
so short we don't see an answer. This should avoid the problem
occasionally seen in CI and described in #1668
2021-08-04 10:58:59 +02:00
matejcik
34047cf3ec Revert "feat(python): give the emulator a little more time to respond to ping"
This reverts commit ae0da5e245.

It seems that there was no good reason for the change in the first
place.
2021-08-04 10:58:59 +02:00
matejcik
92e9d61e24 feat(python/debuglink): reset_debug_features to reconfigure debuglink 2021-08-04 10:58:59 +02:00
matejcik
b3312d1ef7 fix(tests): set_filter must be used in with-block
This makes sure filters are properly cleared when the with-block exits
2021-08-04 10:58:59 +02:00
matejcik
e7c40c9560 feat(python/trezorctl): trezorctl device reboot-to-bootloader 2021-07-29 15:32:42 +02:00
grdddj
13b8a6e54d fix(python/trezorctl): firmware download does not require connected trezor 2021-07-20 11:03:57 +02:00
matejcik
f8bb90366a fix(tests): auto-swipe by using only ButtonRequest.pages 2021-07-09 21:01:07 +02:00
matejcik
1e1963f1ee fix(core): do not send ButtonRequest on every paging event
partial revert of 54db2291f2 from #1671
2021-07-09 15:00:29 +02:00
grdddj
6bbc9a78f3 feat(python/trezorctl): improving and refactoring firmware CLI commands 2021-07-07 10:33:03 +02:00
matejcik
d047c98cb2 feat(python/debuglink): auto-page on pageable screens 2021-06-22 11:25:12 +02:00
matejcik
4f0aca7bb5 feat(python): pass whole ButtonRequest to button_request UI handler 2021-06-22 11:25:12 +02:00
matejcik
ea2a9375ac feat(python/debuglink): streamline expected responses handling [no changelog] 2021-06-22 11:25:12 +02:00
matejcik
1012ee8497 feat(core): send ButtonRequests for paging events 2021-06-22 11:25:12 +02:00
gabrielkerekes
a92b5fc333 fix(core/cardano): forbid tx outputs with both address and address parameters 2021-06-08 15:02:24 +02:00
matejcik
a58823cc0c refactor(python): rework trezorlib protobuf codec
API-compatibility with the original one is retained.

Now that we don't need to keep code parity with core, we could do some
changes that make life easier.

All generated classes are now in one file. This makes github diffs more
readable, at the cost of somewhat complicating inspecting individual
classes; however, that is something we shouldn't be doing anyway.

Enums are now implemented as enum.IntEnum.

The original class-level FIELDS member was restored.

Each field is now defined via protobuf.Field, which is easier to work
with in the codec, AND we're not stuffing defaults and flags into the
same field.
2021-06-08 09:55:19 +02:00
matejcik
aaa3ce6117 fix(core/bitcoin): fix CoinJoin authorization with new cache 2021-05-06 13:14:21 +02:00
matejcik
ae0da5e245 feat(python): give the emulator a little more time to respond to ping 2021-05-06 13:14:21 +02:00
gabrielkerekes
bf3e64ff20 fix(common): add isort:skip_file to files generated by pb2py 2021-04-23 11:09:29 +02:00
gabrielkerekes
a3d0016a2f refactor(trezorlib/cardano): rename create_* functions
To avoid ambiguity between creating messages from parameters and parsing them from JSON.
2021-04-23 11:09:29 +02:00
gabrielkerekes
2313293477 feat(core/cardano): add support for catalyst voting registration 2021-04-23 11:09:29 +02:00
gabrielkerekes
2c503b16f5 fix(common): fix one value enums in pb2py 2021-04-23 11:09:29 +02:00
Pavol Rusnak
65cefbc879
docs: remove wallet.trezor.io references 2021-04-16 16:18:48 +02:00
Martin Milata
0278998f72 style(common): mypy: disable implicit Optional for function arguments 2021-04-01 11:12:30 +02:00
Rafael Korbas
a9b8b0e119 feat(core/cardano): chunked serialization of signed transaction 2021-03-26 11:15:19 +01:00
mcudev
23abf7aff0 python/trezorctl: make bitcoin regtest a supported coin for trezorctl btc get-descriptor 2021-03-25 15:52:34 +01:00
Andrew Kozlik
885b6f7214 feat(python): Support 50 digit PIN and wipe code in trezorctl. 2021-03-25 14:24:41 +01:00
matejcik
cb7152542d feat: drop DebugLinkShowText functionality 2021-03-18 10:59:51 +01:00
JoeGruff
e3ea32a986 multi: Add decred staking.
Add two new input and four output script types.

Decred ticket purchases consist of a stake submission, op returns, and
change addresses. Although change addresses are allowed by consensus,
they are no longer used in practice and so have been given the
restrictions of a null pubkey and no value. Stake scripts are almost
identical to p2pkh or p2sh except for an extra opcode in front. Inputs
are currently only used in the form of one input three outputs with the
first output, or stake submission, paying to a public key hash, or with
two inputs and five outputs with the stake submission paying to a
multisig script hash. The op returns are directed to the user in the
case of one and the voting service provider and user in the case of two.

One of the sstx commitment for a ticket must pay back to the trezor
wallet. This is checked and an error is thrown if we don't find the
expected public key hash.

Because this adds the ability to create new types of outputs once the
ticket votes, two new input script types are also needed. A successful
vote will lead to a stake generation script that must be spent, and an
unsuccessful vote will lead to a revocation script that must be spent.
If we allowed stake change scripts to have a valid pubkey, that too
would require another op code, but we disallow those for output.
2021-03-17 12:16:08 +01:00
Roman Zeyde
b2877afa7f feat(common): add public_key to ECDHSessionKey 2021-03-08 15:59:00 +01:00
Pavol Rusnak
4b0f41d41e
fix(common): change msg_id of RebootToBootloader from 804 to 87 2021-03-03 12:07:00 +01:00
Ondrej Mikle
77e99078c3
chore(trezorlib): add generated message files 2021-03-03 12:07:00 +01:00
Ondrej Mikle
1579c62332
chore(legacy): reboot to bootloader protobuf generated messages 2021-03-03 12:06:59 +01:00
Pavol Rusnak
10edcb0d3a
doc(python): change wording from beta wallet to beta channel
[skip_ci]
2021-03-02 10:39:20 +01:00
Martin Milata
192d0dcf87 feat(core): hold homescreen to lock 2021-02-24 00:10:10 +01:00
Martin Milata
db2db8e6f3 feat(common): add hold_ms to DebugLinkDecision 2021-02-24 00:10:10 +01:00
Pavol Rusnak
f780cbdb17
feat(python): add possibility to enter PIN via letters (#1496) 2021-02-23 10:39:26 +01:00
matejcik
14037d0c31 chore: regenerate protobuf classes 2021-02-10 10:56:52 +01:00
Pavol Rusnak
48d1a7a880
fix(python): append checksum to descriptors (#1445) 2021-02-05 17:46:02 +01:00
Pavol Rusnak
81ae1d0ec0
fix(python): remove extraneous empty line from descriptors output
[skip_ci]
2021-02-03 14:58:30 +01:00
Rafael Korbas
e4c406822c Add multiasset sending and min validity to Cardano transactions 2021-01-27 18:26:40 +01:00
Rafael Korbas
44c7d23741 Cardano: map account paths to account numbers 2021-01-22 14:45:29 +01:00
Pavol Rusnak
345ef52949 feat(proto): add amount_unit to AuthorizeCoinJoin and SignTx 2021-01-22 14:07:36 +01:00
Pavol Rusnak
6689b9c22f common/protob: add GetAddress.ignore_xpub_magic field 2021-01-21 23:46:29 +01:00
Pavol Rusnak
88889472eb feat(python): add btc get-descriptor command 2021-01-08 14:17:09 +01:00
Pavol Rusnak
edb1243f64 feat(proto): add descriptors related fields to GetPublicKey/PublicKey 2021-01-08 14:17:09 +01:00
matejcik
5feb76f603 fix(python): do not log "resumed session" if there is no id 2020-12-11 11:44:01 +01:00
matejcik
4d4d0e7216 fix(python): do not call EndSession in bootloader mode (fixes #1379) 2020-12-11 11:41:15 +01:00
Pavol Rusnak
1187e4ddaf style(common): use new syntax for typing in autogenerated protobuf enums 2020-12-01 15:52:29 +01:00
Pavol Rusnak
cd829a99de style(python/src): use new syntax for typing 2020-12-01 15:52:29 +01:00
Martin Milata
8fd12f4373 fix(tests): run test_softlock_instability on emulator only 2020-12-01 12:35:11 +01:00
Rafael Korbas
b311bd4d4a Add displaying of TTL to cardano transaction, align url validation with Ledger 2020-11-20 15:58:50 +01:00
Rafael Korbas
b261f789f3 Add support for stakepool registration to Cardano 2020-11-20 15:58:50 +01:00
Pavol Rusnak
225cd15732 fix(python): drop references to beta-wallet.trezor.io 2020-11-16 09:45:42 +01:00
matejcik
5005a61eaf fix(python): update trezorctl multisig feature to new API 2020-10-30 10:25:51 +01:00
matejcik
a36ccd7e6f feat!(python): drop Mapping protocol support from MessageType 2020-10-30 10:25:51 +01:00
matejcik
8c460dcbf3 feat(python): improve error message when prev_txes are not provided 2020-10-30 10:25:51 +01:00
matejcik
3d6d1a56ac feat(python): implement API compatibility with trezorlib 0.12 2020-10-30 10:25:51 +01:00
Andrew Kozlik
9e5d5bd5f9 feat: Add support for experimental field flag in protobuf. 2020-10-23 15:07:15 +02:00
Andrew Kozlik
b636e959f5 chore(python): Support TXORIGINPUT and TXORIGOUTPUT in trezorlib. 2020-10-23 15:07:15 +02:00
Andrew Kozlik
ad6a0bc2a2 chore(common): Add new request types TXORIGINPUT and TXORIGOUTPUT. 2020-10-23 15:07:15 +02:00
Andrew Kozlik
443e0c101e chore(common): Add orig_hash and orig_index fields to TxInput and TxOutput. 2020-10-23 15:07:15 +02:00
Martin Milata
0376670404 feat(common): expose 'unstable' option in generated code 2020-10-16 13:53:31 +02:00
Martin Milata
3b138b4f98 feat(python): add experimental_features setting 2020-10-16 13:53:31 +02:00
Martin Milata
314cd260eb feat(common): add experimental_features setting 2020-10-16 13:53:31 +02:00
Martin Milata
b2c4bbdaa2 feat(common): add auto_lock_delay and display_rotation to Features 2020-10-02 11:06:16 +02:00
matejcik
e4785d47e0 style: apply black 20.8b1 2020-09-29 11:30:40 +02:00
matejcik
6dda240f5c test(python): add flake8-requirements 2020-09-29 11:30:40 +02:00
matejcik
0eed360037 chore: make tx type names shorter
as suggested by @andrewkozlik:
TxAckInputType -> TxInput
TxAckOutputType -> TxOutput
TxAckPrevTxType -> PrevTx
TxAckPrevInputType -> PrevInput
TxAckPrevOutputType -> PrevOutput
2020-09-23 16:00:10 +02:00
matejcik
01b66a5858 fix(python): always fill TransactionType.lock_time 2020-09-23 16:00:10 +02:00
matejcik
9ee7eee1eb chore!(python): bump trezorlib version because of breaking API change 2020-09-23 16:00:10 +02:00
matejcik
08d896f2f9 chore(tests): update to kwargs usage and new btc.sign_tx API 2020-09-23 16:00:10 +02:00
matejcik
b41021a5fb chore(python): fix kwargs usage 2020-09-23 16:00:10 +02:00
matejcik
5ddf1dfafb feat!(python): modify btc.sign_tx api to accept kwargs
Because we can't pass SignTx anymore because it has required fields and
the caller is not supposed to fill out those.

Instead you can send arbitrary kwargs that match signtx fields.

BREAKING CHANGE: argument `details: SignTx` is no longer accepted.
2020-09-23 16:00:10 +02:00
matejcik
ef4022fbf5 auto: regenerate protobuf classes 2020-09-23 16:00:10 +02:00
matejcik
90ee5f3d38 feat!: implement protobuf required fields and default values
BREAKING CHANGE: this makes arguments to protobuf constructors
keyword-only, and arguments corresponding to required fields are now
mandatory
2020-09-23 16:00:10 +02:00
Martin Milata
76a1760764 python: support SafetyChecks.PromptTemporarily 2020-09-18 09:02:40 +02:00
Martin Milata
7d37b2c90f common: add PromptTemporarily to SafetyChecks enum 2020-09-18 09:02:40 +02:00
Martin Milata
9f066e877d common: add SafetyCheckLevel to Features 2020-09-18 09:02:40 +02:00
Andrew Kozlik
5d745d5d04 common/protob: Add commitment_data to TxInputType. 2020-09-08 19:36:10 +02:00
matejcik
ffe3b5487d python: ignore failures of EndSession call, so that end_session() does not raise 2020-08-28 15:37:06 +02:00
matejcik
e0583dd5cb all: use a specific error code for "invalid session" 2020-08-28 15:37:06 +02:00
matejcik
e96a9e8d39 python/trezorctl: make use of EndSession 2020-08-28 15:37:06 +02:00
matejcik
4f92d2b14d python: call EndSession when requested 2020-08-28 15:37:06 +02:00
matejcik
17736e8fba python/trezorctl: fix output of 'btc get-address' help text 2020-08-27 15:19:53 +02:00
matejcik
d19f00b26c python/trezorctl: fix minor bugs in 'set homescreen' 2020-08-27 13:44:20 +02:00
matejcik
fb1deb6156 python/trezorctl: improve 'set homescreen' command 2020-08-25 13:17:21 +02:00
matejcik
a14634c389 python: make PIL optional in the toif module, add size check 2020-08-25 13:17:08 +02:00
matejcik
032a65e1cf python: export toif as public module 2020-08-25 11:30:33 +02:00
Martin Milata
43b7ccefc7 python/trezorctl: remove --skip-vendor-header from firmware-update 2020-08-25 11:16:04 +02:00
Martin Milata
29861e076b python: fix cli --file handling
It seems that Click doesn't do the right thing when argument and hidden
option with the same name exist, which was introduced in commit
2678e64a99.
2020-08-25 11:07:34 +02:00
Ferdinando M. Ametrano
b3d483dd6b
python: silenced unused variables (#1202) 2020-08-24 10:56:18 +02:00
Martin Milata
6319fcfe4a python: fix trezorctl lisk sign-message address parsing 2020-08-18 13:45:49 +02:00
Andrew Kozlik
9da715e025 python: Fix UnboundLocalError in trezorctl btc get-address. 2020-08-12 17:43:51 +02:00
Pavol Rusnak
5536fbb98a python: use stdlib blake2s on python 3.6+
commit 6d407c84d7 did not replace everything
2020-08-10 23:35:38 +02:00
matejcik
4029fc1e1c python: remove superfluous .keep file 2020-08-05 16:45:56 +02:00
matejcik
35c3af87dd python: rename unsafe_prompts to safety_checks 2020-08-05 16:45:56 +02:00
matejcik
769ccf52c6 python: fix behavior of client.ping() when device is locked 2020-08-05 16:45:56 +02:00
matejcik
efcaf7bda6 python/btc: improve missing signature detection 2020-08-05 16:45:56 +02:00
matejcik
037bef3a38 python: fix logging of protobuf repeated enums 2020-08-05 16:45:56 +02:00
matejcik
c244503e1f python/trezorctl: add aliases for firmware-update 2020-08-05 16:45:56 +02:00
matejcik
d5fe57012d python: bump version before release 2020-08-05 16:45:56 +02:00
matejcik
2678e64a99 python/trezorctl: improve file-based arguments 2020-08-05 16:45:56 +02:00
matejcik
e585d35f34 python: clarify session and feature management API
init_device() should be used to initialize a session. Reuses existing
session if available.

end_session() explicitly closes any existing session and requests a new
one

lock() enables soft-lock

clear_session() is the equivalent of lock() + end_session()

A new function ensure_unlocked() can be used to open a session and
prompt for PIN and passphrase before further operations.
2020-08-05 16:45:56 +02:00
matejcik
95f33a77c7 python/trezorctl: support multisig addresses in get-address 2020-08-05 16:45:56 +02:00
Andrew Kozlik
62d66a713c python: Add cancel_authorization() to trezorlib. 2020-08-04 17:32:44 +02:00
Andrew Kozlik
5c1f197602 common/protob: Add CancelAuthorization message. 2020-08-04 17:32:44 +02:00
Andrew Kozlik
85cf79169c python: Support preauthorized operations in trezorlib. 2020-08-04 17:32:44 +02:00
Andrew Kozlik
84c1324290 python: Add authorize_coinjoin() to trezorlib. 2020-08-04 17:32:44 +02:00
Andrew Kozlik
2c30dd62fc common: Add DoPreauthorized message. 2020-08-04 17:32:44 +02:00
Andrew Kozlik
bbab13f6e7 common/protob: Add AuthorizeCoinJoin message. 2020-08-04 17:32:44 +02:00
gabrielkerekes
a5d3b63912 Refactor trezorlib transaction key checking 2020-07-30 17:17:03 +02:00
gabrielkerekes
f2ee450410 Include metadata in transaction signing 2020-07-30 17:17:03 +02:00
gabrielkerekes
c29d297a77 Set default values to client functions parameters 2020-07-30 17:17:03 +02:00
gabrielkerekes
93b9f35678 Update trezorlib
Add certificates, withdrawals and metadata hash
2020-07-30 17:17:03 +02:00
gabrielkerekes
e92baf5b02 Update protobuf 2020-07-30 17:17:03 +02:00
gabrielkerekes
b5f3511c1c Add support for script addresses in tx outputs 2020-07-30 14:43:32 +02:00
matejcik
741fca0156 tests: watch_layout must be explicit (fixes #1142) 2020-07-29 11:50:47 +02:00
Pavol Rusnak
cec87bba50
core: remove mono bold font variant (not used anywhere) 2020-07-27 23:22:34 +02:00
Gabriel Kerekeš
d2c1624602 Cardano shelley update 2/3 (#1112) 2020-07-27 13:11:23 +02:00
gabrielkerekes
e1615e60ec Update Cardano to support Shelley era 1/3
Update protobuf

- Previous transactions don't need to be sent anymore, because fee is
  included in the transaction now. Thus transactions_count can be
  removed from CardanoSignTx message and the CardanoTxAck and
  CardanoTxRequest messages can be removed altogether.
- CardanoTxInputType.type is unused so remove it

Add NULL (None type) serialisation to CBOR

- Transaction metada must either have a valid structure or CBOR NULL
  must be used (if metadata is empty) - it can't be simply left out.

Add protocol_magics file

- Just to have a nicer way of representing protocol magics

Update transaction signing

- Previous transactions no longer need to be requested
- Output building is simplified, since fee doesn't need to be calculated
- Remove transaction class since it is no longer needed (only functions
  remained)
- Reorder functions so it reads top to bottom

Add protocol magic to byron address on testnet

- This has always been a part of the spec, but it hasn't been
  implemented before, because it wasn't really needed.

Update trezorlib

Update tests

- Transaction messages are no longer required
- Expected values are different since tx format changed
- Common values in test cases have been extracted

Remove unused file

- Progress was used when receiving previous transactions

Add CRC check to output address validation
2020-07-27 13:04:49 +02:00
matejcik
fdcb64ac24 all: rename protobuf unsafe_prompts to safety_checks 2020-07-24 16:37:58 +02:00
matejcik
1109250dcf core: add option to allow unsafe prompts 2020-07-24 16:37:58 +02:00
matejcik
c964ff702d python: disallow setting auto-lock without PIN 2020-07-10 14:05:52 +02:00
Andrew Kozlik
a973c3bc6e python: Add get_ownership_id() and get_ownership_proof() to trezorlib. 2020-07-03 11:17:19 +02:00
Andrew Kozlik
533de50588 common/protob: Add GetOwnershipId message. 2020-07-03 11:17:19 +02:00
Andrew Kozlik
6c523d09e0 tests/sign_tx: Don't expect signatures to be returned for external inputs. 2020-07-03 11:17:19 +02:00
Andrew Kozlik
956ea9a94f common: Add ownership_proof field to TxInputType. 2020-07-03 11:17:19 +02:00
Andrew Kozlik
c723c78529 common/protob: Add GetOwnershipProof message. 2020-07-03 11:17:19 +02:00
Andrew Kozlik
cc655575c8 common: Add witness field to TxInputType. 2020-07-03 11:17:19 +02:00
Tomas Susanka
14a8da9c28 common: remove underscore from 'overwintered' field
Due to some Suite/Connect compatibility issues.
2020-07-01 13:56:32 +00:00
Tomas Susanka
ca3dd2bfb9 common: skip deprecated fields during generation; deprecate overwintered field in Zcash 2020-06-30 16:02:21 +02:00
matejcik
312d6ea822 python: fix padding in first chunk (fixes #1082) 2020-06-25 11:23:26 +02:00
Tomas Susanka
e534ae3ad7 legacy, core: rename Features.pin_cached to unlocked and unify 2020-06-19 21:26:36 +02:00
matejcik
6f53ca0ac6 core: rework wait_layout()
The original wait_layout was unreliable, because there are no guarantees
re order of arrival of the respective events. Still, TT's event handling
is basically deterministic, so as long as the host sent its messages
close enough to each other, the order worked out.

This is no longer the case with the introduction of loop.spawn: TT's
behavior is still deterministic, but now ButtonAck is processed *before*
the corresponding wait_layout, so the waiting side waits forever.

In the new process, the host must first register to receive layout
events, and then receives all of them (so the number of calls to
wait_layout must match the number of layout changes).

DebugLinkWatchLayout message must be version-gated, because of an
unfortunate collection of bugs in previous versions wrt unknown message
handling; and this interests us because upgrade-tests are using
wait_layout feature.
2020-06-04 16:18:46 +02:00
matejcik
5d823ff5ea core: use ButtonRequestType.PinEntry for PIN entry 2020-06-04 16:18:46 +02:00
matejcik
bbfce4e303 common: introduce ButtonRequestType.PinEntry 2020-06-04 16:18:46 +02:00
matejcik
fc6c99c6f9 tests: disable PIN detection, all PIN uses must be explicit 2020-06-04 16:18:46 +02:00
matejcik
b68cc5abda python/debuglink: implement use_pin_sequence support for trezor-core 2020-06-04 16:18:46 +02:00
matejcik
62ced317cd python/debuglink: proto -> messages 2020-06-04 16:18:46 +02:00
matejcik
ee32806bb2 python/debuglink: add debuglink message logging 2020-06-04 16:18:46 +02:00
matejcik
6069173252 python/debuglink: clean out debuglink methods 2020-06-04 16:18:46 +02:00
matejcik
0600d87c8c common: rename ClearSession to LockDevice, introduce EndSession 2020-06-04 16:18:46 +02:00
matejcik
83d3acb0a6 python: fix dead code in protobuf pretty-printing 2020-05-29 12:27:42 +02:00
Tomas Susanka
9dfc08ca61 core/bitcoin: drop decred_script_version 2020-05-21 19:14:39 +02:00
matejcik
29db769185 tests: update test vectors to use correct paths 2020-05-15 14:08:29 +02:00
matejcik
aeaa402b75 python: fix PASSPHRASE_TEST_PATH 2020-05-15 14:08:29 +02:00
Tomas Susanka
15e33b42c0 python: style 2020-05-05 07:05:53 +00:00
Serge
e900173b9c python/trezorctl: del an outdated mesage 2020-05-05 06:46:49 +02:00
Serge
4e25c396d2 python/trezorctl: display embedded v2 image fingerprint (fixes #977) 2020-05-05 06:46:49 +02:00
matejcik
59f43514be python: convert chunks to bytes when reading from hid 2020-05-04 10:16:15 +02:00
matejcik
7ebbccdbba python/debuglink: support conditional expected_responses 2020-04-25 18:27:29 +02:00
matejcik
5885978c83 Merge branch 'release/2020-04' 2020-04-15 15:00:23 +02:00
Dusan Klinec
25b6e9058f xmr: proto - add fields for protocol optimization 2020-04-13 22:19:56 +02:00
matejcik
1b50877545 tests: streamline TrezorFailure exception usage 2020-03-26 11:30:06 +01:00
matejcik
a40f1e00ed python: add period at end of sentence 2020-03-26 11:30:06 +01:00
matejcik
2402853b9c python: simplify outdated firmware warning (full message is still used in the exception) 2020-03-26 11:30:06 +01:00
matejcik
f52c087cb6 python/trezorctl: implement common client and exception handling (fixes #226) 2020-03-26 11:30:06 +01:00
matejcik
b440ca1ec5 python: drop deprecated name CallException 2020-03-26 11:30:06 +01:00
matejcik
7a85d93d94 python/debuglink: properly use session_counter for debuglink transport 2020-03-26 11:30:06 +01:00
matejcik
af05e0927f python/trezorctl: nicer output for list-devices 2020-03-26 11:30:06 +01:00
matejcik
b801f1a9cf python/trezorctl: help user find the right firmware version (fixes #823) 2020-03-26 11:30:06 +01:00
matejcik
2112da7ab5 python/trezorctl: send raw bytes to device (fixes #116) 2020-03-26 11:30:06 +01:00
matejcik
9a330f3475 python: unify protobuf-encoding code paths
Protobuf encoding now happens in TrezorClient, and transports get encoded blobs
to (chunkify and) send.  This is a better design because transports don't need
to know about protobuf.

It also lays groundwork for sending raw bytes feature (#116)

This commit also removes all vestiges of ProtocolV2 which was never used and
will probably need to be redesigned from the ground up anyway. The code is
still ready for protocol flexibility.
2020-03-26 11:30:06 +01:00
matejcik
9d29952a15 python: move out deprecated ckd_public 2020-03-26 11:30:06 +01:00
matejcik
5dfb01c25d python: drop old Electrum compatibility code 2020-03-26 11:30:06 +01:00
matejcik
6ccf22225c python: drop coins.json (fixes #752) 2020-03-26 11:30:06 +01:00
matejcik
325dae890e python: completely drop trezorlib.coins and trezorlib.tx_api 2020-03-26 11:30:06 +01:00
matejcik
5a526888cf python: move json_to_tx to btc.from_json, add test cases 2020-03-26 11:30:06 +01:00
matejcik
d2dd78f979 python: drop TxApi and coin specializations in json_to_tx 2020-03-26 11:30:06 +01:00
matejcik
208bac8653 common: drop capricoin blockbook servers 2020-03-26 11:30:06 +01:00
matejcik
ffdb299c61 all: drop Capricoin support [NO BACKPORT] 2020-03-20 14:19:30 +00:00
matejcik
e2035b4972 all: drop Horizen and BIP-115 support [NO BACKPORT] 2020-03-20 14:19:07 +00:00
matejcik
27803ee8c1 all: drop overwintered field from transaction 2020-03-20 14:18:27 +00:00
Pavol Rusnak
817b922850 all: add extra_data and timestamp fields to coin specification 2020-03-20 14:18:27 +00:00
Andrew Kozlik
e51ed5bf05 trezorlib: Regenerate coins.json. 2020-03-17 11:53:48 +01:00
Andrew Kozlik
ac78d1e2f3 trezorctl: Validate PIN digits and length. 2020-03-17 11:53:48 +01:00
Andrew Kozlik
2f905a1157 core/webauthn: Add algorithm and curve to WebAuthnListResidentCredentials response. 2020-03-12 15:45:26 +01:00
Michail Brynard
c2635a4773 python: fix encoding errors in Stellar 2020-03-02 16:01:15 +01:00
matejcik
b916072389 common: restore PassphraseAck.state 2020-02-24 15:15:09 +01:00
matejcik
5523c7bbef tests: add SD card format feature tests 2020-02-20 12:51:48 +01:00
matejcik
ddee77ecb6 core: add SD clearing via debuglink 2020-02-20 12:51:48 +01:00
Tomas Susanka
ff1bb67abc common: return the PasshraseType button request 2020-02-20 08:04:35 +00:00
matejcik
e61b7d28e9 all: do not send state in PassphraseAck (not needed for compatibility) 2020-02-13 15:44:50 +01:00
matejcik
3959600760 python/protobuf: do not warn for unknown enum values (fixes #832) 2020-02-13 15:37:14 +01:00
matejcik
cdb7a7eb68
Merge pull request #840 from trezor/matejcik/sys-exit
wipe code activation tests
2020-02-13 15:11:33 +01:00
matejcik
0ec628ccd4 legacy: fix CALLBACK checker 2020-02-12 17:18:51 +01:00
matejcik
1cc1382153 python/trezorctl: improve get-session 2020-02-12 17:18:50 +01:00
matejcik
81a03edf61 python/debuglink: add docstrings, rename functions for clearer usage 2020-02-12 15:38:18 +01:00
matejcik
271da3fa39 python: add detailed logging to emulator runner 2020-02-12 13:31:58 +01:00
matejcik
7a253a6c0b python/debuglink: properly clean up at end of "with client" 2020-02-12 13:31:31 +01:00
matejcik
94b85efba1 python/debuglink: make pin sequences configurable 2020-02-12 10:36:42 +01:00
Tomas Susanka
2c0504ad1c
Merge pull request #803 from trezor/passphrase
Passphrase Redesign
2020-02-11 16:01:59 +01:00
matejcik
1ebaaa7e77 python/emulator: increase tolerances
This should help in CI where things can sometimes take a long time.
2020-02-11 13:20:35 +01:00
matejcik
a375460afc python/emulator: fix timeout parameter in emulator.wait() 2020-02-11 13:20:35 +01:00
matejcik
05a1d6f771 core/debug: add "show arbitrary screen" capability, for easier prototyping 2020-02-11 11:53:34 +01:00
matejcik
c01d04f26e common/protob: drop a default field declaration
which triggers nanopb bug https://github.com/nanopb/nanopb/issues/487
2020-02-11 11:53:34 +01:00
matejcik
4b0d8d5f6d python/trezorctl: tweak error message in get-session 2020-02-10 16:22:48 +01:00
matejcik
7f63cf28b0 python: only set session_id from Features on firmwares that send it 2020-02-10 16:15:45 +01:00
matejcik
d4343ad8b7 python/trezorctl: add get-session 2020-02-10 16:14:21 +01:00
matejcik
8d93503c9c python: do not send deprecated state in PassphraseAck on T1 2020-02-10 15:38:26 +01:00
matejcik
f7608f55ff python: implement backwards compatibility for pre-2.3.0 firmwares 2020-02-10 13:01:47 +01:00
matejcik
4c9689d7a7 common: return deprecated fields to protobuf, to allow cross-version compatible code 2020-02-10 12:35:28 +01:00
Tomas Susanka
56dc952495 common: fix PassphraseAck.on_device id 2020-02-07 14:19:01 +00:00
Pavol Rusnak
73ed2f3450
legacy: small nitpicks related to the new passphrase handling 2020-02-07 11:41:03 +00:00
matejcik
ee07b32f52
python: fix debuglink usage of get_passphrase 2020-02-07 11:41:02 +00:00
matejcik
7513a65f9a
python: move passphrase-on-host logic to UI class 2020-02-07 11:41:01 +00:00
matejcik
23ad62e719
python: bump versions 2020-02-07 11:41:01 +00:00
Tomas Susanka
dc53df772f
python: passphrase on host is the default for T1 2020-02-07 11:41:01 +00:00
Tomas Susanka
d5763d9cab
all: implement code review comments 2020-02-07 11:41:01 +00:00
Tomas Susanka
f3553f63f1
common: remove PassphraseRequest.on_device completely 2020-02-07 11:41:00 +00:00
Tomas Susanka
c65b57affb
core, legacy: remove passphrase_cached 2020-02-07 11:41:00 +00:00
Tomas Susanka
1ae5813cab
legacy: bump version to 1.9.0 2020-02-07 11:41:00 +00:00
Tomas Susanka
a3f3d4fcdb
remove ping.passphrase/pin 2020-02-07 11:41:00 +00:00
Tomas Susanka
466dc4732d
core/passphrase: add button requests 2020-02-07 11:40:59 +00:00
Tomas Susanka
cd09f9ce94
all: modify passphrase source to always on device 2020-02-07 11:40:59 +00:00
Tomas Susanka
eafd57c301
common, core: add passphrase entry capability 2020-02-07 11:40:58 +00:00
Tomas Susanka
90d5cdfd5b
all: rework passphrase
The `on_device` field is being moved to PassphraseAck, State messages
are removed. Features newly contain `session_id`.
2020-02-07 11:40:58 +00:00
matejcik
d28e33ef02 core/headertool: support generating vendor headers with explicit size 2020-02-05 12:23:34 +01:00
matejcik
0a052806c7 python: kill emulator if it doesn't become ready in time
this fixes a problem in upgrade-test, when one emulator fails to come up
and then blocks all other tests.
the CI task will still be failed, but at least we'll know at a glance
that it is a timeout problem
2020-01-28 16:15:09 +01:00
matejcik
37ea0773ea python: do not preload prev_txes, drop dependency on coins.json 2020-01-24 17:51:43 +01:00
matejcik
8dce2cf98c core: introduce emulator runner (fixes #466) 2020-01-23 18:43:20 +01:00
matejcik
05131c328d python: trezorctl should not print empty line if result is None 2020-01-23 15:50:28 +01:00
matejcik
c151fdeefd python: add wait-for-emulator command 2020-01-23 15:50:28 +01:00
Pavol Rusnak
a95405b693
python: don't use py3.6+ format strings yet 2020-01-21 16:29:13 +00:00
matejcik
4d7e3c8a23
python: use TREZOR_PATH in get_default_client 2020-01-20 17:33:00 +01:00
matejcik
1b04d1caa7
core/tools: drop tools obsoleted by headertool 2020-01-20 17:32:59 +01:00
matejcik
9341f0d584
core: improve building of vendor headers 2020-01-20 17:32:59 +01:00
matejcik
cc29b22f91
core/tools: introduce headertool 2020-01-20 17:32:58 +01:00
matejcik
b26a430b85
python/firmware: shorten names for vendor header fields 2020-01-20 17:32:58 +01:00
matejcik
3fc3231254
python/firmware: simplify calculate_code_hashes 2020-01-20 17:32:58 +01:00
matejcik
40477b836e
python/firmware: make header_digest function more intelligent 2020-01-20 17:32:58 +01:00
matejcik
18d4bd30a3
python/firmware: add production and development boardloader keys 2020-01-20 17:32:58 +01:00
matejcik
15bd35824b
python/cosi: improve API
cosi.verify was renamed to verify_combined, because it is pretty much
ed25519.verify, and the new name implies what it does in terms of the
CoSi scheme: verify a signature with already-combined public keys.

cosi.verify_m_of_n signature was simplified by not requiring the `n`
parameter, which is not important for verification. The updated function
was renamed to cosi.verify, because this is the standard CoSi
verification operation: given signature, digest, required number of
signatures, sigmask, and a list of public keys, verify that enough
signatures are indicated and that they sign the digest.
2020-01-20 17:32:58 +01:00
matejcik
941087179f
python/firmware: clarify firmware image types 2020-01-20 17:32:58 +01:00
matejcik
ab82382b1e
python/firmware: make header digest function public 2020-01-20 17:32:57 +01:00
matejcik
6cd976fdee
python/firmware: support bootloader headers 2020-01-20 17:32:57 +01:00
matejcik
7e6b39cd8e
python/firmware: mark reserved fields as private 2020-01-20 17:32:57 +01:00
matejcik
fb2c57d3c9
python/firmware: improve handling of bootloader keys 2020-01-20 17:32:57 +01:00
Dušan Klinec
af6a607b39 common/xmr: message changes optimizing runtime and memory (#786) 2020-01-12 22:24:18 +01:00
Tomas Susanka
51ef963738 tests: introduce UI tests for core 2020-01-03 14:28:27 +00:00
matejcik
b7c0a93d18 python: bump version in setup.py 2019-12-30 13:03:36 +01:00
robert
afc897d693 trezorctl: add u2f-counter to recover 2019-12-29 12:25:54 +01:00
matejcik
700c5e4f32 python: fix expand-words functionality in recovery (fixes #778) 2019-12-27 11:34:10 +01:00
Pavol Rusnak
d6a3725955
common: remove coins with no trezor compatible wallets 2019-12-15 18:19:36 +00:00
Pavol Rusnak
e5bdf0d51b
Merge pull request #742 from trezor/language
common: change language field to IETF BCP 47 language tag
2019-12-12 18:07:54 +01:00
Szymon Lesisz
21b6ab3e98 common: update zcash consensus branch_id (Blossom fork) (#745) 2019-12-11 16:27:28 +01:00
Pavol Rusnak
7646b97dca
common: divisibility -> decimals 2019-12-09 17:43:47 +01:00
matejcik
a46fd6f508 core: auto-generate FIDO icons 2019-12-09 16:31:46 +01:00
Pavol Rusnak
bb8d809a6d
common: change language field to IETF BCP 47 language tag 2019-12-08 11:27:10 +01:00
Pavol Rusnak
3d50bb5ed8
common: add Peercoin, regenerate coins 2019-12-05 09:43:32 +00:00
Andrew Kozlik
1bc8226a50 common, core: Add wipe_code_protection to the Features message. 2019-11-25 12:32:20 +01:00
Andrew Kozlik
83fab3c220 trezorctl: Add set wipe-code command. 2019-11-25 12:32:20 +01:00
Andrew Kozlik
4381511930 common: Add ChangeWipeCode message. 2019-11-25 12:32:20 +01:00
matejcik
34913a328a all: disallow most RecoveryDevice fields in dry-run (fixes #666) 2019-11-20 12:27:57 +01:00
matejcik
b6d46e93e1 python: auto-generate OPTIONS.rst 2019-11-18 11:50:07 +01:00
matejcik
65bb8cdf4e python/trezorctl: only accept json for sign-tx, document the format 2019-11-18 11:50:07 +01:00
matejcik
8f2b22a8f5 python: add more protobuf tests 2019-11-18 11:50:07 +01:00
matejcik
bd9bf4e2bc python: rename webauthn and u2f to fido 2019-11-18 11:50:07 +01:00
matejcik
8e4de5e929 python/trezorctl: split trezorctl into separate modules
Instead of all commands (like `load-device`, `change-pin`,
`tezos-sign-tx`, `ethereum-verify-message`...) living in trezorctl.py,
each functional group is now defined in a separate file.

With that, better structuring of the trezorctl command becomes
available:
- instead of `trezorctl set-label`, use `trezorctl set label`
- instead of `trezorctl change-pin`, use `trezorctl set pin`
- instead of `trezorctl enable-passphrase`, use `trezorctl set
passphrase enabled`

For common commands, such as `sign-tx`, it is possible to use the
currency name or shortcut:

- `trezorctl btc sign-tx`
- `trezorctl ethereum sign-tx`
- `trezorctl xtz sign-tx`
- `trezorctl doge sign-tx`
etc.

Some aliases have been retained for better compatibility. For others,
refer to `trezorctl --help` and `trezorctl <command> --help`.
2019-11-18 11:50:07 +01:00
matejcik
862e582ec1 tests: make {needs,no}_backup flags available in test suite 2019-11-13 16:48:35 +01:00
matejcik
fd8aed6105 all: drop XPRV feature of LoadDevice 2019-11-13 16:48:35 +01:00
Pavol Rusnak
16af7f1353 common: add {needs,no}_backup flags to LoadDevice, make it debug only 2019-11-13 16:48:35 +01:00
Tomas Susanka
90edad55fc python and tests: typos 2019-11-13 13:28:07 +00:00
Tomas Susanka
ef9900ee52 python: get u2f counter 2019-11-13 10:55:52 +00:00
Tomas Susanka
2a20287882 common/protobuf: add message for retrieving an increased u2f counter 2019-11-13 10:55:52 +00:00
EDmitry
e286bd46f9 Field "sender" is renamed to "from" in eosio ABI for un/delegatebw 2019-11-11 11:56:25 +01:00
matejcik
3349f737df python/debuglink: prevent race with recovery homescreen eating debuglink decisions 2019-11-07 11:27:45 +01:00
Pavol Rusnak
0040b916d2
common/defs: remove inactive coins 2019-11-03 10:44:22 +00:00
Andrew Kozlik
6cc44b133c tests/webauthn: Account for the increased limit on the number of resident credentials. 2019-11-01 16:14:16 +01:00
apollo
18c926a34b common/defs: fix zcore signing (#669) 2019-11-01 00:18:03 +01:00
Pavol Rusnak
5fe2f7e59c common/protob: remove ButtonRequest.data field 2019-10-24 11:11:43 +02:00
Adrian Nagy
384275ac73
core/tezos: support the new protocol update (005-BABYLON) 2019-10-23 17:53:10 +02:00
matejcik
32074c7bff python/udp: make socket timeout configurable 2019-10-22 17:06:49 +02:00
matejcik
c970ad437d tests: improve layout_lines API 2019-10-22 17:06:49 +02:00
matejcik
598e828844 python: ensure client session counter is never negative 2019-10-22 17:06:49 +02:00
matejcik
a8fc569016 debug: add support for general layout waiting 2019-10-22 17:06:49 +02:00
matejcik
370b2c4c49 tests: add click-based recovery test 2019-10-22 17:06:49 +02:00
matejcik
06e10f948d protobuf: send x/y coordinates, allow waiting for layout change 2019-10-22 16:55:30 +02:00
Tomas Susanka
0511cc8b8c core: add final mypy fixes! 2019-10-22 14:36:25 +00:00
Tomas Susanka
8f34b4c5de
Merge pull request #628 from trezor/tsusanka/sdprotect-fix
Skip sd protect test on device
2019-10-22 15:40:03 +02:00
Pavol Rusnak
ddd9bee059
common/defs: regenerate coins 2019-10-22 09:03:32 +00:00
matejcik
ccd1940ea8 tests: more assertions on sd_protect 2019-10-21 12:11:51 +02:00
Pavol Rusnak
178d58c763
common/defs: remove BTDX as it has no Trezor compatible wallet 2019-10-21 09:48:19 +00:00
Pavol Rusnak
4e5b60ec2b
common/defs: remove BITC per maintainer request 2019-10-20 17:11:43 +00:00
Pavol Rusnak
3ebc79f9b2
common/defs: remove MEC per maintainer request 2019-10-19 17:14:32 +00:00
Pavol Rusnak
9b7a2095b3
common/defs: update coins info 2019-10-18 10:14:33 +00:00
Pavol Rusnak
89794b89ae
python: regenerate coins.json 2019-10-17 15:25:48 +00:00
Tomas Susanka
f0cd99c545 common/protob: add sd card/protection to Features 2019-10-17 15:58:12 +02:00