1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-29 10:58:21 +00:00
Commit Graph

316 Commits

Author SHA1 Message Date
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