1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-16 19:38:09 +00:00
Commit Graph

2755 Commits

Author SHA1 Message Date
tychovrahe
da83d98539 refactor(core/rust): use icon blending for three-color icons
[no changelog]
2022-10-22 12:20:42 +02:00
Martin Milata
50259b1084 chore(core): remove OTF files of TT Hoves fonts
The fonts are commercially licensed unlike the rest of this repository.
They have been moved to a private repository.

[no changelog]
2022-10-22 01:39:53 +02:00
Martin Milata
18352acce8 feat(core/rust/ui): replace TT Hoves Medium with DemiBold style
[no changelog]
2022-10-22 01:39:53 +02:00
Martin Milata
be7f1c3f7e fix(core/rust/ui): avoid flickering in hold to confirm
[no changelog]
2022-10-21 21:02:39 +02:00
Martin Milata
a7c3a07ef1 refactor(core/rust/ui): implement confirm_properties layout
[no changelog]
2022-10-21 21:02:39 +02:00
tychovrahe
86f2dacc6e fix(core): re-introduce touch event filtering
[no changelog]
2022-10-21 14:24:10 +02:00
Martin Milata
f956966fda build(core/rust): workaround failing build_unix_debug
[no changelog]
2022-10-21 13:05:31 +02:00
matejcik
ac6936d65d fix(core/debug): separate buffer for debuglink to prevent BufferLock deadlocks
[no changelog]
2022-10-19 14:24:59 +02:00
tychovrahe
d0f1095842 fix(core): expose USB_CHECK for all models
[no changelog]
2022-10-19 11:31:03 +02:00
tychovrahe
d3469f8310 fix(core/rust): optimize pin keyboard rendering for TT UI2
[no changelog]
2022-10-18 10:17:36 +02:00
Andrew Kozlik
ee8c596b1a refactor(core): Use a list of presigned inputs in Bitcoin signing.
Co-authored-by: Ondřej Vejpustek <ondrej.vejpustek@satoshilabs.com>
2022-10-17 15:20:46 +02:00
Andrew Kozlik
5dddb06e2b refactor(core): Replace Bitcoin signing progress functions with a class. 2022-10-17 15:20:46 +02:00
Andrew Kozlik
d815a7d6de chore(core): Use C implementation of Bech32 decode. 2022-10-17 15:20:46 +02:00
Andrew Kozlik
cc054050a5 feat(core): Improve Bitcoin signing progress display. 2022-10-17 15:20:46 +02:00
Andrew Kozlik
8ef5e5120a feat(core): Verify ownership proofs before transaction approval in BTC signing. 2022-10-17 15:20:46 +02:00
Andrew Kozlik
5b453c88ed feat(core): Add serialize option to SignTx. 2022-10-17 15:20:46 +02:00
Pavol Rusnak
029e47e1e8 chore(common/defs/fido): add proton
[no changelog]
2022-10-17 12:02:54 +02:00
Vladyslav Burzakovskyy
e7ff43272c chore(common/defs/fido): add invity
[no changelog]
2022-10-14 16:28:51 +02:00
tychovrahe
c750113d57 fix(tests): fix rust tests with ASAN
[no changelog]
2022-10-13 10:51:43 +02:00
matejcik
cac98ad7d4 feat(core/rust): implement storage wrapper layer
[no changelog]
2022-10-13 09:18:20 +02:00
grdddj
0f549c02da feat(core): add -r option to emu.py to allow for screen recording
[no changelog]
2022-10-12 13:44:53 +02:00
matejcik
7a09c21bf5 chore(core): fix import in key generator 2022-10-11 12:11:53 +02:00
Andrew Kozlik
0ba966b979 fix(core): Fix bug in SetBusy when running CI tests.
[no changelog]
2022-10-10 20:32:36 +02:00
Andrew Kozlik
5bbfd40df6 feat(core): Add set_int() and get_int() to storage cache.
[no changelog]
2022-10-10 20:32:36 +02:00
tychovrahe
11748b7641 fix(build): fix ASAN build with num_derive crate
[no changelog]
2022-10-10 13:49:50 +02:00
tychovrahe
99eaaae28e build(core): redistribute content in flash
[no changelog]
2022-10-03 09:43:53 +02:00
Dusan Klinec
90771ebb59 fix(xmr): fix tx sending to an integrated address 2022-09-30 13:47:06 +02:00
tychovrahe
fb08536b6a feat(core): icon and images using new format 2022-09-29 21:50:10 +02:00
tychovrahe
f7b9bb4ef8 feat(core/rust): use dma2d to improve rendering performance, implement text over image and icon over icon functions 2022-09-29 21:50:10 +02:00
tychovrahe
223d1b20fb refactor(core): change fonts organization 2022-09-29 21:50:10 +02:00
tychovrahe
b9647d1296 fix(core): fix flashing usb disconnected error
[no changelog]
2022-09-26 13:31:04 +02:00
tychovrahe
a4d0ec3926 fix(core/rust): fix flickering in UI2 hold to confirm screen
[no changelog]
2022-09-22 10:03:56 +02:00
Martin Milata
7c11dec7f6 refactor(core/rust/ui): Font as repr(u8) enum
[no changelog]
2022-09-16 13:57:32 +02:00
Martin Milata
ef504d40fc perf(core/rust/ui): use 16-bit coordinates
[no changelog]
2022-09-16 13:57:32 +02:00
Martin Novak
dd168d2893 feat(core,legacy): display only sat instead of sat BTC 2022-09-15 08:01:24 +02:00
tychovrahe
e3d5c178f1 feat(core): enable bus fault and usage fault handlers
[no changelog]
2022-09-13 15:04:40 +02:00
Martin Novak
a41cfadbf1 feat(core,legacy): Extend decimals of fee rate to 2 digits 2022-09-09 15:28:31 +02:00
Dusan Klinec
2fe40f70a6 fix(xmr): fixes #2453, incorrect address display 2022-09-09 14:07:30 +02:00
Martin Milata
5a9c2a1363 feat(core/rust/ui): recovery layouts
[no changelog]
2022-09-07 16:46:47 +02:00
Martin Milata
5052594789 refactor(core/rust/ui): simplify button height computation
[no changelog]
2022-09-07 16:46:47 +02:00
Martin Milata
885ae2a943 refactor(core/rust/ui): add should_show_more
[no changelog]
2022-09-07 16:46:47 +02:00
Martin Milata
a5cff25209 fix(core/rust/ui): expose method for completely repainting layout
[no changelog]
2022-09-07 16:46:47 +02:00
Martin Milata
3b629a1ea4 refactor(core/rust/ui): layouts for SLIP-39 backups
[no changelog]
2022-09-07 16:46:47 +02:00
Martin Milata
4782afbae3 refactor(core/rust/ui): layouts for BIP-39 backups
[no changelog]
2022-09-07 16:46:47 +02:00
Martin Milata
4ff2c99f0a refactor(core/rust/ui): add show_info and show_error
[no changelog]
2022-09-07 16:46:47 +02:00
Martin Milata
f0d5f9069a refactor(core/rust/ui): text centering in Paragraphs
Only works for paragraphs, not formatted text.

[no changelog]
2022-09-07 16:46:47 +02:00
Martin Milata
247d9d267a feat(core/rust/ui): explicit breaks for Paragraphs
[no changelog]
2022-09-07 16:46:47 +02:00
matejcik
7ba7eff118 refactor(core/rust): more explicit buffer semantics, StrBuffer::alloc
[no changelog]
2022-09-06 16:27:22 +02:00
Ondrej Mikle
77cdf4b43c fix(core): consider device in USB suspend connected if it was configured before
[no changelog]
2022-09-05 09:36:32 +02:00
Tomas Krnak
031bac4a9b feat(core): add support for Zcash unified addresses 2022-08-30 21:15:49 +02:00
Andrew Kozlik
054b5456d2 chore(core): Decrease ECMULT_GEN_PREC_BITS to save 32kB of flash space. 2022-08-30 15:53:44 +02:00
Andrew Kozlik
b5cb9cb035 feat(core): Allow Any type in is_type_of().
[no changelog]
2022-08-30 15:53:44 +02:00
Andrew Kozlik
77be3653b4 feat(core): Implement SLIP-0025 CoinJoin accounts. 2022-08-30 15:53:44 +02:00
Andrew Kozlik
9d89c3cb1b feat(common): Add UnlockPath message.
[no changelog]
2022-08-30 15:53:44 +02:00
grdddj
c53177fe89 feat(core): show fee rate when replacing transaction 2022-08-30 10:20:54 +02:00
grdddj
d5b0650cc2 feat(tests): add possibility to run device/UI tests in parallel 2022-08-29 15:47:36 +02:00
tychovrahe
837988f61e fix(core/rust): fix uzlib window allocation
[no changelog]
2022-08-29 10:11:45 +02:00
tychovrahe
dd823097b4 fix(core/rust): fix UI2 loader position
[no changelog]
2022-08-26 09:56:43 +02:00
Ondrej Mikle
72228e35cf feat(core): show red error header when USB data not connected 2022-08-25 16:42:29 +02:00
Ondrej Mikle
a0287698d5 feat(core): show blue dot when USB data not connected 2022-08-25 16:42:29 +02:00
Martin Milata
005e4203a7 refactor(core/rust/ui): text theme struct
[no changelog]
2022-08-25 16:33:41 +02:00
matejcik
20ac679651 build(core/rust): enable panic_immediate_abort for firmware 2022-08-23 11:26:34 +02:00
Andrew Kozlik
d089fd3187 feat(core): Implement SetBusy message. 2022-08-22 18:15:29 +02:00
Andrew Kozlik
792dadfc4d feat(common): Add SetBusy message.
[no changelog]
2022-08-22 18:15:29 +02:00
Pavol Rusnak
c962d3520b
Merge branch 'release/22.08' 2022-08-22 11:10:45 +02:00
matejcik
0b4ccf45fc style(core/rust): less expensive conversion from known good utf8 string 2022-08-18 15:22:48 +02:00
matejcik
0fb66d3527 feat(core/rust): unwrap! macro to trigger nicer behavior than the built-in 2022-08-18 15:22:48 +02:00
matejcik
0b52ffb914 feat(core/rust): const geometry
Make sure all geometry functions are const. This seems semantically correct and achieves a small space saving.
2022-08-18 15:22:48 +02:00
tychovrahe
6cf92fd748 feat(core): Introduce stack overflow detection by moving stack to the start of RAM 2022-08-16 17:03:06 +02:00
tychovrahe
cc2bfd9c39 feat(core/rust): autoclosing popup for Model R with success animation 2022-08-12 13:30:24 +02:00
tychovrahe
1697be2de8 feat(core/rust): added success animation and rust icon rendering 2022-08-12 13:30:24 +02:00
tychovrahe
820182c6b0 feat(core/rust): expose uzlib functions to rust 2022-08-12 13:30:24 +02:00
tychovrahe
68598f00af feat(core/rust): hold to confirm animation for Model R 2022-08-12 13:30:24 +02:00
tychovrahe
107e22c814 feat(core/rust): glyph and text rendering in rust 2022-08-12 13:30:24 +02:00
tychovrahe
af77816c2f feat(core/rust): expose display offset handling to rust 2022-08-12 13:30:24 +02:00
tychovrahe
29a5b0a770 feat(core/rust): implement interpolate color and color table functions in rust 2022-08-12 13:30:24 +02:00
tychovrahe
7f2a995c54 refactor(core/rust): separate lerp and animations 2022-08-12 13:30:24 +02:00
tychovrahe
ce142ffe08 feat(core/rust): make ButtonPos hit function public to enable reuse 2022-08-12 13:30:24 +02:00
tychovrahe
f538547d5b feat(core): optimize touch controller communication 2022-08-08 15:52:26 +02:00
matejcik
ef47c26272 chore(core,legacy): bump versions
[skip_ci]
[no changelog]
2022-08-03 13:10:05 +02:00
matejcik
0d87b55ba4 chore(docs): regenerate changelogs 2022-08-02 22:26:27 +02:00
Andrew Kozlik
fa5e7feda6 fix(crypto): Fix nonce bias in CoSi signing. 2022-08-02 20:38:04 +02:00
Andrew Kozlik
ad5a572b75 chore(common): Deprecate data field in CosiCommit message. 2022-08-02 20:38:04 +02:00
matejcik
114376f734 feat(core/strings): use thousands separator (fixes #2394) 2022-08-02 20:35:49 +02:00
matejcik
a6410693b3 Revert "feat(core): implement firmware dumping"
This reverts commit 37c61c1381.
2022-08-02 17:12:07 +02:00
Andrew Kozlik
8ca785925d fix(core,legacy): Fix tx_weight to tx_size conversion.
[no changelog]
2022-08-02 14:30:38 +02:00
matejcik
00095c5787 chore: update tokens & networks 2022-08-02 13:57:31 +02:00
Andrew Kozlik
90792eb438 fix(core): Fix Decred transaction weight calculation. 2022-08-01 15:10:34 +02:00
Andrew Kozlik
426eae4dfc fix(core): Ensure correct order when verifying external inputs in Bitcoin signing. 2022-07-28 17:14:05 +02:00
TychoVrahe
a762e75fee
fix(core): reintroduce touch controller initialization without power down/up in firmware, fix model R firmware initialization 2022-07-26 15:09:43 +02:00
Ondrej Mikle
4d3d9f5d7e docs(core): documentation on embedded C+Rust debug 2022-07-26 11:24:27 +02:00
Andrew Kozlik
421eec1d3b feat(core): Add get_base_weight() to TxWeightCalculator.
[no changelog]
2022-07-20 18:23:34 +02:00
Andrew Kozlik
0ce2c079b0 feat(core): Account for minimum registrable output amount in CoinJoin checks.
[no changelog]
2022-07-20 18:23:34 +02:00
grdddj
38f7d32d94 feat(rust): add more details into panic handler 2022-07-20 12:46:01 +02:00
grdddj
9dc73427fb feat(rust): add print! macro for logging into terminal 2022-07-20 12:46:01 +02:00
grdddj
8bfbe9da01 fix(ui): import type component inside if TYPE_CHECKING branch 2022-07-20 12:46:01 +02:00
gabrielkerekes
b9e2ca9a9d chore(cardano): add changelog and update ui fixtures 2022-07-04 15:58:27 +02:00
gabrielkerekes
1a68650c43 feat(cardano): add support for hiding some details during tx signing 2022-07-04 15:58:27 +02:00
gabrielkerekes
2f9435570d feat(cardano): add tx signing show details prompt 2022-07-04 15:58:27 +02:00
gabrielkerekes
11f8e81083 chore(cardano): update changelog 2022-07-04 15:58:27 +02:00
David Misiak
ba7fb2cb54 feat(cardano): allow required signers in more signing modes 2022-07-04 15:58:27 +02:00
David Misiak
4017434cc1 feat(cardano): add support for babbage features 2022-07-04 15:58:27 +02:00
David Misiak
11c4b25cb0 feat(cardano): allow datum hash in non-script outputs 2022-07-04 15:58:27 +02:00
David Misiak
f7d0507a65 feat(cardano): add support for chunked embedded CBOR 2022-07-04 15:58:27 +02:00
David Misiak
99a7c48e64 feat(cardano): add babbage data types 2022-07-04 15:58:27 +02:00
David Misiak
687a981d12 chore(cardano): update changelog 2022-07-04 15:58:27 +02:00
David Misiak
8a229edcb3 refactor(cardano): shorten identifiers in addresses, certs, aux data 2022-07-04 15:58:27 +02:00
David Misiak
50ad00a3c0 refactor(cardano): use module imports for addresses, certs, aux data 2022-07-04 15:58:27 +02:00
David Misiak
2753faa7b0 refactor(cardano): shorten identifiers 2022-07-04 15:58:27 +02:00
David Misiak
1ae6b68eaf refactor(cardano): use module imports for messages, layout 2022-07-04 15:58:27 +02:00
David Misiak
0836e91faa refactor(cardano): inline validation errors 2022-07-04 15:58:27 +02:00
David Misiak
2724d29968 refactor(cardano): introduce Signer and its subclasses 2022-07-04 15:58:27 +02:00
Christian Reitter
c5d22b4395 fix(core): correct range in error message 2022-07-01 14:50:19 +02:00
matejcik
8c3d3c6548 chore: bump black to 22.3
changes:
* exponent operator ** now allows no spaces around itself: https://github.com/psf/black/issues/538
* optional unicode marker u"" is no longer allowed

[no changelog]
2022-06-29 14:35:16 +02:00
matejcik
c7b6e8986e fix(core/rust): fix overflow in tests by properly using 0-terminated strings
[no changelog]
2022-06-29 09:24:54 +02:00
matejcik
fce188fb96 fix(core/ui): fix char boundary bug in Rust layout 2022-06-28 18:01:02 +02:00
Martin Milata
ccf364f1da refactor(core/ui): DebugLink swipe for rust layouts
[no changelog]
2022-06-28 18:01:02 +02:00
Martin Milata
c9ca7cd544 feat(core/rust/ui): bitcoin layouts
[no changelog]
2022-06-28 18:01:02 +02:00
Martin Milata
dd9a7d30e5 refactor(core/rust/ui): expose page count to python
[no changelog]
2022-06-28 18:01:02 +02:00
Martin Milata
ee1497b87e refactor(core/rust/ui): hold-to-confirm for paged content
[no changelog]
2022-06-28 18:01:02 +02:00
Martin Milata
24a1f2e25e refactor(core): remove unused parameter from display_qrcode
[no changelog]
2022-06-28 18:01:02 +02:00
Martin Milata
9f0ebf6d1a refactor(core/rust/ui): arbitrary controls for Dialog component
[no changelog]
2022-06-28 18:01:02 +02:00
matejcik
62ab48d2e6 chore(core/monero): add changelog entry for HF15 2022-06-28 16:21:29 +02:00
Dusan Klinec
2d36c4e8f3 fix(core/monero): add missing view_tags to hf15 2022-06-28 16:21:29 +02:00
Andrew Kozlik
892f3e348d fix(crypto): Remove public key from the ed25519 signing API.
[no changelog]
2022-06-27 18:59:08 +02:00
Pavol Rusnak
95daa2fda3 chore(common/defs): replace consensus_branch_id with overwintered bool flag
[no changelog]
2022-06-27 12:39:03 +02:00
mcudev
1ec62e9c86 common/defs/fido: update fastmail 2022-06-27 11:09:31 +02:00
tychovrahe
c33f92bd72 feat(core): add RGB LED driver for Model R 2022-06-22 09:28:31 +02:00
matejcik
2aa427a6e3 feat(core/rust): make Rust buildable without Micropython
Features `micropython` and `protobuf` are defined. Protobuf implies micropython
because our protobuf impl is pretty much _for_ micropython.

The respective subdirs are included only if the matching feature is defined.

util.rs is moved to micropython because it mostly concerns micropython interop

ResultExt, useful only for ui_debug, is moved to ui::util.

A new module `trezorhal::time` is provided. It mirrors functionality of
`micropython::time` via stmlib functions.  The intended use is to always use
functions from `trezorhal::time`. The right micropython variants are used when
micropython is available, otherwise the pure stmlib versions are called.

ui::*::layout is conditional for micropython feature, because it only concerns
micropython layouts. If we want to reuse layouts defined there, we will need to
export them to not depend on Objs and Qstrs etc.
2022-06-16 13:08:07 +02:00
mcudev
7d37109eb8 common/defs/fido: add cloudflare 2022-06-14 15:12:51 +02:00
matejcik
37d5597965 feat(core/rust): direct write to display memory for better performance on TT hardware 2022-06-14 15:09:03 +02:00
matejcik
57b12c2807 feat(core): expose display pixeldata accessors from C 2022-06-14 15:09:03 +02:00
tychovrahe
61482d0795 feat(core/rust): expose raw pixel access to rust 2022-06-14 15:09:03 +02:00
Ondrej Mikle
7b7318c3aa feat(core/boardloader): add fixed-address boardloader capablities field 2022-06-13 18:18:25 +02:00
Jan Pochyla
c3b82fd651 feat(core/rust): add trezorhal bindings 2022-06-08 14:42:04 +02:00
Dusan Klinec
1e9acf10fa fix(xmr): remove inv8 optimization as in xmr master 2022-06-08 08:59:34 +02:00
dependabot[bot]
cc795407d0 build(deps): bump regex from 1.5.4 to 1.5.6 in /core/embed/rust/fuzz
Bumps [regex](https://github.com/rust-lang/regex) from 1.5.4 to 1.5.6.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.5.4...1.5.6)

---
updated-dependencies:
- dependency-name: regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-07 12:20:02 +02:00
dependabot[bot]
3c31d24f50 build(deps): bump regex from 1.5.4 to 1.5.6 in /core/embed/rust
Bumps [regex](https://github.com/rust-lang/regex) from 1.5.4 to 1.5.6.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.5.4...1.5.6)

---
updated-dependencies:
- dependency-name: regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-07 11:18:41 +02:00
Martin Novak
2663801108 perf(firmware): do not initialize touch controller in firmware 2022-06-02 10:30:53 +02:00
matejcik
c77066065e chore(core/rust): bump cty to 0.2.2
this fixes signedness of char on Mac M1
2022-06-01 16:35:33 +02:00
matejcik
38a36a131f chore: rename BIP39_WORDS to BIP39_WORD_COUNT 2022-06-01 16:35:33 +02:00
matejcik
dfa4b1d9a1 build: add bip39_english.o where appropriate
[no changelog]
2022-06-01 16:35:33 +02:00
matejcik
6319a5a9d0 feat(core/rust): BIP-39 wordlist operations in Rust 2022-06-01 16:35:33 +02:00
Pavol Rusnak
59f78d06b1 chore(common/defs/fido): add kraken
[no changelog]
2022-06-01 14:52:15 +02:00
matejcik
d3f24f6e17 feat(core): provisionally gate RebootToBootloader under experimental features 2022-06-01 14:50:59 +02:00
matejcik
e66ed079b0 feat(core): show confirmation dialog before rebooting 2022-06-01 14:50:59 +02:00
Ondrej Mikle
60db3e3e52 fix(core/bootloader): do not wait for touch if we know we are staying in bootloader 2022-06-01 14:50:59 +02:00
Ondrej Mikle
49462dc283 chore(core/bootloader): bump over unreleased version 2022-06-01 14:50:59 +02:00
Ondrej Mikle
c563c987e1 feat(core): jump back and stay in bootloader for TT via reverse SVC call trampoline 2022-06-01 14:50:59 +02:00
Pavol Rusnak
6589f020c6 fix(legacy,core): use sat/vB only for segwit and sat/B otherwise
[no changelog]
2022-05-30 10:51:47 +02:00
grdddj
5671bd037b chore(core): add type hints to emu.py 2022-05-25 16:12:47 +02:00
Martin Novak
85f0d3a741 feat(core,legacy): show fee rate when signing transaction 2022-05-25 14:43:45 +02:00
David Misiak
a1eaa465aa chore(cardano): remove legacy types 2022-05-23 11:08:52 +02:00
Ondřej Vejpustek
a198b390ff fix(legacy,core): fix size of secp256k1-zkp context
[no changelog]
2022-05-20 17:29:07 +02:00
grdddj
14a0bc13ce chore(docs): mention that .mako files are rendered by make templates
[no changelog]
2022-05-19 14:09:16 +02:00
grdddj
6dc4426151 feat(ui): setup homescreen and label for model R
[no changelog]
2022-05-19 14:09:16 +02:00
Martin Milata
c5f1bec474 Merge branch 'release/22.05' 2022-05-18 12:43:53 +02:00
matejcik
187ca8ad50 feat(core/rust): List::from_iter
[no changelog]
2022-05-17 15:56:26 +02:00
matejcik
b3b3e0efa4 tests(core/rust): ability to set up MicroPython env for testing
warning: super hacky!
[no changelog]
2022-05-17 15:56:26 +02:00
Ondřej Vejpustek
db0da196a8 chore(vendor): update secp256k1-zkp to latest 2022-05-16 16:23:18 +02:00
Martin Milata
c257a8a687 fix(core/ui/rust): painting of overlapping Maybe<T> components
[no changelog]
2022-05-16 13:54:43 +02:00
Martin Milata
b5dfda6a1d fix(core/rust/ui): support longer PIN
[no changelog]
2022-05-16 13:54:43 +02:00
Martin Milata
31e63f688e fix(core/rust/ui): implement warning for PIN dialog
[no changelog]
2022-05-16 13:54:43 +02:00
Martin Milata
3dcdffe203 refactor(core/rust/ui): emit event when component tree is initialized
[no changelog]
2022-05-16 13:54:43 +02:00
Martin Milata
7b5c618576 refactor(core/rust/ui): erase button clears PIN after 2s
[no changelog]
2022-05-16 13:54:43 +02:00
Martin Milata
e58736f746 feat(core/rust/ui): show PIN digits when touched
[no changelog]
2022-05-16 13:54:43 +02:00
Dusan Klinec
5e6582a3fe feat(xmr): add support for HF15, BP+ 2022-05-16 12:37:24 +02:00
Dusan Klinec
14e08ca9db fix(xmr): remove 8192B from firmware image so it can fit to the memory
- old BP GI, HI constants are shortened to reduce firmware size
2022-05-16 12:37:24 +02:00
Dusan Klinec
25d32a8144 feat(xmr): implement bp+, refactor, code cleanup
- implement BulletProof plus verifier and prover
- use bulletproof exception to signalize proof generation failed and should be tried again. More robust, fixes bug that was not triggered yet (return tuple did not work properly in all situations)
- precomputed 2**i vector is removed as it can be easily computed
- BP code cleanup, minor optimizations, comments
2022-05-16 12:37:24 +02:00
matejcik
0c1eb0c30d feat(core/tools): support @overloads in generated mocks
[no changelog]
2022-05-16 12:37:24 +02:00
Dusan Klinec
98ec1fb067 chore(core/monero): update test binary to newest version
[no changelog]

Co-authored-by: Martin Milata <martin@martinmilata.cz>
2022-05-16 12:37:24 +02:00
matejcik
221a7c9973 fix(core): drop support for __slots__ from obj_eq / obj_repr
__slots__ are unsupported in micropython

[no changelog]
2022-05-16 12:37:24 +02:00
Dusan Klinec
33c174491f refactor(core/monero): Monero code cleanup
* remove support for HF12 and below
* remove MLSAG support
* clean up monero cryptography naming
* get rid of "optional first argument" pattern, in favor of mandatory argument that is allowed to be None
  (and fix several bugs related to this feature)

Co-authored-by: grdddj <jiri.musil06@seznam.cz>
Co-authored-by: Martin Milata <martin@martinmilata.cz>
Co-authored-by: matejcik <ja@matejcik.cz>
2022-05-16 12:37:24 +02:00
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
grdddj
feb96c84b0 chore(core/rust): use clippy for all features 2022-05-16 10:49:04 +02:00
tychovrahe
55bfab3976 build(core): skip bootloader and boardloader compilation for Model 1 2022-05-10 16:49:23 +02:00
tychovrahe
8a092bde21 feat(core): add smaller loader for model R 2022-05-10 16:49:23 +02:00
tychovrahe
bd476769cc feat(core): add reset state on display clear on model R. Added to rest of the models as noop. 2022-05-10 16:49:23 +02:00
tychovrahe
58041036f5 feat(core): set colors for monochromatic displays 2022-05-10 16:49:23 +02:00
tychovrahe
0e778cf16d fix(core): fix display_icon function - incorrect boundaries checks 2022-05-10 16:49:23 +02:00
tychovrahe
f7a3aad9bd feat(core): initial Model R display implementation with framebuffer 2022-05-10 16:49:23 +02:00
tychovrahe
936c84bac6 feat(core): added button support for Model R 2022-05-10 16:49:23 +02:00
grdddj
7804893179 feat(core/rust): create model_tr feature
Make event.rs shared among all features, under src/ui/event.rs.

[no changelog]
2022-05-06 11:44:52 +02:00
grdddj
12da7f301d feat(core): allow for model R in firmware build
As model R will run on the same computational hardware as model T,
memory_R.ld is just a symbolic link to memory_T.ld.

[no changelog]
2022-05-06 11:44:52 +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
692ea1415e chore(core): bump version to 2.5.2
[skip_ci]
2022-05-04 12:09:14 +02:00
Martin Milata
85a26d2c95 docs(core): changelog for 2.5.1 2022-05-03 23:00:25 +02:00
Martin Milata
29bab9e8a4 chore(common): update chains and tokens 2022-05-03 23:00:25 +02:00
Andrew Kozlik
d16b44bad6 feat(core): Verify signatures of all original inputs in replacement transactions. 2022-05-03 22:14:40 +02:00
Andrew Kozlik
9bce153623 feat(core): Warn about unverified external inputs. 2022-05-03 22:14:40 +02:00
Andrew Kozlik
b1c6b42201 fix(core): Stricter Bitcoin transaction checks. 2022-05-03 22:14:40 +02:00
matejcik
e47bcee4a4 fix(core): streamline progress animation disabling 2022-05-03 19:00:04 +02:00
matejcik
37c61c1381 feat(core): implement firmware dumping 2022-05-03 19:00:04 +02:00
Andrew Kozlik
485ee6e209 feat(core): Show progress in GetFirmwareHash. 2022-05-03 19:00:04 +02:00
Andrew Kozlik
822b1c344f feat(core): Return fw_vendor in firmware Features message. 2022-05-03 19:00:04 +02:00
Andrew Kozlik
1da446a8fb refactor: Move flash_init to emulator main. 2022-05-03 19:00:04 +02:00
Andrew Kozlik
106ab65e21 feat(core): Implement GetFirmwareHash message. 2022-05-03 19:00:04 +02:00
Andrew Kozlik
6fe2d76dc1 feat(common): Add GetFirmwareHash message. 2022-05-03 19:00:04 +02:00
Tomas Krnak
e166aef820 test(core): add test for zip244 2022-05-02 16:07:31 +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
Tomas Krnak
670d11d627 feat(core): add tx argument to create_sig_hasher method 2022-05-02 16:07:31 +02:00
Pavol Rusnak
a411a964e1 fix(core): re-enable passing of TREZOR_EMULATOR_RASPI flag
to re-enable build of Emulator for Raspberry Pi with a display

related to commit daf0d77 which removed the functionality from the makefile
but we missed that there is now no way how to pass the flag to emit the #define

[no changelog]
2022-04-29 13:55:11 +02:00
Martin Milata
18c8304339 fix(core): leftover TREZOR_MODEL defines
[no changelog]
2022-04-28 16:47:22 +02:00
Pavol Rusnak
8f1d33d5f9 build(core,legacy): remove gcc, use cc instead of gcc
for firmware builds we still use arm-none-eabi-gcc via $(PREFIX)gcc

[no changelog]
2022-04-27 15:48:14 +02:00
TychoVrahe
7912a7d0d3
build(core,storage): fix conditional compilation for different Trezor models
* build(core,storage) - Fix conditional compilation for different trezor models

* build(core) - Rename MODEL_* macro to TREZOR_MODEL_*, remove the original TREZOR_MODEL macro (replaced by conditional compilation for QSTR generation)

* build(core) - fixed missing TREZOR_MODEL to TREZOR_MODEL_x changes

[no changelog]
2022-04-26 13:47:40 +02:00
Martin Milata
49dbc92782 fix(core/ui): add missing sources to build
[no changelog]
2022-04-19 17:35:15 +02:00
tychovrahe
0a735ead1e build(core) - Move comments to separate lines to avoid spaces being added to the value 2022-04-13 17:26:14 +02:00
Ondřej Vejpustek
8356d0a572 fix(crypto): use zero auxiliary data in BIP340 2022-04-12 16:22:42 +02:00
matejcik
a9b46f0249 fix(core/rust): be more defensive about strings coming in from uPy 2022-04-11 16:49:58 +02:00
matejcik
8dd7a22f8b refactor(core/rust): disallow creating byte buffers from &str 2022-04-11 16:49:58 +02:00
matejcik
32c3320f07 refactor(core/rust): pass around &str instead of [u8] in most places 2022-04-11 16:49:58 +02:00
matejcik
785dc7f4d7 feat(core/rust): introduce StrBuffer
it is a variant of Buffer specifically for accepting python `str`
2022-04-11 16:49:58 +02:00
Ondrej Mikle
2ced50ed16 fix(core): update JLink command line flashing parameters
[no changelog]
2022-04-11 12:26:01 +02:00
Martin Milata
1f612580f7 feat(core): enable UI tests for redesigned UI
[no changelog]
2022-04-07 17:58:41 +02:00
Martin Milata
2f987c3c5e refactor(core/ui): remove dependencies on old layouts
[no changelog]
2022-04-07 17:58:41 +02:00
Martin Milata
2a3f0c16bd ci(monero): update test executable, enable more tests 2022-04-07 16:28:12 +02:00
Martin Milata
38f4ab0983 feat(core/rust/ui): return Layout results as singleton objects
[no changelog]
2022-04-04 13:32:07 +02:00
Martin Milata
4cf917c7cb build(core): fix TREZOR_EMULATOR_DEBUGGABLE
[no changelog]
2022-04-04 13:32:07 +02:00
Jan Pochyla
36829cfa8f feat(core/rust): Add obj_module! macro
[no changelog]

Co-authored-by: Martin Milata <martin@martinmilata.cz>
2022-04-04 13:32:07 +02:00
Martin Milata
30ec1802f4 chore(core): bump version to 2.5.1
[skip_ci]
2022-03-30 21:57:54 +02:00
Pavol Rusnak
9a8e257619 fix(core): fix SDL2 include path
[no changelog]
2022-03-29 12:22:11 +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
matejcik
61718aff49 feat(tools): make pyright_tool more user-friendly
[no changelog]

* passed in directory respects absolute and relative paths instead of
  working "from repository root"
* we don't require the enableTypeIgnoreComments to be set so both
  `pyright` and `pyright_tool` can work with the same config at the same
  time
* use click's magic functionality to deal with missing / unreadable /
  unwriteable files
* read the error results via a pipe, do not write to filesystem unless
  requested
* simplified logic regarding "test mode"/"dev mode"
* renamed `--log` to more typical `--verbose`
* use pathlib more extensively
2022-03-23 14:55:05 +01:00
Martin Milata
45276963c0 fix(core): fix timers for rust layouts
[no changelog]
2022-03-23 13:40:45 +01:00
Martin Milata
4eefaffac9 fix(core/rust/ui): recovery/passphrase keyboard fixes
[no changelog]
2022-03-23 13:40:45 +01:00
Martin Milata
efe25a6ab4 fix(core/rust/ui): pin keyboard tweaks
[no changelog]
2022-03-23 13:40:45 +01:00
Martin Milata
d51072b8c1 refactor(core/rust/ui): unhardcode screen size
[no changelog]
2022-03-23 13:40:45 +01:00
Jan Pochyla
801679bccf chore(core/rust): Add dynamic place system 2022-03-22 16:08:50 +01:00
David Misiak
915781bfb1 chore(cardano): update changelog and ui tests 2022-03-18 14:32:54 +01:00
David Misiak
fec4fa2257 refator(cardano): validate map key order in HashBuilderDict 2022-03-18 14:32:54 +01:00
David Misiak
a36fc6cadc fix(cardano): display tADA in testnet transactions 2022-03-18 14:32:54 +01:00
David Misiak
1f20c49536 feat(cardano): allow device-owned outputs in plutus txs 2022-03-18 14:32:54 +01:00
David Misiak
117c3c932f fix(cardano): update testnet protocol magic 2022-03-18 14:32:54 +01:00
David Misiak
962f689e8a feat(cardano): display tx id for plutus txs 2022-03-18 14:32:54 +01:00
David Misiak
f0e230642b fix(cardano): display reward addresses for withdrawals 2022-03-18 14:32:54 +01:00
David Misiak
9f9535abb3 feat(cardano): add key hash stake credentials 2022-03-18 14:32:54 +01:00
David Misiak
2262602967 feat(cardano): add support for plutus transactions 2022-03-18 14:32:54 +01:00
David Misiak
1388912762 fix(cardano): add map key canonical order validation 2022-03-18 14:32:54 +01:00
David Misiak
143af80aea fix(cardano): add input validation 2022-03-18 14:32:54 +01:00
David Misiak
48587d83fe feat(cardano): add support for output datum hash and script data hash 2022-03-18 14:32:54 +01:00
David Misiak
2b3a53a6ae feat(cardano): add support for network id in tx body 2022-03-18 14:32:54 +01:00
Pavol Rusnak
6052e71bbb fix(core): fix build with FEATURE_FLAGS.SECP256K1_ZKP=False
[no changelog]
2022-03-18 12:03:41 +01:00
matejcik
cdca0bad9e fix(core): do not drop cashaddr prefix for QR code
[no changelog]
2022-03-18 11:59:04 +01:00
Pavol Rusnak
edb87359eb feat(core): headless emulator implies disabled animations
[no changelog]
2022-03-18 11:58:04 +01:00
Andrew Kozlik
9e346b05da chore(core): Don't check fairness of mining fees in CoinJoin.
[no changelog]
2022-03-17 15:46:01 +01:00
Andrew Kozlik
94d1a49eea chore(core): Rework checking of CoinJoin parameters.
[no changelog]
2022-03-17 15:46:01 +01:00
Andrew Kozlik
8be6689150 chore(common): Rework AuthorizeCoinJoin message parameters.
[no changelog]
2022-03-17 15:46:01 +01:00
Andrew Kozlik
556e8a147a chore(core): Make CoinJoin checks more lenient.
[no changelog]
2022-03-17 15:46:01 +01:00
Andrew Kozlik
605e128ca0 chore(core): Simplify path warning UI. 2022-03-17 09:44:03 +01:00
Andrew Kozlik
94fa6d2515 feat(core): Guess weight of unverified external inputs. 2022-03-17 09:44:03 +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
grdddj
b9858f00c5 chore(tools): simplify build_protobuf file sources creation 2022-03-04 11:42:51 +01:00
grdddj
3d505874aa feat(ci): create pyright tool and include it in CI
[no changelog]
2022-03-02 15:43:50 +01:00
matejcik
db9f89ed4e chore(core): update Bitcoin testcases to use valid prevtxes
[no changelog]

Co-authored-by: grdddj <jiri.musil06@seznam.cz>
2022-02-28 15:45:29 +01:00
matejcik
bbf286e050 fix(core/debug): only wait for layout when _enabling_ watch_layout 2022-02-21 14:37:25 +01:00
matejcik
390411098a build(core): enable ui_debug for non-frozen emulator 2022-02-18 11:27:23 +01:00
matejcik
59b5f48dc1 build(core): fix echo invocation for dash 2022-02-18 11:27:23 +01:00
Jan Pochyla
4c027a688c chore(core/rust): Simplify LayoutObj 2022-02-18 11:27:23 +01:00
Jan Pochyla
2b6f1a4d5c chore(core/rust): Use MultiTapKeyboard in passphrase 2022-02-17 15:17:11 +01:00
Jan Pochyla
3c337723b2 chore(core/rust): Add mnemonic keyboards 2022-02-17 15:17:11 +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
Pavol Rusnak
b9bbd5fcd7 chore: update dependencies
[no changelog]

Co-Authored-By: Martin Milata <martin@martinmilata.cz>
2022-02-15 13:28:03 +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
Andrew Kozlik
473657fd44 chore(core): Tweak validation of pre-authorized GetOwnershipProof.
In pre-authorized GetOwnershipProof requests ensure that the commitment data
starts with a length-prefixed name of the CoinJoin coordinator.

[no changelog]
2022-02-11 13:56:27 +01:00
Martin Milata
80655747d0 test(core/rust/ui): pagination unit test
[no changelog]
2022-02-10 14:57:42 +01:00
Martin Milata
ab0eef5de0 fix(core/rust/ui): adjust spacing for confirm_action
[no changelog]
2022-02-10 14:57:42 +01:00
Martin Milata
5378492ea9 chore(core/rust): wireframe rendering for ui debugging
[no changelog]
2022-02-10 14:57:42 +01:00
Martin Milata
10650af1fa refactor(core/rust/ui): paragraphs breaking
Also fix corner case.

[no changelog]
2022-02-10 14:57:42 +01:00
Martin Milata
b5da6dc911 refactor(core/rust): geometry/display API improvements
[no changelog]
2022-02-10 14:57:42 +01:00
Martin Milata
f2b8822d76 refactor(core): improve build-time option for old/new UI
[no changelog]
2022-02-10 14:57:42 +01:00
Martin Milata
b64c69c3ff feat(core/rust/ui): implement confirm_action
[no changelog]
2022-02-10 14:57:42 +01:00
Martin Milata
6d1227d839 feat(core/rust/ui): SwipePage: add buttons, auto-disable scrolling
[no changelog]
2022-02-10 14:57:42 +01:00
Martin Milata
695d80bf54 refactor(core/rust/ui): uPy buffer support for TT buttons
[no changelog]
2022-02-10 14:57:42 +01:00
Martin Milata
f167a2bef2 feat(core/rust/ui): add model T title bar
[no changelog]
2022-02-10 14:57:42 +01:00
Martin Milata
c7b33e2bc0 feat(core/rust/ui): add new icons
[no changelog]
2022-02-10 14:57:42 +01:00
Martin Milata
b46901bc8b feat(core): add TT Hoves fonts, introduce medium variant
Co-authored-by: Pavol Rusnak <pavol@rusnak.io>

[no changelog]
2022-02-10 14:57:42 +01:00
matejcik
abc593d19a tests: drop skip_ui support 2022-02-08 16:34:54 +01:00
Jan Pochyla
d979efc3ca chore(core/rust): Try to simplify pagination a bit
[no changelog]
2022-02-08 15:40:37 +01:00
Martin Milata
8fb28e4af5 feat(core/rust): impl Paginate for Paragraphs
[no changelog]
2022-02-08 15:40:37 +01:00
Martin Milata
f29ccf6009 fix(core/rust): UI tweaks
[no changelog]
2022-02-08 15:40:37 +01:00
Martin Milata
48f29ee0b9 refactor(core/rust): return bounding box after laying out text
[no changelog]
2022-02-08 15:40:37 +01:00
Martin Milata
7271606ca2 feat(core): smaller debug square on T1
[no changelog]
2022-02-08 15:40:37 +01:00
Martin Milata
bea696dfc9 feat(core/rust): Paginated for T1
[no changelog]
2022-02-08 15:40:37 +01:00
Martin Milata
19b2358084 refactor(core/rust): T1 title bar
[no changelog]
2022-02-08 15:40:37 +01:00
Martin Milata
7f224ab36d refactor(core/rust): model-agnostic Paginated
[no changelog]
2022-02-08 15:40:37 +01:00
matejcik
c236dfc814 style(core): type object doesn't have __slots__ 2022-02-08 14:27:23 +01:00
matejcik
a1c62098e9 fix(core/ethereum): implement hold-to-confirm for eip1559 transactions 2022-02-08 14:27:23 +01:00
grdddj
5d76144ef5 chore(common): always use resolve() when accessing parent of the Path
[no changelog]
2022-02-07 14:05:27 +01:00
Jan Pochyla
a3c79bf4f7 feat(core/rust): Add Paginated component 2022-02-01 10:51:02 +01:00
Jan Pochyla
a7a305d34d fix(core/rust): Fix request_complete_repaint for components without any Child descendants 2022-02-01 10:51:02 +01:00
Jan Pochyla
129363f080 feat(core/rust): Add Trace to Paragraph[s], improve size calculation 2022-02-01 10:51:02 +01:00
Jan Pochyla
d2c8c66385 feat(core/rust): First shot at Paragraphs API 2022-02-01 10:51:02 +01:00
Jan Pochyla
8c47b94b79 feat(core/rust): Add experimental LinearLayout 2022-02-01 10:51:02 +01:00
Jan Pochyla
3dd3d7f87b feat(core): Add HoldToConfirm example, improve Loader and animation frame support 2022-02-01 10:51:02 +01:00
Jan Pochyla
117a0bd518 feat(core): Add preliminary anim frame support 2022-02-01 10:51:02 +01:00
Jan Pochyla
be3e99b96d feat(core): Add WiP Loader & generic Animation type 2022-02-01 10:51:02 +01:00
matejcik
87a7e94f5c feat(core/rust): add saturating multiplication by f32 to Duration 2022-02-01 10:51:02 +01:00
Andrew Kozlik
83686d1be2 chore(core): Add HashContextInitable protocol class. 2022-01-31 18:00:22 +01:00
Andrew Kozlik
f17a435cdf refactor(core): Rename bitcoin_varint to compact_size. 2022-01-31 18:00:22 +01:00
Andrew Kozlik
0e58218f5f feat(core): Implement Bitcoin payment requests. 2022-01-31 18:00:22 +01:00
Andrew Kozlik
d0c3a6a2fa chore(core): Add mac field to Address message.
[no changelog]
2022-01-31 18:00:22 +01:00
Andrew Kozlik
2ac3d0acb4 feat(core): Implement GetNonce command. 2022-01-31 18:00:22 +01:00
Andrew Kozlik
0959947a88 chore(common): Add GetNonce, Nonce and TxAckPaymentRequest message.
[no changelog]
2022-01-31 18:00:22 +01:00
Jan Pochyla
baffe8fdf3 chore(core/rust): Add int variant to tracing 2022-01-28 09:58:49 +01:00
Jan Pochyla
5b0686f09a chore(core/rust): Forbid unsafe in components
To be expanded to other modules.
2022-01-28 09:58:49 +01:00
Jan Pochyla
12deedf3f6 chore(core/rust): Add backlight fading fn 2022-01-28 09:58:49 +01:00
Jan Pochyla
a54ca9cb05 chore(core/rust): Add micropython::time::sleep 2022-01-28 09:58:49 +01:00
Jan Pochyla
334a143b76 chore(core/rust): Split FormattedText into separate mod 2022-01-28 09:58:49 +01:00
Jan Pochyla
d5a74a8614 chore(core/rust): Rename Text to FormattedText 2022-01-28 09:58:49 +01:00
Jan Pochyla
39263144b7 chore(core): Various little improvements in Rust UI 2022-01-28 09:58:49 +01:00
Jan Pochyla
998210d569 feat(core): Add Instant and Duration types 2022-01-28 09:58:49 +01:00
grdddj
8524f4b6ba feat(ui): InfoConfirm layout accepting DebugLinkDecision
[no changelog]
2022-01-27 13:15:04 +01:00
Andrew Kozlik
ba4f046d6f feat(common): Add INFO button to DebugLinkDecision.
[no changelog]
2022-01-27 13:15:04 +01:00
Pavol Rusnak
37bd121394 chore(core/embed): check for negative values in trezor_get_uint
[no changelog]
2022-01-26 16:22:50 +01:00
Martin Milata
98b1159b0b Merge branch 'release/22.01'
Conflicts:
	core/src/apps/ethereum/tokens.py
2022-01-19 15:24:51 +01:00
Andrew Kozlik
ebc07fd6db ci: Suppress libSDL memory leaks.
[no changelog]
2022-01-19 15:22:03 +01:00
Andrew Kozlik
49ae8848db fix(core): Fix memory leaks in emulator.
[no changelog]
2022-01-19 15:22:03 +01:00
Andrew Kozlik
39b64b8569 fix(core): Fix stack-use-after-scope in display.c.
[no changelog]
2022-01-19 15:22:03 +01:00
Martin Milata
e3541997f0 ci(core): run nightly device tests with AddressSanitizer
[no changelog]
2022-01-19 15:22:03 +01:00
Pavol Rusnak
4a71d15b1d chore(core/embed): refactor trezor_obj_get_uint64 into trezorobj.h
[no changelog]
2022-01-19 11:16:47 +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
Andrew Kozlik
88a08e3512 chore(core): Increase maximum CoinJoin coordinator name length to 36 (2 lines). 2022-01-10 11:14:36 +01:00
matejcik
e20879189f style(core): remove old-style annotations (Set, Tuple, Union) 2022-01-07 21:41:17 +01:00
matejcik
5e1dce35b3 style(core): remove unused type:ignore comments 2022-01-07 21:41:17 +01:00
matejcik
80f6463799 style(core): define obj_eq and obj_repr so that they pass type-check 2022-01-07 21:41:17 +01:00
matejcik
456959545c docs(core): add changelog for type-checking 2022-01-07 21:41:17 +01:00
matejcik
228c4db646 style(core): improve types in rlp.py 2022-01-07 21:41:17 +01:00
matejcik
8d8cfd6692 build: fully replace mypy with pyright
[no changelog]
2022-01-07 21:41:17 +01:00
matejcik
45787307ca style(core): support AnyStr in all hash function arguments 2022-01-07 21:41:17 +01:00
matejcik
dec89ea59e refactor(core): convert if/elif chains to if-chains
This way AST parsers won't get stack exceeded (because an elif counts as
an else { if {}} to an AST parser apparently?) and so automated tools
will like tokens.py and friends.
2022-01-07 21:41:17 +01:00
matejcik
c3f2db3be5 refactor(core): improve type signature of bech32.convertbits 2022-01-07 21:41:17 +01:00
grdddj
9fc5bb546b style(core): full pyright-based type-checking
Changes many fields to required -- as far as we were able to figure out,
signing would fail if these fields aren't provided anyway, so this
should not pose a compatibility problem.

Co-authored-by: matejcik <ja@matejcik.cz>
2022-01-07 21:41:17 +01:00
matejcik
9c5945a888 chore(core): add fake typing module (not included in build) 2022-01-07 21:41:17 +01:00
matejcik
1bfaec10e9 build(core): rewrite build_mocks with pathlib, add symlinks to ../mocks 2022-01-07 21:41:17 +01:00
matejcik
bda1fa9912 build(core): exclude all "from typing" imports from build 2022-01-07 21:41:17 +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
Pavol Rusnak
b0e0280465 chore: drop obsolete fw_vendor_keys field from Features
[no changelog]
2022-01-03 14:23:58 +01:00
Pavol Rusnak
35d40cc164 fix(core): change logic of vendor header comparison
Previously we checked whether the current vendor header and
the new vendor header are the same by comparing the embedded keyset.

What originally looked like a good idea is not that good, because
this disallows us from ever changing the vendor header signing keys
without causing erasure of the storage during the version update.

This commit fixes that by changing the logic to comparing just the
vendor string.

Change of function names is purely cosmetic:
* vendor_keys_hash -> vendor_header_hash
* check_vendor_keys_lock -> check_vendor_header_lock
2022-01-03 14:23:58 +01:00
Martin Milata
3f12742669 chore(common): update coin support status 2021-12-28 12:42:43 +01:00
Martin Milata
c0dbcf37e4 chore(common): update chains and tokens 2021-12-28 12:42:43 +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
Alisina Bahadori
77ab865386 feat(legacy): Implement EIP-712 signing 2021-12-19 20:36:30 +01:00
Carlosbogo
dd1240ef53
docs: update links in changelogs (#2013)
fixes #2011
2021-12-17 14:53:21 +01:00
Pavol Rusnak
56f0e2c5de
fix(core): add missing include
we were using `FILE` and `fprintf` without including the stdio header
2021-12-14 19:57:21 +01:00
Pavol Rusnak
30a77a76bc
chore(legacy): rename MEMORY_PROTECT flag to PRODUCTION to match core naming (#2003) 2021-12-12 15:45:10 +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
Martin Milata
1734957685 build(core): update rust edition to 2021
[no changelog]
2021-12-07 17:12:43 +01:00
Andrew Kozlik
ef5994d9f3 feat(core): Support ownership proofs for Taproot addresses. 2021-12-06 18:23:48 +01:00
Martin Milata
e9fd1fc49f build(core/emulator): build with -fPIE
Otherwise "cargo test" fails with errors like:

   Compiling trezor_lib v0.1.0 (embed/rust)
error: linking with `cc` failed: exit status: 1
  |
  = note: ld: build/unix/rust/debug/build/trezor_lib-a046f8e3db087595/out/libcore_lib.a(obj.o): relocation R_X86_64_32S against `.rodata.types.1' can not be used when making a PIE object; recompile with -fPIE
2021-12-06 16:25:59 +01:00
Martin Milata
38c526719c chore(core): bump version to 2.4.4
[skip_ci]
2021-12-01 14:45:47 +01:00
matejcik
949dfe1f5d docs(core/cardano): add derivation scheme docs 2021-11-29 13:34:01 +01:00
Ondřej Vejpustek
f664734060 test(core): add unit tests for bip340 2021-11-26 20:16:59 +01:00
Ondřej Vejpustek
046beb4fde test(core): fix secp256k1 unit tests 2021-11-26 20:16:59 +01:00
Martin Milata
7cc9f13605 refactor(core/rust): allow model_t1 and model_tt at once
[no changelog]
2021-11-24 15:36:34 +01:00
Martin Milata
52f719ad81 ci: add core unit test t1
[no changelog]
2021-11-24 15:36:34 +01:00
Martin Milata
afd7cb3b01 feat(core/rust): add example layout for T1
[no changelog]
2021-11-24 15:36:34 +01:00
Martin Milata
4d60c10330 feat(core/rust): add support for T1 UI
[no changelog]
2021-11-24 15:36:34 +01:00
Martin Milata
3c49ef2f62 feat(core/rust): exposing vararg functions to uPy
[no changelog]
2021-11-24 15:36:34 +01:00
Ondrej Mikle
219e08d81e build(core): keep bootloader image even for non-production builds
[no changelog]
2021-11-23 16:29:38 +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
Martin Milata
aa3784f726 build(core): place secp256k1-zkp in FLASH2 to make space for bootloader
[no changelog]
2021-11-23 14:51:11 +01:00
Martin Milata
d656f88572 style(all): reformat with clang-format 13.0 2021-11-19 10:54:31 +01:00
Ondřej Vejpustek
ad38d8e324 refactor(crypto,core): make zkp_context_init() return status 2021-11-18 19:05:40 +01:00
Ondřej Vejpustek
f918cf9a27 fix(core): fix typos in modtrezorcrypto-bip340.h 2021-11-18 19:05:40 +01:00
Ondřej Vejpustek
3612620268 build(crypto,core): make secp256k1-zkp context as small as possible 2021-11-18 19:05:40 +01:00
Andrew Kozlik
221977ad9d chore(core): Convert SIGHASH_* consts to SigHashType enum. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
aaceb5bcc6 chore(core): Remove USE_SECP256K1_ZKP_BIP340 build option. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
ae35086bb9 refactor(core): Rename Hash143 to SigHasher and replace preimage_hash() with two functions. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
398cea8f40 test(core): Add unit tests for BIP-341 signature hash. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
03b1b3bc6b feat(core): Show path warning for SignMessage. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
ef2ad57ec8 fix(core): Fix CoinJoin approval check.
After fixing the TxWeightCalculator the approver needs to account for the
weight of the coordinator's output.
2021-11-13 13:33:46 +01:00
Andrew Kozlik
56ac799626 feat(core): Support external inputs in TxWeightCalculator. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
f9f0b517e2 feat(core): Support Taproot in TxWeightCalculator. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
a635876807 test(core): Add multisig unit tests for TxWeightCalculator. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
9b579094c0 fix(core): Fix TxWeightCalculator.
- Refactor TxWeightCalculator to count inputs and outputs itself.
- Fix witness data weight by adding the weight of the witness stack item count
  for each input in segwit transactions and removing the weight of the
  nonsensical extra inputs count.
- Get multisig pubkey count from multisig.nodes or multisig.pubkeys like in
  multisig_get_pubkeys().
- Fix size of multisig script length encoding in segwit (varint vs. OP_PUSH).
- Improve comments.
2021-11-13 13:33:46 +01:00
Andrew Kozlik
a5bd1643fc fix(core): Fix OP_PUSH writing. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
7653efb415 chore(core): Disable Taproot for altcoins. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
c0f853dc78 chore(core): Disable ownership proof generation for Taproot. 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
381e8bc85a feat(core): Implement the BIP-341 common signature message computation. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
99e4ed6f42 chore(core): Support script_pubkey parameter for Bitcoin inputs. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
630c06e782 feat(core): Support Taproot scripts. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
68ad1b07d2 feat(core): Recognize Taproot inputs. 2021-11-13 13:33:46 +01:00
Pavol Rusnak
57fddcfd9d feat(core): recognize Taproot change-outputs 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
Pavol Rusnak
6406f0640d feat(core): introduce PATTERN_BIP86 to keychain 2021-11-13 13:33:46 +01:00
Andrew Kozlik
ae41f7dec8 fix(core): Fix bip340 module build. 2021-11-13 13:33:46 +01:00
Andrew Kozlik
59c0f4383d feat(core): Add key tweaking functions to trezorcrypto.bip340. 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
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
Andrew Kozlik
c2f1850abb feat(common): Add no_script_type option to SignMessage. 2021-11-10 17:35:57 +01:00
matejcik
0870befe58 docs: add changelogs 2021-11-10 13:57:57 +01:00
matejcik
c38efaa9a5 chore: make bitcoin-only checker happy 2021-11-10 13:57:57 +01:00
matejcik
72924a016f tests(core): add unit tests for Icarus and Icarus-Trezor, fix failing tests 2021-11-10 13:57:57 +01:00
matejcik
10e338e005 feat(core/cardano): allow derivation type selection 2021-11-10 13:57:57 +01:00
matejcik
f6f52445bd feat(core/cardano): support Icarus, Icarus-Trezor, and Ledger 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
f818f4bc23 feat(core): derive Cardano seed together with normal seed, if requested 2021-11-10 13:57:57 +01:00
matejcik
387466e073 refactor(core): separate Cardano cryptography into its own module 2021-11-10 13:57:57 +01:00
matejcik
eacaffd079 fix(core/ethereum): use built-in ethereum_pubkeyhash() in get_address 2021-11-10 13:57:57 +01:00
matejcik
faa807f995 feat(core): show progress for SLIP39 derivation
fixes #1842
2021-11-10 13:57:57 +01:00
matejcik
8caac218ec feat(core/cardano): indicate whether Cardano seed should be derived 2021-11-10 13:57:57 +01:00
matejcik
bc75d05772 chore(common/defs/fido): add coinbase u2f
[no changelog]
2021-11-08 15:55:01 +01:00
Pavol Rusnak
a3b83685ef fix(core): fix emulator build on Apple Silicon
[no changelog]
2021-11-08 11:00:04 +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
Martin Milata
1979bcc39c chore(common): bring back eth:xDAI 2021-11-02 15:05:14 +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
grdddj
082b7ecd91 feat(core): plural function supports "key/keys" string
Previously function did not work for words ending with "y" and vowel before that
2021-11-02 14:27:01 +01:00
grdddj
ecc0f6c445 fear(core/ui): add should_show_more layout function
Also adding `hold` argument into confirm_blob function
2021-11-02 14:27:01 +01:00
grdddj
b1a3618c17 refactor(core/ethereum): rename address.py to helpers.py 2021-11-02 14:27:01 +01:00
Martin Milata
9a7e6c2900 chore(common): update chains and tokens 2021-11-01 16:43:02 +01:00
Andrew Kozlik
eb90efd914 chore(crypto,core,legacy): Add return code to hdnode_fill_public_key().
[no changelog]
2021-11-01 16:39:53 +01:00
Andrew Kozlik
34621a6b6d fix(crypto,core,legacy): Check private key validity when deriving public key.
[no changelog]
2021-11-01 16:39:53 +01:00
Martin Milata
ea1b7fbd54 chore(common): update chains and tokens 2021-11-01 13:58:48 +01:00
Martin Milata
87cc44e73a chore(common): update coins support status
[no changelog]
2021-11-01 13:58:48 +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
matejcik
1d72085b5c feat(core): implement conversion from timestamp to 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
matejcik
f88f568f1e feat(all): enable pylint globally
[no changelog]

with a whitelisted set of checks that can be expanded in the future if
we need something
2021-10-27 13:13:15 +02:00
matejcik
84c310a2ba chore(core): remove forgotten and unused apps/common/confirm.py
[no changelog]
2021-10-27 13:13:15 +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
Pavol Rusnak
7b2825e68e fix(common): rebrand brhodium to xrhodium 2021-10-26 12:01:08 +02:00
Ondřej Vejpustek
a924bd4dc6 build(core): do not link gen_context.o to trezor_lib 2021-10-25 14:41:28 +02:00
Ondřej Vejpustek
dbfc7d241f chore(vendor,crypto): bump version of secp256k1-zkp 2021-10-25 14:41:28 +02:00
Ondřej Vejpustek
29ce860d46 refactor(core,crypto): rename schnorr to BIP340 2021-10-25 14:41:28 +02:00
Ondřej Vejpustek
15bb085509 refactor(core,crypto): make public key derivation functions return
status
2021-10-25 14:41:28 +02:00
Ondřej Vejpustek
172f399b29 style(core): fix style 2021-10-25 14:41:28 +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
Pavol Rusnak
9e0cfa6783 fix(core): we don't need separate linker script for zkp 2021-10-25 14:41:28 +02:00
Pavol Rusnak
d505edaaa0 fix(core): set ECMULT_GEN_PREC_BITS = 4 for secp256k1_zkp
the setting configures size of precomputed static context

size = 64 * (1 << ECMULT_GEN_PREC_BITS) * (256 / ECMULT_GEN_PREC_BITS)

for ECMULT_GEN_PREC_BITS == 2 the size is 64 * 512 == 32 KB
for ECMULT_GEN_PREC_BITS == 4 the size is 64 * 1024 == 64 KB
for ECMULT_GEN_PREC_BITS == 8 the size is 64 * 8192 == 512 KB
2021-10-25 14:41:28 +02:00
Pavol Rusnak
0d6bc43fd5 feat(core): enable secp256k1-zkp 2021-10-25 14:41:28 +02:00
Pavol Rusnak
47e17aab4d fix(core): fix build on aarch64
by adding nlraarch64.c to SConscript.unix
2021-10-22 14:15:21 +02:00
Martin Milata
3882b89be9 fix(core/ethereum): ask before showing paginated data field 2021-10-19 17:13:28 +02:00
Martin Milata
e6c42b7fa6 fix(core/ui): fix off-by-one in in_area 2021-10-19 17:13:28 +02:00
Martin Milata
8eb4bcff29 feat(core/ui): allow text without header 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
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
ea0fb08fed feat(core): add witness version to encode_bech32_address() 2021-10-18 13:36:05 +02:00
Pavol Rusnak
dbc464750b feat(common): enable Taproot on Bitcoin 2021-10-18 13:36:05 +02:00
Pavol Rusnak
7e64ccbaf9 feat(core): add BIP-350 test cases to test_trezor.crypto.bech32 2021-10-18 13:36:05 +02:00
Pavol Rusnak
a45e103875 fix(core): remove 3 BIP-173 test cases from test_trezor.crypto.bech32
because they encode segwit program > 0 and these should no longer
be encoded with Bech32 but rather with Bech32m
2021-10-18 13:36:05 +02:00
Pavol Rusnak
9aa07c7f96 feat(core): update bech32.py to support Bech32m 2021-10-18 13:36:05 +02:00
Pavol Rusnak
ac4cb88184 feat(common): add taproot field to coin definitions
enable for Bitcoin Testnet and Bitcoin Regtest
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
Pavol Rusnak
4ed9f00c73 feat(common): add support for Taproot input and output scripts 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
amadejpapez
85ba7c12ba style(all): use f-strings for formatting
[no changelog]
2021-10-13 11:53:17 +02:00
matejcik
32be2c09b9 feat(core): enable f-strings for micropython
[no changelog]
2021-10-13 11:53:17 +02:00
gabrielkerekes
4aaf6db9a2 chore(cardano): update docs, changelog and ui test 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
gabrielkerekes
54909681a8 feat(cardano): add support for 1854 and 1855 path roots 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
Jan Pochyla
901580817d chore(core/rust): fixes and formatting
[no changelog]
2021-10-07 15:01:55 +02:00
Jan Pochyla
5eefcffc7c chore(core): prepare for fuzzing targets
First, we change the Protobuf definition includes to use an exact path relative to our crate's directory, instead of the OUT_DIR. This fixes build when a combination of stable and nightly toolchains is used (nightly is needed for the fuzzing targets).

Another change is a slight fix in the panic handler conditional compilation. Fuzzing is using the crate with `features = ["test"]`, but doesn't turn on the `test` cfg.

[no changelog]
2021-10-07 15:01:55 +02:00
Jan Pochyla
2703d714c2 feat(core): add Rust UI components, layouts, text rendering
[no changelog]
2021-10-07 15:01:55 +02:00
Ondrej Mikle
b905ac04ef fix(core/emulator): Use -Og instead of -O0 in debug emulator builds to avoid segfault
[no changelog]
2021-10-05 14:10:47 +02:00
Pavol Rusnak
b03b688f2d fix(core): avoid accidental build with broken stack protector (boardloader) 2021-09-29 12:48:31 +02:00
Ondrej Mikle
a85d2483ff chore(legacy & core): changelogs added 2021-09-27 15:42:29 +02:00
Ondrej Mikle
0b077fea8a fix(core & legacy): explicit compiler versions 2021-09-27 15:42:29 +02:00
Ondrej Mikle
e982181148 style(core & legacy): buggy compiler checks 2021-09-27 15:42:29 +02:00
Ondrej Mikle
6ea4b7b211 fix(core & legacy): better styled compiler checks 2021-09-27 15:42:29 +02:00
Ondrej Mikle
6b849b1d4d fix(core & legacy): avoid accidental build with broken stack protector 2021-09-27 15:42:29 +02:00
matejcik
c30091b9c5 refactor(core/stellar): replace confirm_timebounds_stellar with confirm_properties 2021-09-24 10:30:19 +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
1b601b3e08 feat(common): strong typing for Stellar protobuf messages
BREAKING CHANGE: StellarAssetType is renamed to StellarAsset.
The name StellarAssetType is reused for the corresponding enum.

Enums are introduced in several other places. Their values correspond to
allowed values of (previously int) fields so this should not pose a
compatibility problem.

Many fields are now required. We believe that this should not pose a
compatibility problem, because all known interfaces to Stellar signing
actually accept Stellar XDR on input, whose required fields match the
protobuf schema.
2021-09-24 10:30:19 +02:00
Martin Milata
81e66cb024 style(core/rust): enable clippy lints
[no changelog]
2021-09-23 14:22:40 +02:00
Martin Milata
bd005e33df refactor(core): decouple T1 button handling from touch
[no changelog]
2021-09-23 12:30:13 +02:00
matejcik
d0efdfa715 fix(core/rust): enable "test" feature for Rust unit test 2021-09-21 12:43:31 +02:00
Jan Pochyla
2c8dec93a6 feat(core): Split unix main, link core obj into Rust test target 2021-09-21 12:43:31 +02:00
matejcik
7a17124b43 refactor(core/rust): do not rely too much on new_exception helpers 2021-09-21 12:43:31 +02:00
matejcik
5e452dc57c refactor(core/rust): propagate unsafety of raise_exception 2021-09-21 12:43:31 +02:00
matejcik
806beb77d2 feat(core/rust): improve catch_exception, make use of Rust 1.55 2021-09-21 12:43:31 +02:00
matejcik
795ed2d339 fix(core/rust): fix "unnecessary unsafe" warning
[no changelog]
2021-09-21 12:43:31 +02:00
matejcik
31de21718f feat(core/rust): introduce Obj.is_null()
[no changelog]
2021-09-21 12:43:31 +02:00
matejcik
b666895303 feat(core/rust): catch, handle and propagate uPy exceptions 2021-09-21 12:43:31 +02:00
matejcik
8abcb6f8cc chore(core/rust): allow unused macros
[no changelog]
2021-09-21 12:43:31 +02:00
Jan Pochyla
7c65f0357a feat(core/rust): Implement exception catching in Rust
chore(core): Add test for Rust exc catching

chore(core): Document exception catching in Rust

[no changelog]
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
7111702f00 chore(vendor): bump micropython to 1.16
Relevant micropython commits:
  647fa63f9c457b616b1b20fdd98403b681302680 stm32/softtimer: Support static soft timer instances.
2021-09-17 11:18:14 +02:00
Martin Milata
b062b95348 chore(vendor): bump micropython to 1.15
Relevant micropython commits:
  ad4656b861f94277bed9647ca176e662ce5119e3 all: Rename BYTES_PER_WORD to MP_BYTES_PER_OBJ_WORD.
  9fef1c0bde2f9642d383bd56aa112447384a84ba py: Rename remaining object types to be of the form mp_type_xxx.
  5fdf351178df9a18df624ae0f5947d8a5a6bce40 py/gc: Don't include mpconfig.h and misc.h in gc.h.
2021-09-17 11:18:14 +02:00
Martin Milata
d69b23e3c5 chore(core/emulator): ignore MICROPY_UNIX_COVERAGE
Seems to be micropython internal flag that hasn't been working in our
emulator for some time.

Relevant micropython commits:
  b9a35bebf75be53a817bf6341af14b882093e345 py/qstr.h: Remove QSTR_FROM_STR_STATIC macro.

[no changelog]
2021-09-17 11:18:14 +02:00
Pavol Rusnak
d153082c9c chore(vendor): bump micropython to 1.14
Relevant micropython commits:
  4559bcb4679e04e0a5e24030675676ff6a9803f2 unix: Make mp_hal_delay_ms run MICROPY_EVENT_POLL_HOOK.
2021-09-17 11:18:14 +02:00
Martin Milata
53e2573691 docs(core): fix dates in changelog 2021-09-16 18:41:06 +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
Martin Milata
a7a7570496 ci(core): enable rust unit tests
[no changelog]
2021-09-16 14:57:06 +02:00
Martin Milata
a007e062ab style(core): apply rustfmt
[no changelog]
2021-09-16 14:57:06 +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
e80077e0a4 feat(core/ethereum): enable type-checking for Ethereum app 2021-09-10 15:09:03 +02:00
matejcik
0c2863fc8d feat(core/ethereum): use TokenInfo object instead of tuples 2021-09-10 15:09:03 +02:00
matejcik
4b34e4c001 fix(core): allow AnyStr as parameter for unhexlify 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
96ed53cc1c refactor(core,legacy): remove Wanchain special handling
now that Wanchain has proper chainID and we don't need to detect it by
magic.

[no changelog]
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
cec1f39a90 chore(core, legacy): bump versions
[no changelog]
2021-08-31 12:55:37 +02:00
matejcik
9276b17023 fix(common): regenerate support data
[no changelog]

(cherry picked from commit eb34c0850e)
2021-08-27 13:40:20 +02:00
matejcik
eb34c0850e fix(common): regenerate support data
[no changelog]
2021-08-27 13:38:45 +02:00
Tomas Susanka
9a6451342a chore(core): generate Changelog 2021-08-26 14:52:52 +02:00
matejcik
174985619d chore(common): bump chains and tokens for release 2021-08-24 13:14:06 +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
gabrielkerekes
8e3bc39b56 chore(cardano): update and format README 2021-08-20 11:50:13 +02:00
gabrielkerekes
7c3b5c86a5 fix(cardano): forbid mixing paths from multiple accounts in a single transaction 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
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
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
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
725d1bd961 docs(core): add changelog entry 2021-08-04 15:03:11 +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
2a91052b02 refactor(core/ui): move altcoin and webauthn layouts to separate file
Also fix types.
2021-08-04 15:03:11 +02:00
Martin Milata
31052007ff refactor(core): enable mypy for apps.management 2021-08-04 15:03:11 +02:00
Martin Milata
e57027fc5c refactor(core): convert apps.management.change_wipe_code to layouts 2021-08-04 15:03:11 +02:00
Martin Milata
5a0ea3f146 refactor(core): convert apps.management.recovery_device to layouts 2021-08-04 15:03:11 +02:00
Martin Milata
312876ab67 refactor(core): convert apps.management.reset_device to layouts 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
9ab1891b22 feat(common): more required fields in messages-management
[no changelog]
2021-08-04 15:03:11 +02:00
matejcik
5dcb51458f chore(core/ui): drop no longer used confirm_proposals_tezos 2021-07-26 14:48:35 +02:00
matejcik
fcb5f88318 fix(core/bitcoin): nicer UI for ownership proofs 2021-07-26 14:48:35 +02:00
matejcik
b30c9f7584 refactor(core/stellar): use semantically appropriate layouts everywhere 2021-07-26 14:48:35 +02:00
matejcik
16b87e4d50 fix(core/stellar): fail cleanly when asset code has wrong length 2021-07-26 14:48:35 +02:00
matejcik
ad6976e01f refactor(core): use confirm_blob instead of confirm_hex in apps 2021-07-26 14:48:35 +02:00
matejcik
dcc38f5267 refactor(core/ui): replace confirm_hex, clarify API
Truncation options were removed.

Subtitle distinct from description was removed.

confirm_hex was replaced by confirm_blob. You should use confirm_blob
when displaying data that is not human readable and can be broken at any
character.

Also it is now possible to pass bytes, which are automatically converted
to hex.

For displaying addresses, a separate confirm_address is introduced,
which simply delegates to confirm_blob, but has a more limited
signature.

Analogously, there is confirm_text for text data (should maybe be used
in many places where we currently use confirm_metadata) and a
specialized confirm_amount.
2021-07-26 14:48:35 +02:00
matejcik
6d15e90ed3 refactor(core/ui): reorganize line width constants 2021-07-26 14:48:35 +02:00
matejcik
cb882df100 feat(core): in debug mode, dump contents of received protobuf messages
[no changelog]
2021-07-23 11:46:24 +02:00
Martin Milata
8da978981e perf(core): share wire buffer between wire and debuglink
[no changelog]
2021-07-22 15:12:22 +02:00
Martin Milata
582e1318c4 feat(core/emulator): support protobuf messages in memory dumps
[no changelog]
2021-07-22 13:31:11 +02:00
Andrew Kozlik
334103b089 refactor(core/crypto): Optimize DER encoding of signatures. 2021-07-22 10:54:49 +02:00
Andrew Kozlik
2964f2e855 refactor(core/cardano): Clean up variable_length_encode(). 2021-07-22 10:54:49 +02:00
Andrew Kozlik
97ca1e3341 chore(core): Add offset parameter to cbor.decode(). 2021-07-22 10:54:49 +02:00
Andrew Kozlik
7811204ed5 refactor(core/bitcoin): Use HashWriter in address derivation. 2021-07-22 10:54:49 +02:00
Andrew Kozlik
2c003052f5 refactor(core/bitcoin): Change CoinInfo.script_hash to be a HashContext. 2021-07-22 10:54:49 +02:00
Andrew Kozlik
27e6f35f78 refactor(core/bitcoin): Change scripts to use writer semantics. 2021-07-22 10:54:49 +02:00
Andrew Kozlik
8538f55edc refactor(core/bitcoin): Use global static buffer for Tx serialization. 2021-07-22 10:54:49 +02:00
Martin Milata
412d06fdfe docs(core+legacy): use towncrier for generating CHANGELOG.md
core/embed/boardloader/CHANGELOG.md
core/embed/bootloader/CHANGELOG.md
core/embed/bootloader_ci/CHANGELOG.md
legacy/intermediate_fw/CHANGELOG.md
2021-07-21 14:27:20 +02:00
Pavol Rusnak
d35071d732 docs(core+legacy): update changelogs to new format 2021-07-21 14:27:20 +02:00
Andrew Kozlik
7277a49047 fix(common): Add new rpId to Binance's FIDO definition. 2021-07-21 13:19:16 +02:00
Pavol Rusnak
f740515c85 fix(core,crypto): add more test cases from bip-173 2021-07-21 11:20:11 +02:00
Martin Milata
ceaf4da617 fix(core): explicitly refresh display on T1
[no changelog]
2021-07-20 22:00:42 +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
9a9b0eb052
fix(core): rename fw_or_type to image_type in keyctl-proxy to avoid confusion
part 2

somehow I did miss 3 more occurences
2021-07-18 23:11:09 +02:00
Martin Milata
0d251fc01a Merge branch 'release/21.07' 2021-07-16 14:34:20 +02:00
Pavol Rusnak
ff21ea3d5c fix(core): rename fw_or_type to image_type in keyctl-proxy to avoid confusion 2021-07-16 14:23:43 +02:00
Pavol Rusnak
cd9c4e478d docs(core): fix typo in keyctl-proxy help 2021-07-16 14:23:43 +02:00
Pavol Rusnak
0a951b8a77 fix(core): don't use format strings in keyctl-proxy 2021-07-16 14:23:43 +02:00
Pavol Rusnak
3d69ca1b1b chore(vendor): update nanopb to 0.4.5 2021-07-14 17:34:12 +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
matejcik
fe6c131b14 feat(core/emulator): build emulator with -DSTATIC=
This is perhaps a cleaner way to expose all relevant structures for
memory analysis.
2021-07-14 13:50:24 +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
matejcik
8e6a647e89 fix(core): do not send ButtonRequest on every paging event
partial revert of 54db2291f2 from #1671

(cherry picked from commit 1e1963f1ee)
2021-07-12 00:39:54 +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
Martin Milata
81869fc4b0 chore(core): bump version to 2.4.2
[skip_ci]
2021-07-08 13:38:29 +02:00
Martin Milata
f06a57237b style(core): trezorhal/random_delays.c 2021-07-07 14:39:24 +02:00
Martin Milata
01c1ae426f docs: add security fixes to changelogs 2021-06-30 18:32:58 +02:00
Andrew Kozlik
c067618828 fix(common): Fix incorrect SLIP-44 coin type for Bgold and SmartCash Testnets. 2021-06-30 18:25:58 +02:00
Andrew Kozlik
3e9f8a32ac fix(core): Fix insufficient BIP-32 path checks.
- Disable testnet coins from accessing Bitcoin paths.

- Restrict BIP-45 paths to Bitcoin and coins with strong replay protection.
2021-06-30 18:25:58 +02:00
Martin Milata
e67b3ab214 docs(core): changelog for 2.4.1
[skip_ci]
2021-06-30 18:21:56 +02:00
Pavol Rusnak
8cfa5da1ce
docs: fix typos in comments
[skip_ci]
2021-06-30 15:41:55 +02:00
Ondřej Vejpustek
24200e7424 fixup! fix(legacy): make RDI work on T1 2021-06-24 17:34:24 +02:00
Ondrej Mikle
daa94ac941 fix(legacy): make RDI work on T1 2021-06-24 17:34:24 +02:00
gabrielkerekes
cc14ffb3e3 docs(core): add changelog entries for Cardano 2021-06-24 11:09:32 +02:00
gabrielkerekes
db657615f4 fix(cardano): use OrderedMap for output tokens and withdrawals 2021-06-24 08:24:47 +02:00
gabrielkerekes
4e5772662c fix(cardano): don't allow duplicate withdrawals 2021-06-24 08:24:42 +02:00
gabrielkerekes
3cd2182b69 feat(core): introduce OrderedMap into CBOR serialisation
Items of an OrderedMap are included in CBOR as they come without sorting them in any way.
2021-06-24 08:22:39 +02:00
Ondřej Vejpustek
b8b0ae09d9 fix(core): use unprivileged shutdown where needed 2021-06-23 16:40:45 +02:00
Ondřej Vejpustek
5984fd6ad7 feat(core): jump to unprivileged mode after shutdown 2021-06-23 16:40:45 +02:00
Ondřej Vejpustek
40b4f679f9 feat(core): implement wrapper for svc_shutdown 2021-06-23 16:40:45 +02:00
Ondřej Vejpustek
311288407e docs(core): document shutdown_privileged 2021-06-23 16:40:45 +02:00
Ondřej Vejpustek
4968d7da53 feat(core): implement svc shutdown 2021-06-23 16:40:45 +02:00
Ondřej Vejpustek
cca9d4b1c4 refactor(core): rename shutdown to shutdown_privileged 2021-06-23 16:40:45 +02:00
Ondřej Vejpustek
7686eb355a fix(core): fix import of random delays 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
015c47d564 chore(core): export PropertyType to fix mypy errors 2021-06-23 11:51:18 +02:00