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

239 Commits

Author SHA1 Message Date
Alois Klink
5c4703c9bb fix(core,legacy): Fix domain-only ethTypedData
When doing Ethereum signTypedData, and the primaryType="EIP712Domain",
we completely ignore the "message" part and only sign the domain.

According to the community, this is technically allowed by the spec,
and may be used by ETH smart contracts to save on gas.

Test case generated by @MetaMask/eth-sig-util's library.

See: https://ethereum-magicians.org/t/eip-712-standards-clarification-primarytype-as-domaintype/3286
2022-01-14 14:22:46 +01:00
matejcik
b2136e35d4 style(tests): remove class from taproot test 2022-01-13 13:01:17 +01:00
grdddj
8bcd52fc1b chore(tests): unifying NEM T1 and TT device tests 2022-01-12 14:53:20 +01:00
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
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
Martin Milata
86b02c6c06 tests(core): remove fixtures incorrectly added during merge 2021-12-08 21:01:08 +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
9ef4440d0a chore(tests): regenerating fixtures.json to account for changed file-paths 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
9052133fca fix(core): Ensure user is warned about non-standard paths. 2021-11-23 14:57:25 +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
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
554888ef84 fix(tests): Fix UI tests which fail earlier due to scriptPubKey derivation. 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
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
Jun Luo
62b649ef5d refactor(common & core & legacy): Stellar, rename StellarCreatePassiveOfferOp to StellarCreatePassiveSellOfferOp. 2021-11-04 13:16:29 +01:00
Jun Luo
d064aae3f9 feat(common & core & legacy): Stellar, add support for StellarPathPaymentStrictSendOp. 2021-11-04 13:16:29 +01:00
Jun Luo
1dcb8e4913 feat(common & core & legacy): Stellar, add support for StellarManageBuyOfferOp. 2021-11-04 13:16:29 +01:00
Jun Luo
3a5768c4bf refactor(common & core & legacy): Stellar, rename StellarManageOfferOp to StellarManageSellOfferOp and rename StellarPathPaymentOp to StellarPathPaymentStrictReceiveOp. 2021-11-04 13:16:29 +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
0e6669bd10 feat(core/stellar): show start/end timestamps in human readable format 2021-10-29 11:00:30 +02:00
matejcik
f7c340f333 feat(core/bitcoin): show lock_time as human readable datetime 2021-10-29 11:00:30 +02:00
Martin Milata
3882b89be9 fix(core/ethereum): ask before showing paginated data field 2021-10-19 17:13:28 +02:00
David Misiak
13c4fb97df fix(cardano): forbid multisig pool registration [no changelog] 2021-10-19 15:25:39 +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
matejcik
b6837d19b7 fix(core/nem): fix NEM usage of format_amount
[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
4aaf6db9a2 chore(cardano): update docs, changelog and ui test fixtures 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
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
1b932a20e8 fix(tests): decoding PNG files to fix Linux/Mac differences in encoding 2021-09-14 14:21:38 +02:00
matejcik
ae4dd42d18 refactor(core/ethereum): reorganize sanity checks, disallow chain_id 0 2021-09-10 15:09:03 +02:00
matejcik
8931450d21 chore(common): enable Palm network 2021-09-10 15:09:03 +02:00
matejcik
a1c3d8b7a5 chore(tests): regenerate UI test fixtures 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
0bff220fd6 chore(cardano): update ui test fixtures 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
matejcik
f78363ecdc refactor(core/ui): do not use parameter for styling in get_next_u2f_counter 2021-08-04 15:03:11 +02:00
Martin Milata
574dcbc8a3 refactor(core): convert apps.common to layouts 2021-08-04 15:03:11 +02:00
Martin Milata
875cc0cb1a refactor(core): convert apps.webauthn to layouts 2021-08-04 15:03:11 +02:00
matejcik
0e14291094 chore(tests): regenerate UI test fixtures 2021-07-26 14:48:35 +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
Andrew Kozlik
e3faece811 fix(tests): Fix device tests after having disabled testnet for BIP-45 paths. 2021-06-30 18:25:58 +02:00
matejcik
2491f871aa chore(tests): add fixture for new Cardano test 2021-06-24 14:37:48 +02:00
matejcik
319a4374d3 chore(tests): regenerate UI test fixtures 2021-06-23 11:51:18 +02:00
matejcik
f39abc8356 chore(tests): update UI test fixtures 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
gabrielkerekes
8a3549dbf8 chore(tests): update ui_tests fixtures 2021-06-08 15:02:24 +02:00
matejcik
b1ec73e10b chore(tests): put enum names into UI fixture names (hashes are unchanged) 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
2ae8e954bf chore(tests): update UI test fixtures 2021-05-06 13:14:21 +02:00
gabrielkerekes
2313293477 feat(core/cardano): add support for catalyst voting registration 2021-04-23 11:09:29 +02:00
Martin Milata
b1e38fe382 refactor(core): no implicit spaces in render_text 2021-03-30 22:34:01 +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
7436fd06b9 test: Add device test for replacement transaction with OP_RETURN output. 2021-03-24 22:06:41 +01:00
Rafael Korbas
74ed5b7018 feat(core/cardano): Implement bech32 asset ids based on CIP-0014 2021-03-18 09:53:33 +01:00
Rafael Korbas
bd4512b53a fix(core/cardano): Allow stake pool registrations with zero margin 2021-03-18 09:35:08 +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
Rafael Korbas
ceea21ec1f feat(cardano): Format stake pool ids as bech32 instead of hex 2021-02-25 16:49:19 +01:00
Rafael Korbas
cf871ee754 fix(core/Cardano): do not show change output in byron-shelley transfers 2021-02-25 16:41:12 +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
Martin Milata
f38abf9d89 refactor(core): introduce layouts
Layouts can be used by the application code to interact with user using
small number of dialogs or other groups of UI components. Each layout is
identified by name and takes some parameters. Most layouts will have an
implementation for each hardware model, mechanism is provided to import
the correct version so that application code can be oblivious to the
model.

This commit introduces the layout concept and converts a couple of
dialogs to use it.
2021-02-10 13:57:19 +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
Rafael Korbas
44c7d23741 Cardano: map account paths to account numbers 2021-01-22 14:45:29 +01:00
Pavol Rusnak
be2ca4772c tests: add device tests for SignTx with amount_unit 2021-01-22 14:07:36 +01:00
Pavol Rusnak
7f0e939359 feat(core): implement amount_unit for AuthorizeCoinJoin and SignTx 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
02881fd800 feat(tests): use JSON descriptions in test identifiers 2021-01-21 15:26:04 +01:00
Pavol Rusnak
060df07272 fix(tests): fix trimming of fixture names to avoid collisions 2021-01-20 14:09:27 +01:00
matejcik
fc4e15fe77 feat(core): introduce and enforce limit on label length (fixes #1399) 2021-01-12 11:22:58 +01:00
matejcik
24195d7c3e fix(core/ui): use full line_width for content 2021-01-11 16:47:59 +01:00