1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-28 09:08:07 +00:00
Commit Graph

560 Commits

Author SHA1 Message Date
FujiCoin
33c243be8d
feat(common): enable taproot for Fujicoin, fix xpub versions
* fix fujicoin params

* add test_fujicoin/test_send_p2tr

* fix test

* fix serialized_tx.hex()

* Recreated based on a new transaction

* make gen, some fixes

Co-authored-by: matejcik <ja@matejcik.cz>
2022-01-05 12:43:34 +01:00
matejcik
33b23ea6a0 fix(tests): show addresses in test_show_segwit 2021-12-21 19:39:57 +01:00
matejcik
f0f950d484 fix(tests): add correct test case for GRS taproot 2021-12-21 19:39:57 +01:00
gruve-p
3ab036a1d1
feat(common): enable Taproot on Groestlcoin
Add additional device tests for GRS

Add P2TR GetAddress for GRS mainnet and testnet

Add SignTX spending taproot UTXO (The resulting transaction from the SignTx device test was successfully mined on Testnet.)
2021-12-20 22:49:36 +01:00
matejcik
d2ac4e7a9c feat(tests): add tests for blind EIP-712 signing
Co-authored-by: Martin Milata <martin@martinmilata.cz>
Co-authored-by: grdddj <jiri.musil06@seznam.cz>
2021-12-19 20:36:30 +01:00
Martin Milata
bfe5b6a272 test(core): make sure path check fails immediately 2021-12-16 14:15:39 +01:00
Pavol Rusnak
0c57614436
style(tests): make linters happy 2021-12-08 17:06:37 +01:00
Martin Milata
ff5f965c44 Merge branch 'release/21.12'
Conflicts:
	tests/device_tests/test_msg_signtx_invalid_path.py
	tests/ui_tests/fixtures.json
2021-12-08 14:53:56 +01:00
Andrew Kozlik
7b7aa2d971 feat(tests): Add device tests for Taproot ownership proofs. 2021-12-06 18:23:48 +01:00
grdddj
0b0a77703c chore(tests): more test reorganizations 2021-12-06 11:15:12 +01:00
grdddj
18a2642d95 chore(tests): renaming all "proto" usages to "messages" in device tests 2021-12-06 11:15:12 +01:00
grdddj
a92d29ddbf chore(tests): removing classes from device test files 2021-12-06 11:15:12 +01:00
grdddj
782f868717 chore(tests): organize device tests into folders 2021-12-06 11:15:12 +01:00
grdddj
6c8e6dcc08 feat(tests): SuperShamir device tests for clicking Info button 2021-12-06 11:15:12 +01:00
Andrew Kozlik
de6fab3c1e feat(tests): Test SegWit cross-coin attack. 2021-11-23 14:57:25 +01:00
Andrew Kozlik
e30ccabed3 feat(legacy): Show path warning for SignMessage. 2021-11-18 22:39:32 +01:00
Andrew Kozlik
10717ddb99 feat(tests): Add invalid signature test for RBF in P2TR. 2021-11-18 22:39:32 +01:00
Andrew Kozlik
fa4d74ad30 feat(legacy): Support Taproot signature verification. 2021-11-18 22:39:32 +01:00
Andrew Kozlik
c9d1ff93f5 feat(legacy): Implement Taproot signing. 2021-11-18 22:39:32 +01:00
Andrew Kozlik
6fbbd14f8c refactor(legacy): Refactor compile_input_script_sig(). 2021-11-18 22:39:32 +01:00
Andrew Kozlik
9a051df127 chore(legacy): Support script_pubkey parameter for Bitcoin inputs. 2021-11-18 22:39:32 +01:00
Andrew Kozlik
6c9c727359 feat(legacy): Implement GetAddress for taproot. 2021-11-18 22:39:32 +01:00
Andrew Kozlik
03b1b3bc6b feat(core): Show path warning for SignMessage. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
e559c5688b feat(tests): Test fake Taproot transaction attack. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
93c02e2616 feat(tests): Add device test for external presigned Taproot input. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
5837750aaa feat(tests): Add fee bump device test for Taproot. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
f0d6e961a9 feat(tests): Add tests for spending Taproot UTXOs. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
ed9d3e3e9b fix(tests): Add script_pubkey field to external inputs. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
390bcf4612 feat(tests): Add BIP86 test vectors for get_address(). 2021-11-13 13:33:46 +01:00
Pavol Rusnak
7091417c5d feat(tests): add taproot cases to test_msg_getaddress_segwit_native 2021-11-13 13:33:46 +01:00
Andrew Kozlik
bec0634bae feat(core): Improve message signing UI.
- Add "Confirm message" subheader to SignMessage and VerifyMessage.
- Unify font for SignMessage and VerifyMessage to fixed-width font.
- Fix device tests.
2021-11-10 17:35:57 +01:00
Andrew Kozlik
39a0901e99 fix(tests): Fix SignMessage tests after adding address dialog. 2021-11-10 17:35:57 +01:00
Andrew Kozlik
9a7990d087 feat(tests): Add no_script_type device tests for SignMessage. 2021-11-10 17:35:57 +01:00
matejcik
2c20016cfa tests: add tests for different Cardano derivations 2021-11-10 13:57:57 +01:00
matejcik
f0ae16069c fix(core): do not send passphrase_protection field when device is locked (fixes #1807) 2021-11-10 13:57:57 +01:00
matejcik
0e4e56711c fix(tests): enable derive_cardano for Cardano test cases 2021-11-10 13:57:57 +01:00
Pavol Rusnak
0068c12f77
fix(python): use unified descriptor format <a;b> (#1885) 2021-11-04 10:36:53 +01:00
grdddj
73238135d6 feat(core/ethereum): EIP-712
Based on original contribution by Max Kupriianov <xlab@hey.com>

Implemented EIP-712 typed data signatures in Ethereum app.

Add eth_abi into pyproject deps

device test for EIP 712

fixed hex decoding for address

fixup! fixed hex decoding for address

code quality, more pythonic code, removing unused imports

running black and isort on changed files

trezorctl file input for EIP 712 data signing

fixup! code quality, more pythonic code, removing unused imports

fixup! fixup! code quality, more pythonic code, removing unused imports

necessary changes after rebase to master

unit tests for sign_typed_data.py

new protobuf messages, working for nonarray types

simplified and verified solution for our simple data

support for simple arrays, without their confirmation

reverting protobuf value messages to bytes, appropriate changes

showing arrays in Trezor, code quality improvements

data validation on Trezor, minor improvements

using custom types for storing type data instead of dicts, addressing feedback from review

moving helper functions to its own file, tests for decode_data

additional overall tests

support for arrays of structs

adding support for metamask_v4_compat variable

using HashWriter object to collect the final hash continously

minor improvements in code quality

validate_field_type function

streaming values from client without saving them, missing UI

prototype of streamed UI using confirm_properties

accounting for bytes in data, more data types in integration tests

rebase on master, using f-strings

minor fixes and improvements from code review

StructHasher class for the whole hashing process

mypy and style changes

asking users whether to show structs and arrays

protobuf descriptions to fix make defs_check

unifying comments, mypy fix

unit tests for StructHasher class

UI fixtures, skipping device tests for T1

addressing majority of code review comments about code quality and structure

changing file structure - layouts, helpers, sign_typed_data

decode_data renaming and docstring, renaming unit test file

using tuples instead of lists in elifs

layout improvements

excluding core/src/apps/common/confirm.py file from the PR

True/False returning layout with Show more button

code review layout improvements

forgotten br_type argument to should_show_more
2021-11-02 14:27:01 +01:00
matejcik
f7c340f333 feat(core/bitcoin): show lock_time as human readable datetime 2021-10-29 11:00:30 +02:00
matejcik
e972839ac7 style(all): fix pylint complaints
[no changelog]
2021-10-27 13:13:15 +02:00
Martin Milata
fa3c6140a6 feat(legacy/ethereum): support access lists in EIP-1559 transactions 2021-10-26 17:20:20 +02:00
Martin Milata
076c5b9cbe feat(legacy/ethereum): support for EIP-1559 transactions 2021-10-26 17:20:20 +02:00
Martin Milata
3882b89be9 fix(core/ethereum): ask before showing paginated data field 2021-10-19 17:13:28 +02:00
Andrew Kozlik
dfd98c5164 feat(tests): Test send to taproot. 2021-10-18 13:36:05 +02:00
Pavol Rusnak
27dcef056f feat(tests): add tests for Taproot descriptors support 2021-10-18 13:36:05 +02:00
amadejpapez
85ba7c12ba style(all): use f-strings for formatting
[no changelog]
2021-10-13 11:53:17 +02:00
gabrielkerekes
b957dfbddb chore(cardano): improve get_native_script_hash tests and update ui fixtures 2021-10-11 15:16:24 +02:00
gabrielkerekes
1f33ab420d feat(cardano): update transaction signing for multisig 2021-10-11 15:16:24 +02:00
gabrielkerekes
21281d7cf4 feat(cardano): add support for script addresses derivation 2021-10-11 15:16:24 +02:00
gabrielkerekes
dd9652cd07 feat(cardano): add get-native-script-hash call 2021-10-11 15:16:24 +02:00
matejcik
f484c42d41 refactor(tests): use common Stellar fixtures in tests
All test cases are generated and verified in Stellar Laboratory.
Source XDR is also tested to match the vectors, and it is easy to verify
in Laboratory directly.
2021-09-24 10:30:19 +02:00
matejcik
98f0496b2c feat(core/stellar): add type checking to Stellar app 2021-09-24 10:30:19 +02:00
Pavol Rusnak
169c472172 refactor(tests): modernize test_msg_getaddress_segwit_native 2021-09-23 16:17:58 +02:00
matejcik
9dd97c77e3 fix(tests): update prevhash test
exclude the None value, because prev_hash is now required on protobuf
level

unify the parametrization across tests
2021-09-21 12:43:31 +02:00
grdddj
1a291660e5 chore(tests): improving consistency of ethereum fixtures 2021-09-20 13:04:56 +02:00
grdddj
23ce8a46f3 feat(tests): PIN and protection_levels tests for TT 2021-09-17 11:13:25 +02:00
grdddj
6b3c9d5a6b chore(tests): using setup_client for setting the passphrase in device tests where applicable 2021-09-17 11:13:25 +02:00
matejcik
ae4dd42d18 refactor(core/ethereum): reorganize sanity checks, disallow chain_id 0 2021-09-10 15:09:03 +02:00
matejcik
30b08d949b feat(common): add default values to EthereumSignTx fields
so that we can avoid Optional types for fields
2021-09-10 15:09:03 +02:00
matejcik
639406b01f feat(all): make chain_id mandatory 2021-09-10 15:09:03 +02:00
grdddj
6f1005b155 chore(tests): vectorizing and creating JSON fixtures for ethereum device tests 2021-09-02 10:28:26 +02:00
matejcik
7aed8d535d feat(all): re-enable Firo (fixes #1767) 2021-08-23 11:43:57 +02:00
gabrielkerekes
500d29f43b chore(cardano): format test fixture files 2021-08-20 11:50:13 +02:00
gabrielkerekes
28f0f60295 feat(cardano): update tests for streamed tx signing 2021-08-20 11:50:13 +02:00
matejcik
d66cca4069 chore(tests): remove Lisk 2021-08-19 10:25:41 +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
Martin Milata
b5710b820a docs(core): replace Purpose48 with BIP-48
https://github.com/bitcoin/bips/blob/master/bip-0048.mediawiki
2021-08-06 12:50:42 +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
45d377f5b8 chore(tests): drop unused debug pieces 2021-08-04 10:58:59 +02:00
matejcik
2b3c75c4de fix(core): properly respond to USB events while on a paginated screen 2021-07-20 12:59:26 +02:00
Andrew Kozlik
24bb401638 fix(legacy,core): Fix operation source account encoding in Stellar. 2021-07-13 17:24:16 +02:00
matejcik
46e0530764 fix(tests): auto-swipe by using only ButtonRequest.pages
(cherry picked from commit f8bb90366a)
2021-07-12 00:39:58 +02:00
Andrew Kozlik
e3faece811 fix(tests): Fix device tests after having disabled testnet for BIP-45 paths. 2021-06-30 18:25:58 +02:00
Andrew Kozlik
9b0e980c44 fix(legacy): Don't allow unknown paths in GetAddress. 2021-06-30 18:25:58 +02:00
Andrew Kozlik
a6390e4b82 fix(legacy): Allow known non-standard paths in GetAddress and SignTx. 2021-06-30 18:25:58 +02:00
Martin Milata
178b575465 refactor(core): convert apps.nem to layouts 2021-06-23 11:51:18 +02:00
Martin Milata
dd3b689ded refactor(core): convert apps.eos to layouts 2021-06-23 11:51:18 +02:00
Martin Milata
3ffbae5d17 refactor(core): convert apps.binance to layouts 2021-06-23 11:51:18 +02:00
Martin Milata
ddac852acf refactor(core): convert apps.cardano to layouts 2021-06-23 11:51:18 +02:00
Martin Milata
d33c61bbe7 test(core): enable ui tests for cardano get_address 2021-06-23 11:51:18 +02:00
Martin Milata
12478b1716 refactor(core): convert apps.stellar to layouts 2021-06-23 11:51:18 +02:00
Martin Milata
16094df0c5 refactor(core): convert most of apps.monero to layouts
Progress popups are not ported yet as they're unlike anything else.

Introduces paginate_paragraphs.
2021-06-23 11:51:18 +02:00
matejcik
7cdde940af chore(tests): adapt device tests to paging information ButtonRequests 2021-06-22 11:25:12 +02:00
Martin Milata
fddac0434b test: add device tests for non-standard paths 2021-06-17 13:53:35 +02:00
Andrew Kozlik
e15406f712 test: Add device test for signing an empty message in Decred which uses the BLAKE hash function. 2021-06-11 20:22:42 +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
729414e606 fix(core): exclude get/set U2F counter from BITCOIN_ONLY 2021-06-08 09:55:19 +02:00
Jan Pochyla
e5e3ad21b2 fix(tests): Adjust the expected error message 2021-06-08 09:55:19 +02:00
Andrew Kozlik
7f2f32ff8a test(device): Test safety checks on T1. 2021-05-24 17:47:43 +02:00
matejcik
96fd347ca8 fix(core): keep value of experimental_features cached across workflow restarts 2021-05-06 13:14:21 +02:00
matejcik
e5a481ded5 chore(tests): fix deprecation warnings 2021-05-06 13:14:21 +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
Martin Milata
6668921a4f refactor(core): convert apps.common.request_pin to layouts 2021-03-30 22:34:01 +02:00
Martin Milata
ffe6d65f72 refactor(core): convert parts of apps.management to layouts 2021-03-30 22:34:01 +02:00
Rafael Korbas
a9b8b0e119 feat(core/cardano): chunked serialization of signed transaction 2021-03-26 11:15:19 +01:00
Andrew Kozlik
602761694f test: Use long PIN values in device tests. 2021-03-25 14:24:41 +01:00
Andrew Kozlik
7436fd06b9 test: Add device test for replacement transaction with OP_RETURN output. 2021-03-24 22:06:41 +01:00
Andrew Kozlik
28918f46ec test: Add device test for decreasing output amount in RBF. 2021-03-17 15:15:50 +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
7ce4e13bcf feat(core): add public_key to ECDHSessionKey 2021-03-08 15:59:00 +01:00
Martin Milata
854a256b5a test: wait longer for autolock
To reduce test failure probability.
2021-02-23 14:31:04 +01:00
Andrew Kozlik
8828fa76d3 test: Ensure that GetAddress and GetOwnershipId fail for multisig if user's public key is not included.
(cherry picked from commit e9c227f623)
2021-02-11 10:26:44 +01:00
gabrielkerekes
d4dcd7bff9 fix(core/cardano): allow staking accounts beyond 100' 2021-02-11 09:55:23 +01:00
matejcik
d475248ef1 tests: use modified protobuf classes correctly 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
matejcik
a1cd0b0949 fix(tests): update shamir_mnemonic usage 2021-02-05 10:44:09 +01:00
matejcik
cdf55d2fac tests: get rid of skip_ui (fixes #1409) 2021-02-05 10:44:09 +01:00
Rafael Korbas
e4c406822c Add multiasset sending and min validity to Cardano transactions 2021-01-27 18:26:40 +01:00
Andrew Kozlik
79fad70b05 fix: Improve wording when showing multisig XPUBS. 2021-01-26 15:09:37 +01:00
Pavol Rusnak
be2ca4772c tests: add device tests for SignTx with amount_unit 2021-01-22 14:07:36 +01:00
Pavol Rusnak
2d4b91b52a tests: adapt test_msg_getaddress_show to test GetAddress.ignore_xpub_magic 2021-01-21 23:46:29 +01:00
matejcik
fc4e15fe77 feat(core): introduce and enforce limit on label length (fixes #1399) 2021-01-12 11:22:58 +01:00
matejcik
6fbf93cab8 chore(tests): update UI fixtures as needed 2021-01-11 16:47:59 +01:00
matejcik
fd502f122f feat(core): implement pagination for sign/verify 2021-01-11 16:47:59 +01:00
Pavol Rusnak
7b9f3c0462 feat(tests): add device tests for btc.get_descriptor 2021-01-08 14:17:09 +01:00
Pavol Rusnak
5e58835d18 feat(tests): test GetPublicKey.ignore_xpub_magic behaviour 2021-01-08 14:17:09 +01:00
Andrew Kozlik
3be0138aae test: Add device test for replacement transaction with invalid original signature. 2020-12-17 16:33:33 +01:00
Andrew Kozlik
9ab4efdbad test: Enable and tweak RBF device tests for T1. 2020-12-17 16:33:33 +01:00
Martin Milata
8fd12f4373 fix(tests): run test_softlock_instability on emulator only 2020-12-01 12:35:11 +01:00
Tomas Susanka
bd0b91a229 fix(tests): fix extra ETH unknown token dialog for T1 2020-11-20 18:55:35 +01:00
matejcik
f83752a714 fix(tests): remove dropped EOSClassic test case 2020-11-20 18:55:35 +01:00
matejcik
4628c774aa feat(core): re-allow unknown Ethereum networks, using Ethereum or Testnet paths (fixes #1335) 2020-11-20 18:55:35 +01:00
matejcik
7abe70e484 feat(core): improve ethereum tokens ui (fixes #800) 2020-11-20 18:55:35 +01:00
Rafael Korbas
b261f789f3 Add support for stakepool registration to Cardano 2020-11-20 15:58:50 +01:00
Andrew Kozlik
65a9636bb5 test: Add device test for RBF finalization. 2020-11-20 13:52:48 +01:00
matejcik
37d3bf56fa fix(core): make sure run-time settings are reset after wipe (fixes #1322) 2020-11-05 15:33:38 +01:00
matejcik
f10084117b feat(core/bitcoin): do not show path warning when GetAddress is called silently (fixes #1206) 2020-11-05 14:30:11 +01:00
matejcik
f3b6de399a fix(tests): fix illegal paths in device tests 2020-11-05 14:30:11 +01:00
Andrew Kozlik
70975008cd chore (core): In apps.bitcoin skip confirmation of fee in PayJoin if the user is not increasing their contribution. 2020-10-23 15:07:15 +02:00
Andrew Kozlik
2a19d70e98 test: Add device tests for replacement transaction flow. 2020-10-23 15:07:15 +02:00
Martin Milata
830592f2d9 feat(core): add experimental_features setting
The setting is off by default. When it is enabled protobuf messages
marked UNSTABLE are rejected after decoding.
2020-10-16 13:53:31 +02:00
Martin Milata
542f32d3b1 feat(core): 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
08d896f2f9 chore(tests): update to kwargs usage and new btc.sign_tx API 2020-09-23 16:00:10 +02:00
Martin Milata
cff4955f93 core: implement SafetyChecks.PromptTemporarily
Also reword safety checks confirmation dialogs.
2020-09-18 09:02:40 +02:00
Martin Milata
9d2ad96ad4 core: add SafetyCheckLevel to Features 2020-09-18 09:02:40 +02:00
Andrew Kozlik
b00c4209ed tests: Use correct commitment data in authorize_coinjoin tests. 2020-09-08 19:36:10 +02:00
Andrew Kozlik
4fc4152741 tests: Fix device tests for streamimg prev_tx after confirmation. 2020-09-04 14:36:39 +02:00
Tomas Susanka
ebc99435ab Revert "core: remove ownership messages from the public api for now"
This reverts commit 0d5f00668f.
2020-09-03 14:56:27 +02:00
Tomas Susanka
b99b8b3df3 Merge remote-tracking branch 'origin/release/2020-09' 2020-09-03 13:17:23 +02:00
Tomas Susanka
ba36cef369 tests: move fixtures to common directory, start with Cardano 2020-09-01 16:14:41 +02:00
Tomas Susanka
0d5f00668f
core: remove ownership messages from the public api for now 2020-09-01 15:56:57 +02:00
matejcik
e0583dd5cb all: use a specific error code for "invalid session" 2020-08-28 15:37:06 +02:00
matejcik
e0ec5aa1e7 tests: clear session before each testcase 2020-08-28 15:37:06 +02:00
matejcik
46eb223b2a tests: use new trezorlib locking/sessioning API where appropriate 2020-08-28 15:37:06 +02:00
matejcik
a08c34a624 tests: add tests for end_session 2020-08-28 15:37:06 +02:00
Andrew Kozlik
fb1f1acad6 tests: Add device test for nLockTime in Bitcoin. 2020-08-21 21:30:15 +02:00
Andrew Kozlik
ae71735e62 legacy/signing: Ask user to confirm custom nLockTime. 2020-08-21 21:30:15 +02:00
matejcik
af5e301a7c tests: update device tests with added ButtonRequests where appropriate 2020-08-21 21:30:15 +02:00
Martin Milata
1b982659c4
core: fix boot loop after uploading invalid homescreen (#1205) 2020-08-21 12:00:42 +02:00
Pavol Rusnak
68e119c2c6 tests: add tests for invalid paths 2020-08-21 11:49:03 +02:00
Martin Milata
927ee0812b core: add hard limit for transaction fees
The hard limit is set to 10*fee_warning_threshold. The limit is not
enforced when `safety_checks` is set to "Prompt".
2020-08-17 16:12:33 +02:00
Martin Milata
75fa9dee77 test_msg_signtx: proto -> messages 2020-08-17 16:12:33 +02:00
matejcik
5385617eda core: increase address length limit to accomodate CRW (fixes #1139) 2020-08-07 12:45:43 +02:00
matejcik
a94c0d074d tests: use improved API in authorize_coinjoin test 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
d776cc931b tests: fix test_msg_webauthn on-device
by not asking for a full-capacity list of credentials, which will
usually not fit in an unfragmented chunk of memory
2020-08-05 13:47:35 +02:00
gabrielkerekes
8d39ba8314 Add test case for multiple inputs and regenerate UI fixtures 2020-08-04 20:35:13 +02:00
Andrew Kozlik
ad3f39d829 tests: Add device test for multiple CoinJoin authorizations in different sessions. 2020-08-04 17:32:44 +02:00
Andrew Kozlik
77b931e217 tests: Add device test for CancelAuthorization message. 2020-08-04 17:32:44 +02:00
Andrew Kozlik
3cbfb98f38 tests: Add device test for a CoinJoin transaction which does not give the user's outputs a gain in anonymity. 2020-08-04 17:32:44 +02:00
Andrew Kozlik
07d9b780a6 core/bitcoin: Change CoinJoin round ID length to 32 bytes and remove rate limiting. 2020-08-04 17:32:44 +02:00
Andrew Kozlik
4fd229b500 tests: Add device tests for AuthorizeCoinJoin and CoinJoin SignTx. 2020-08-04 17:32:44 +02:00
gabrielkerekes
12132ea64b Fix rebase and regenerate ui tests 2020-07-30 17:17:03 +02:00
gabrielkerekes
7a1e773b49 Validate transaction metadata 2020-07-30 17:17:03 +02:00
gabrielkerekes
f2ee450410 Include metadata in transaction signing 2020-07-30 17:17:03 +02:00
gabrielkerekes
a729ef1c26 Update tests
Add certificates, withdrawals and metadata hash
2020-07-30 17:17:03 +02:00
Martin Milata
10387e1869 core: drop zcash v3 tx signing support 2020-07-30 15:14:18 +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
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
fd8cb0e061 core/keychain: differentiate error message for ed25519 derivation 2020-07-24 16:37:58 +02:00
matejcik
e3bb39128d tests: add test for unsafe prompts 2020-07-24 16:37:58 +02:00
Martin Milata
fd117a0c9f core: raise error on auto-lock value out of range 2020-07-22 21:38:42 +02:00
Andrew Kozlik
c7bc945d95 tests: Test transaction with multiple change-outputs. 2020-07-09 15:51:23 +02:00
Pavol Rusnak
d720fa3f83
tests: fix flake errors 2020-07-03 17:33:59 +02:00
Andrew Kozlik
39c0ed2ff0 tests/sign_tx: Add device tests for transactions with external inputs in bgold, bcash and zcash. 2020-07-03 11:17:19 +02:00
Andrew Kozlik
866dc72de2 tests: Add device tests for generation of proofs of ownership. 2020-07-03 11:17:19 +02:00
Andrew Kozlik
534bce3f86 tests/sign_tx: Add device tests for transactions with external inputs. 2020-07-03 11:17:19 +02:00
matejcik
e6e3043096 all: implement support for pre-overwinter prevtx (fixes #1030) 2020-06-30 15:19:31 +02:00
matejcik
f09dcc412e tests/zcash: enable "version_group_id_missing" test 2020-06-30 15:19:31 +02:00
Tomas Susanka
e534ae3ad7 legacy, core: rename Features.pin_cached to unlocked and unify 2020-06-19 21:26:36 +02:00
Tomas Susanka
56fe5adcfc Merge branch 'release/2020-06' 2020-06-10 06:51:18 +00:00
matejcik
4bc865794f core: only unlock storage if it is locked (solves determinism issue in tests) 2020-06-04 16:18:46 +02:00
matejcik
0799595b5b tests: update UI test fixtures 2020-06-04 16:18:46 +02:00
matejcik
70f67883c5 core: fix artifacts in click-based UI tests 2020-06-04 16:18:46 +02:00
matejcik
3c128cde38 tests: fix wait_layout() behavior 2020-06-04 16:18:46 +02:00
matejcik
0c3bbef81b tests: move autolock tests to a separate file 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
e9555a3b0a tests: rename test_address to get_test_address
so that pytest doesn't think it is a testcase
2020-06-04 16:18:46 +02:00
matejcik
a11ec58eb6 tests: enable auto-lock tests for TT 2020-06-04 16:18:46 +02:00
matejcik
b4900f2ab9 test: refactor RecoveryDevice test for TT 2020-06-04 16:18:46 +02:00
matejcik
2499a6d6da tests: refactor T1 changepin test 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
4771d2c233 tests: fix test suite for softlock 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
5209804fc3 core: relax path checks on GetPublicKey
(cherry picked from commit 554d8949f5)
2020-05-27 06:58:30 +00:00
matejcik
554d8949f5 core: relax path checks on GetPublicKey 2020-05-27 08:56:50 +02:00
Tomas Susanka
610dedca74 tests/signing: fix mixed inputs test 2020-05-24 14:36:38 +00:00
Andrew Kozlik
7b94cbee54 tests: Fix fake amount attack in test_msg_signtx_segwit to account for segwit transaction streaming. 2020-05-24 14:36:37 +00:00
matejcik
cbc0ceff06 tests: use valid prev_hash in attack test 2020-05-24 14:36:37 +00:00
matejcik
d4390f78a4 tests: add request_meta queries (needed for transaction streaming) 2020-05-24 14:36:37 +00:00
matejcik
4bc0289601 tests: update komodo test with optional message feature 2020-05-24 14:36:37 +00:00
matejcik
396a509725 tests: update bgold test with actual transactions 2020-05-24 14:36:37 +00:00
matejcik
7a3637d5b0 core/sign_tx: add checks for version_group_id and branch_id fields 2020-05-24 14:36:37 +00:00
matejcik
d804680552 tests: simplify code of test_msg_signtx
Instead of a function generating the expected_responses, introduce
shortcuts (request_input, request_output...) so that the static
expected_responses are more readable.

Also introduce the possibility to include conditional responses (e.g.,
seen only on trezor-core)

WIP
2020-05-24 14:36:37 +00:00
Tomas Susanka
f34e2382fa tests: add segwit attack test for mixed inputs 2020-05-24 14:36:37 +00:00
Tomas Susanka
9dfc08ca61 core/bitcoin: drop decred_script_version 2020-05-21 19:14:39 +02:00
matejcik
2f665c8f84 core: add exception to GetPublicKey for PSBT master fingerprint (fixes #999) 2020-05-21 13:26:53 +02:00
Tomas Susanka
3a3965af9b tests/bitcoin: test segwit/non-segwit input mixing 2020-05-18 14:31:51 +02:00
matejcik
29db769185 tests: update test vectors to use correct paths 2020-05-15 14:08:29 +02:00
Tomas Susanka
20d66adddd core: disable passphrase_always_on_device when turning off passphrase 2020-04-28 14:54:18 +02:00
matejcik
bc926a2dd5 tests: convert signtx tests to use request_* shortcuts for readability 2020-04-25 18:27:29 +02:00
matejcik
feaaaf8973 tests: simplify code of test_msg_signtx
Instead of a function generating the expected_responses, introduce
shortcuts (request_input, request_output...) so that the static
expected_responses are more readable.
2020-04-25 18:27:29 +02:00
Tomas Susanka
a0c8f8f00e tests/signing: add more tests for incorrect script type 2020-04-24 17:19:33 +00:00
matejcik
5885978c83 Merge branch 'release/2020-04' 2020-04-15 15:00:23 +02:00
matejcik
1b50877545 tests: streamline TrezorFailure exception usage 2020-03-26 11:30:06 +01:00
matejcik
b440ca1ec5 python: drop deprecated name CallException 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
325dae890e python: completely drop trezorlib.coins and trezorlib.tx_api 2020-03-26 11:30:06 +01:00
matejcik
b3569a53e6 tests: update tx_cache usages 2020-03-26 11:30:06 +01:00
Tomas Susanka
ae4f927a45 tests: test incorrect script type 2020-03-20 14:19:31 +00:00
matejcik
da89a17ce5 all: add checks for prev_hash size 2020-03-20 14:19:31 +00:00
Tomas Susanka
71a39bc0d7 legacy: check inputs' and outputs' script types 2020-03-20 14:19:30 +00:00
matejcik
ffdb299c61 all: drop Capricoin support [NO BACKPORT] 2020-03-20 14:19:30 +00:00
matejcik
adea7d6b35 all: make timestamp mandatory on timestamp-enabled coins 2020-03-20 14:19:07 +00:00
matejcik
ed464f3d47 all: ensure expiry, timestamp and extra_data are blocked as appropriate 2020-03-20 14:18:27 +00:00
matejcik
27803ee8c1 all: drop overwintered field from transaction 2020-03-20 14:18:27 +00:00
matejcik
303c05aba7 core/sign_tx: check if prev_tx has enough outputs to match prev_index 2020-03-20 14:17:44 +00:00
Andrew Kozlik
c98592050b tests: Fix multisig input replacement attack to check correct behavior during the signing phase. 2020-03-20 14:17:44 +00:00
Tomas Susanka
350a67d9a7 tests: test multisig input replacement attack 2020-03-20 14:17:44 +00:00
Ondřej Vejpustek
bbb44405ad tests/singing: mixed inputs in bitcoin gold 2020-03-20 14:17:44 +00:00
Tomas Susanka
8a0a38f948 tests/singing: mixed inputs 2020-03-20 14:17:44 +00:00
Tomas Susanka
f0a39df75d core/wallet: check inputs and outputs right after receiving them 2020-03-20 14:17:44 +00:00
Tomas Susanka
a513f7429b legacy: forbid unnecessary fields in OPRETURN output 2020-03-20 14:17:44 +00:00
Tomas Susanka
4af9aa547e core: forbid unnecessary fields in OPRETURN output 2020-03-20 14:17:44 +00:00
Andrew Kozlik
d800fcbf9f core/sign_tx: If there is a non-multisig input, then change output cannot be multisig.
(cherry picked from commit 8eb6ce0899)
2020-03-20 14:17:44 +00:00
matejcik
a978435819 tests: update SD card test 2020-03-20 14:03:28 +01:00
Andrew Kozlik
8ee0026637 core: Allow PIN entry even when SD protect is enabled and the card is not present. 2020-03-19 15:04:33 +01:00
Andrew Kozlik
b2dc5813fe legacy, tests: Check for invalid PIN. 2020-03-17 11:53:48 +01:00
Tomas Susanka
ad25096f90 tests: test reset device also with another strengths 2020-03-13 10:12:50 +00:00
matejcik
5b7d11e4ee tests: remove explicit timeouts from test suite 2020-03-09 10:31:17 +01:00
matejcik
7f91bc571c core: ensure default task restarts after a passphrase workflow (fixes #883) 2020-02-28 15:55:40 +01:00
matejcik
d7b9582386 core/sdcard: add ensure_filesystem option (fixes #868)
It is possible to call `ensure_sdcard` in a way that requires only SD
card be inserted, but not necessarily formatted.

This is useful for SD-protect and possibly other use-cases where the SD
card is read-only, and "not formatted" is identical to "not containing
the right files".
2020-02-24 13:28:44 +01:00
matejcik
8fed67de08 tests: expand on multi-session tests 2020-02-21 14:40:42 +01:00
Tomas Susanka
6c47bf8230 core: store multiple sessions/caches at the same time 2020-02-21 14:40:42 +01:00