1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-23 14:58:09 +00:00
Commit Graph

240 Commits

Author SHA1 Message Date
matejcik
99c817bad4 fix(core/emulator): make sure SDL keyboard and quit events are always processed
fixes #973
2022-05-16 10:59:48 +02:00
tychovrahe
f7a3aad9bd feat(core): initial Model R display implementation with framebuffer 2022-05-10 16:49:23 +02:00
grdddj
6b5f578d02 feat(core): implement basic R emulator
Can be built by `TREZOR_MODEL=R make build_unix`, `make build_unix_frozen` does not work yet.

All the dialogs are not very pretty, they are just meant to work.
2022-05-06 11:44:52 +02:00
Martin Milata
85a26d2c95 docs(core): changelog for 2.5.1 2022-05-03 23:00:25 +02:00
Andrew Kozlik
b1c6b42201 fix(core): Stricter Bitcoin transaction checks. 2022-05-03 22:14:40 +02:00
Andrew Kozlik
106ab65e21 feat(core): Implement GetFirmwareHash message. 2022-05-03 19:00:04 +02:00
Tomas Krnak
9985a72c6a feat!(core): support Zcash v5 transaction format
This implements:
- ZIP-225: Version 5 Transaction Format
- ZIP-244: Transaction Identifier Non-Malleability

BREAKING CHANGE: Zcash prevouts are not verified (as in Taproot). Zcash replacement transactions are not supported.
2022-05-02 16:07:31 +02:00
Pavol Rusnak
334f7bbbe6 chore(common): defs cleanup
- drop Gamecredits - they became an ERC-20 token in 2020
- drop Nix - dead coin
- drop Polis - coin became a BEP-20 token and later Olympus network in 2021
2022-03-25 14:27:30 +01:00
David Misiak
915781bfb1 chore(cardano): update changelog and ui tests 2022-03-18 14:32:54 +01:00
Andrew Kozlik
43f1d67289 feat(core): Support unverified external inputs. 2022-03-17 09:44:03 +01:00
Andrew Kozlik
c9e6ca30c9 feat(core): Ensure input's script type and path match the scriptPubKey. 2022-03-17 09:44:03 +01:00
matejcik
0b9f7db742 fix(core): support structs as array elements (fixes #2167) 2022-03-10 13:04:54 +01:00
matejcik
4e2129e0a0 feat(core): automatically choose best QR encoding 2022-03-10 11:27:21 +01:00
matejcik
bbf286e050 fix(core/debug): only wait for layout when _enabling_ watch_layout 2022-02-21 14:37:25 +01:00
Pavol Rusnak
c6667fa0c2 feat(core): verify bip340 pubkeys used in p2tr addresses
Co-Authored-By: Ondřej Vejpustek <ondrej.vejpustek@satoshilabs.com>
2022-02-16 10:25:15 +01:00
Andrew Kozlik
d52a59e37b feat(core): Show "signature is valid" dialog when VerifyMessage succeeds. 2022-02-11 15:36:00 +01:00
Andrew Kozlik
4d40d6dbfc feat(core): Support Electrum signatures in VerifyMessage. 2022-02-11 15:36:00 +01:00
matejcik
a1c62098e9 fix(core/ethereum): implement hold-to-confirm for eip1559 transactions 2022-02-08 14:27:23 +01:00
Andrew Kozlik
0e58218f5f feat(core): Implement Bitcoin payment requests. 2022-01-31 18:00:22 +01:00
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
Andrew Kozlik
cdf2129b73 fix(core): Fix proof of ownership sighash computation. 2022-01-10 11:14:36 +01:00
matejcik
456959545c docs(core): add changelog for type-checking 2022-01-07 21:41:17 +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
ef5994d9f3 feat(core): Support ownership proofs for Taproot addresses. 2021-12-06 18:23:48 +01:00
Martin Milata
595b14254c docs(core): changelog for 2.4.3 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
03b1b3bc6b feat(core): Show path warning for SignMessage. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
475b95b11e feat(core): Disable prevtx streaming for Taproot. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
84e31310a1 feat(core): Support Taproot in SignatureVerifier. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
a17cdb7cfa feat(core): Implement Taproot signing. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
dd7ed61939 feat(core): Implement GetAddress for taproot. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
cf14e06aa0 feat(core): Show address confirmation in SignMessage. 2021-11-10 17:35:57 +01:00
Andrew Kozlik
bc4a56b2c0 feat(core): Support no_script_type option in SignMessage. 2021-11-10 17:35:57 +01:00
matejcik
0870befe58 docs: add changelogs 2021-11-10 13:57:57 +01:00
Martin Milata
a01516389a chore(vendor): update QR-code-generator 2021-11-05 14:09:11 +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
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
1d72085b5c feat(core): implement conversion from timestamp to datetime 2021-10-29 11:00:30 +02:00
Pavol Rusnak
b2ff86ff3a
fix(common): drop unusable coins BELL and ZNY (#1872)
there are no wallets that support Trezor and these coins
2021-10-26 13:09:34 +02:00
Ondřej Vejpustek
7ac0bdd215 feat(core): make core use Schnorr signatures 2021-10-25 14:41:28 +02:00
Ondřej Vejpustek
26463eb3ce feat(core): make core use ecdsa from secp256k1_zkp wherever possible 2021-10-25 14:41:28 +02:00
Martin Milata
3882b89be9 fix(core/ethereum): ask before showing paginated data field 2021-10-19 17:13:28 +02:00
Andrew Kozlik
13cbb59082 feat(common): Add script_pubkey field to TxInput message. 2021-10-18 19:58:56 +02:00
Andrew Kozlik
9d03112846 feat(core): Implement sending to taproot addresses. 2021-10-18 13:36:05 +02:00
Pavol Rusnak
fea240ed40 feat(core): add support for Taproot descriptors 2021-10-18 13:36:05 +02:00
gabrielkerekes
4aaf6db9a2 chore(cardano): update docs, changelog and ui test fixtures 2021-10-11 15:16:24 +02:00
Martin Milata
70bb0ee04f fix(core): bitcoin-only all_modules.py 2021-10-07 15:26:49 +02:00
Ondrej Mikle
a85d2483ff chore(legacy & core): changelogs added 2021-09-27 15:42:29 +02:00
matejcik
1dcfdebf7a feat(all): make Stellar timebounds required 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
matejcik
b666895303 feat(core/rust): catch, handle and propagate uPy exceptions 2021-09-21 12:43:31 +02:00
Martin Milata
aace875fef chore(vendor): bump micropython to 1.17
Relevant micropython commits:
  d1bfb271d7686708fe8711a177629c8bf6e7f6a6 lib/uzlib: Move uzlib code from extmod to lib.
  4d546713ec8858cbf908de45de11cbfc46a20971 shared: Introduce new top-level dir and move 1st party lib code there.
  ca920f72184c50f61002aa9d5cd01555b1e28b7b py/mpstate: Make exceptions thread-local.
2021-09-17 11:18:14 +02:00
Martin Milata
35a41fd957 Merge branch 'release/21.09' into master
Conflicts:
	core/src/apps/ethereum/tokens.py
2021-09-16 17:28:36 +02:00
matejcik
e80077e0a4 feat(core/ethereum): enable type-checking for Ethereum app 2021-09-10 15:09:03 +02:00
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
Tomas Susanka
9a6451342a chore(core): generate Changelog 2021-08-26 14:52:52 +02:00
matejcik
7aed8d535d feat(all): re-enable Firo (fixes #1767) 2021-08-23 11:43:57 +02:00
Martin Milata
f37ca13f1a refactor(core): disable SD, SBU, fatfs for T1 build 2021-08-20 12:22:13 +02:00
gabrielkerekes
2c65b00951 chore(cardano): add changelog entries 2021-08-20 11:50:13 +02:00
matejcik
d33d61d84e chore(core): 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
725d1bd961 docs(core): add changelog entry 2021-08-04 15:03:11 +02:00
Andrew Kozlik
27e6f35f78 refactor(core/bitcoin): Change scripts to use writer semantics. 2021-07-22 10:54:49 +02:00
Andrew Kozlik
7277a49047 fix(common): Add new rpId to Binance's FIDO definition. 2021-07-21 13:19:16 +02:00
matejcik
2b3c75c4de fix(core): properly respond to USB events while on a paginated screen 2021-07-20 12:59:26 +02:00
matejcik
cf15dce326 refactor(core/ethereum): improve API of the rlp module 2021-07-19 13:59:28 +02:00
Pavol Rusnak
0a951b8a77 fix(core): don't use format strings in keyctl-proxy 2021-07-16 14:23:43 +02:00
matejcik
b41d4c71f0 feat(core/emulator): JSON memory map dump
use `trezor.utils.mem_dump("somefile.json")` in a key place, then
`analyze.py src/somefile.json` to look at what is going on
2021-07-14 13:50:24 +02:00
Martin Milata
e67b3ab214 docs(core): changelog for 2.4.1
[skip_ci]
2021-06-30 18:21:56 +02:00
gabrielkerekes
cc14ffb3e3 docs(core): add changelog entries for Cardano 2021-06-24 11:09:32 +02:00
Ondřej Vejpustek
b8b0ae09d9 fix(core): use unprivileged shutdown where needed 2021-06-23 16:40:45 +02:00
matejcik
47c2be9f13 docs(core): add changelog entry for altcoin layouts 2021-06-23 11:51:18 +02:00
matejcik
1012ee8497 feat(core): send ButtonRequests for paging events 2021-06-22 11:25:12 +02:00
matejcik
52c34c7364 fix(core): allow caching empty values (fixes #1659) 2021-06-11 12:32:13 +02:00
gabrielkerekes
ae831abb75 docs(core): add changelog entries for cardano updates 2021-06-08 15:02:24 +02:00
matejcik
d6776d988e docs(core): add changelog entry for Rust protobuf 2021-06-08 09:55:19 +02:00
Pavol Rusnak
23aa69caea fix(core): unify Features.revision reporting with legacy 2021-06-04 12:50:49 +02:00
matejcik
2fac964a29 chore(common): disable Firo support 2021-06-04 11:38:18 +02:00
Pavol Rusnak
fce3640848 fix(common): remove dead coin Hatch 2021-06-04 10:10:26 +02:00
Martin Milata
e77082f34f docs(core): changelog for 2.4.0 2021-05-24 20:46:41 +02:00
Ondřej Vejpustek
6fd4739c5c feat(core): make random delays use chacha_drbg 2021-05-21 13:42:53 +02:00
Martin Milata
c54077a714 fix(core): imports needed for T1 startup
Now debug build booted on wiped T1 connects to USB and shows square in
top right corner.
2021-05-17 18:03:07 +02:00
matejcik
f05215f4ff chore(core): add changelog entry 2021-05-06 13:14:21 +02:00
Jan Pochyla
6257584951 feat(core): Add Rust bindings to MicroPython and trezorhal
core: Remove dangling module decls

core: Use new Cargo feature resolver, use external MacOS debug info

core: Rust docs improvements

core: Upgrade bindgen

core: Add test target to Rust

ci: build rust sources

build(core): .ARM.exidx.text.__aeabi_ui2f in t1 firmware size

It's an unwind table for softfloat function inserted by rustc, probably
can be removed to save 8 bytes:
599c58db70/link.x.in (L175-L182)

scons: Remove dead code

core: Move Rust target to build/rust

core: Replace extern with a FFI version

core: Add some explanatory Rust comments

core: Use correct path for the Rust lib

core: Remove Buffer::as_mut()

Mutable buffer access needs MP_BUFFER_WRITE flag. TBD in the Protobuf PR.

core: Improve docs for micropython::Buffer

core: Minor Rust docs changes

core: Rewrite trezor_obj_get_ll_checked

core: Fix incorrect doc comment

core: Remove cc from deps

fixup! core: Rewrite trezor_obj_get_ll_checked

core: update safety comments
2021-05-05 16:00:21 +02:00
Martin Milata
f58c1634c6 docs(core): use towncrier for generating CHANGELOG.md 2021-05-04 14:18:01 +02:00