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

1848 Commits

Author SHA1 Message Date
cepetr
3b9dd55788 refactor(core/embed): introduce display_utils.c
[no changelog]
2024-01-26 11:30:40 +01:00
cepetr
cc6ed93b32 refactor(core/embed): move toif image routines
[no changelog]
2024-01-26 11:30:40 +01:00
cepetr
446c3b77b4 refactor(core/embed): move&rename display terminal functions
[no changelog]
2024-01-26 11:30:40 +01:00
cepetr
139701fb1a refactor(core/embed): move&rename display_font_xxx routines
[no changelog]
2024-01-26 11:30:40 +01:00
cepetr
3031ec5d87 refactor(core/embed): move&rename display_utf8_substr()
[no changelog]
2024-01-26 11:30:40 +01:00
tychovrahe
63ee6f2ad2 perf(core): change 4bpp font format to allow dma2d rendering
[no changelog]
2024-01-11 12:22:08 +01:00
tychovrahe
1c0da78536 chore(core): fix rust warnings and clippy errors
[no changelog]
2024-01-09 21:39:58 +01:00
grdddj
c2eaaaf8b5 fix(core): add missing semicolon into the passphrase entry for TS3 2024-01-03 14:51:56 +01:00
Pavol Rusnak
b0fd7223ea
Merge branch 'matejcik/prodtest-23-12' 2023-12-20 17:12:10 +01:00
matejcik
b21d1b1f50 chore(core/prodtest): bump version after release 2023-12-20 15:50:46 +01:00
matejcik
8f19767285 chore(core): include production-signed prodtest vendor header 2023-12-20 09:46:52 +01:00
tychovrahe
fd5bfbf115 refactor(core): improve flexibility of sd card and touch driver pin selection, display rotation and touch coords transformation
[no changelog]
2023-12-18 14:41:44 +01:00
tychovrahe
d15ee71279 refactor(core): add flexible HSE settings
[no changelog]
2023-12-18 14:41:44 +01:00
tychovrahe
2fa69c3c0d refactor(core): extract backlight pwm settings to board definition
[no changelog]
2023-12-18 14:41:44 +01:00
cepetr
6e1fe31e3f chore(core): optimize stack usage during blurring
[no changelog]
2023-12-18 10:01:30 +01:00
Andrew Kozlik
c1fa1c0cbc chore(core): Fix common name in emulator device certificate.
[no changelog]
2023-12-15 11:18:22 +01:00
Andrew Kozlik
fb80dd5a36 fix(core/prodtest): Fix Optiga metadata version information handling.
[no changelog]
2023-12-15 11:18:22 +01:00
Andrew Kozlik
8de2d8989d feat(core/prodtest): Check device certificate chain integrity using authority key identifier.
[no changelog]
2023-12-15 11:18:22 +01:00
Andrew Kozlik
a1be6f8aef fix(core/prodtest): Configure metadata correctly before checking device certificate.
[no changelog]
2023-12-15 11:18:22 +01:00
tychovrahe
d0a702eef4 fix(core): fix large area marquee rendering
[no changelog]
2023-12-14 17:35:27 +01:00
Andrew Kozlik
cbea765e38 feat(core/prodtest): Verify device certificate chain in CERTDEV WRITE.
[no changelog]
2023-12-08 12:30:28 +01:00
Andrew Kozlik
3a5aecf6cd feat(core/prodtest): Add SEC READ command.
[no changelog]
2023-12-08 12:30:28 +01:00
Martin Milata
18ccbcddd4 chore(core): bump version to 2.6.5
[no changelog]
2023-12-07 14:10:07 +01:00
gabrielkerekes
a8096652e0 refactor(core): make ethereum summary reusable for more coins
- and use it for Solana
2023-12-05 22:11:41 +01:00
grdddj
747fd17214 fix(core): correct action of left button in Ethereum summary
[no changelog]
2023-12-05 18:22:58 +01:00
grdddj
9a53ba9f44 fix(core): unify button requests in modify amount flow
[no changelog]
2023-12-04 13:15:57 +01:00
grdddj
9db8ff1fae fix(core): unify sent button requests in ETH send flow
Makes sure T2B1 will send the same ButtonRequests as T2T1.
Does it by splitting the Rust layout into two separate dialogs.

[no changelog]
2023-12-04 13:15:57 +01:00
Andrew Kozlik
d670a0bdfa feat(core): Fix malformed signatures from Optiga. 2023-12-01 00:09:17 +01:00
tychovrahe
a2f72b1055 feat(core): optimize boot time by drawing full logo sooner and shortening the enforced delay proportionally
[no changelog]
2023-11-30 16:46:04 +01:00
tychovrahe
7b442a2b20 fix(core): improve T2B1 homescreen checks
[no changelog]
2023-11-30 13:42:02 +01:00
matejcik
ba6cce2bbc fix(core/rust): make Toif constructor return a Result instead of Option
which is slightly more correct
2023-11-30 13:42:02 +01:00
matejcik
d674634c86 chore(core/rust): bump cstr_core, enable nightly features
So that cstr! can be used in const contexts. This is not critical but it's nice-to-have as long as we are on nightly anyway.
2023-11-30 13:42:02 +01:00
grdddj
4b87bc56d8 feat(core): set maximum number of chunkified lines to 4
[no changelog]
2023-11-27 16:03:16 +01:00
tychovrahe
47f8a430e6 refactor(core): remove residual usage of old flash api
[no changelog]
2023-11-22 11:45:54 +01:00
tychovrahe
c48c86d61f fix(core): add missing display_refresh calls in TT UI
[no changelog]
2023-11-22 10:26:50 +01:00
tychovrahe
c2de5506bc fix(core): add boundaries check for icon rendering (framebuffer variant)
[no changelog]
2023-11-22 10:26:50 +01:00
grdddj
1968599bbc fix(core): fix the chunkification of longer Cardano addresses in send flow
[no changelog]
2023-11-22 09:00:58 +01:00
Martin Milata
5725050be1 build(core): fix CI bootloader build for T2B1
[no changelog]
2023-11-14 18:37:03 +01:00
tychovrahe
bf2697a619 feat(core): compress embedded bootloader
[no changelog]
2023-11-14 13:25:00 +01:00
Martin Milata
1c69644fe0 build(core): add flag for disabling optiga on debug builds
[skip_ci]
2023-11-14 12:47:22 +01:00
Martin Milata
ebeea4a209 build(core): more deterministic bootloader_hashes.py
[no changelog]
2023-11-08 15:39:24 +01:00
Martin Milata
ba25084904 chore(core): add unsafe vendor header for T2B1
[no changelog]
2023-11-03 14:50:39 +01:00
Martin Milata
0db3d7c12c chore(core): update btconly vendor header for T2B1
[no changelog]
2023-11-03 14:50:39 +01:00
Martin Milata
c61e2293ad chore(core): bump version to 2.6.4
[no changelog]
2023-11-03 13:00:02 +01:00
Martin Milata
b0ca820983 chore(core): add signed vendor headers for TS3 2023-11-02 12:17:13 +01:00
matejcik
e43b57f499 chore(core): add btc-only vendor header 2023-11-02 12:17:13 +01:00
matejcik
43ffbadbb9 chore(core): regenerate T2B1 vendor headers 2023-11-02 12:17:13 +01:00
matejcik
1df7428359 chore(core): update T2B1 vendor header configuration 2023-11-02 12:17:13 +01:00
Martin Milata
a6600fc7e9 feat(core): include signed bootloaders 2.1.4
For T2B1 and T2T1.
2023-11-02 11:53:53 +01:00
matejcik
3a28ab4c11 feat(core): make lockscreen blank for T2B1
also allow soft-locking even when PIN is not set
2023-11-01 16:45:29 +01:00
matejcik
1e29ce9fb4 chore(core/bootloader): bump version after release 2023-11-01 13:46:50 +01:00
matejcik
0953d2f6aa docs(core/bootloader): changelog for 2.1.4 2023-11-01 13:46:50 +01:00
matejcik
297b2bade7 feat(core/bootloader_emu): add ILU support 2023-10-31 14:57:05 +01:00
matejcik
5ee05ff391 feat(core/bootloader_emu): add support for setting device variant 2023-10-31 14:57:05 +01:00
tychovrahe
10021bf364 chore(core): fix gen and style problems
[no changelog]
2023-10-31 13:32:20 +01:00
matejcik
c5817bed6d chore(core): embed QA bootloaders 2.1.4 2023-10-27 16:46:22 +02:00
Ondrej Mikle
a4079d0cc5 chore(core/bootloader): make cstyle check work 2023-10-27 16:41:56 +02:00
Ondrej Mikle
6658ad84d1 fix(core/bootloader): explicit casts on version compare to control signed/unsigned arithmetic mix 2023-10-27 16:41:56 +02:00
cepetr
02f34a2748 feat(core/bootloader): check firmware padding 2023-10-27 16:41:56 +02:00
cepetr
da7125f427 feat(core/bootloader): make firmware flashing more safe 2023-10-27 16:41:56 +02:00
cepetr
ba83a7e644 feat(core): introduce interaction-less upgrade 2023-10-27 16:15:15 +02:00
Martin Milata
9c5d3b4831 fix(core/ui): T2T1: nudge page_prev_ellipsis to the right
[no changelog]
2023-10-27 11:50:12 +02:00
Martin Milata
18d6b4d647 fix(core/ui): T2T1: update sign message layout 2023-10-26 18:29:52 +02:00
Martin Milata
9e33eb3e48 fix(core/ui): T2T1: display coinjoin icon on lockscreen
[no changelog]
2023-10-26 13:35:43 +02:00
grdddj
02ec0ac43c feat(core): support recipient address chunkification in Ethereum sign flow
[no changelog]
2023-10-25 11:49:43 +02:00
grdddj
37fcbceded feat(core): make middle-click unlock the device for T2B1
[no changelog]
2023-10-23 14:53:01 +02:00
tychovrahe
8a4f376f20 refactor(core): prepare fw for differently sized fw chunks
[no changelog]
2023-10-20 16:33:53 +02:00
tychovrahe
a16fbe6237 fix(core/prodtest): fix failing optiga communication
[no changelog]
2023-10-18 13:15:49 +02:00
Martin Milata
f26a2e909e fix(core/ui): wording in recovery flow
[no changelog]
2023-10-18 12:04:52 +02:00
Martin Milata
a353c35b78 fix(core/ui): draw hold-to-confirm loader over dialog title
[no changelog]
2023-10-16 13:18:50 +02:00
Martin Milata
d99e1eedd2 refactor(core/ui): clear display on rust side
[no changelog]
2023-10-16 13:18:50 +02:00
Martin Milata
d8e7c00087 refactor(core/ui): pagination and buttons on TT 2023-10-16 13:18:50 +02:00
matejcik
4f2c639ed7 feat(core): T2B1 final design for emulator 2023-10-12 12:58:37 +02:00
Martin Milata
fca82273cf Merge branch 'release/23.09' 2023-10-11 23:34:06 +02:00
tychovrahe
df42c99bc9 feat(core): add basic support for efficient frame buffer graphics
[no changelog]
2023-10-10 19:01:43 +02:00
matejcik
d9112b5a8d chore(core/prodtest): bump version after release 2023-10-06 10:49:29 +02:00
matejcik
06f77f745f docs(core/prodtest): introduce changelog 2023-10-06 10:49:29 +02:00
matejcik
11b12ea258 chore(core/prodtest): bump prodtest version 2023-10-06 10:49:29 +02:00
cepetr
6668f47666 docs(prodtest): document prodtest protocol
[no changelog]
2023-10-06 10:03:29 +02:00
cepetr
03464bea4d feat(prodtest): make prodtest welcome screen white (T2B1 only)
[no changelog]
2023-10-06 10:03:29 +02:00
Andrew Kozlik
3ca8f26fd0 feat(core): Implement Optiga counter operations. 2023-10-04 11:22:46 +02:00
Andrew Kozlik
1fa2929607 feat(core): Distinguish Optiga errors from invalid PIN. 2023-10-04 11:22:46 +02:00
Andrew Kozlik
4c7979ae30 feat(core): Propagate Optiga errors. 2023-10-04 11:22:46 +02:00
matejcik
240f4f56cd fix(core/optiga): add correct key usage to OID_PIN_CMAC 2023-10-04 11:22:46 +02:00
matejcik
3c413ecf02 fix(storage): correctly fail when Optiga operations fail 2023-10-04 11:22:46 +02:00
tychovrahe
6e5967af25 fix(core): adjust T2B1 display SPI baudrate
[no changelog]
2023-10-02 22:14:58 +02:00
grdddj
532f368a14 feat(core): not allowing to send empty PIN in T2B1
[no changelog]
2023-10-02 22:14:58 +02:00
tychovrahe
c937f21447 refactor(core): change the way USE_OPTIGA is added to build
[no changelog]
2023-10-02 20:59:50 +02:00
Andrew Kozlik
cb21ca8dc5 feat(core): Implement Optiga counter operations. 2023-10-02 20:26:00 +02:00
Andrew Kozlik
aed5912fbf feat(core): Distinguish Optiga errors from invalid PIN. 2023-10-02 20:26:00 +02:00
Andrew Kozlik
68876170fe feat(core): Propagate Optiga errors. 2023-10-02 20:26:00 +02:00
Martin Milata
f226c9599b fix(core/ui): better contrast for bip39 keyboard button
[no changelog]
2023-10-02 19:04:28 +02:00
matejcik
e28dff677c fix(core/optiga): add correct key usage to OID_PIN_CMAC 2023-10-02 16:57:15 +02:00
matejcik
9d86352352 fix(storage): correctly fail when Optiga operations fail 2023-10-02 16:57:15 +02:00
matejcik
c6c8d85200 chore(core): embed signed bootloader 2.1.3 2023-10-02 16:57:15 +02:00
tychovrahe
e39ab74949 fix(core): adjust T2B1 display SPI baudrate
[no changelog]
2023-10-02 16:45:05 +02:00
grdddj
07fb451048 feat(core): not allowing to send empty PIN in T2B1
[no changelog]
2023-10-02 16:33:51 +02:00
Martin Milata
3021df8f65 chore(core): bump version to 2.6.3
[skip_ci]
2023-09-29 20:20:19 +02:00
Martin Milata
040f6c2c8e Merge branch 'master' into release/23.09 2023-09-29 16:42:23 +02:00
matejcik
193a53f22b feat(core/rust): use MODEL_FULL_NAME from build system
[no changelog]
2023-09-29 16:27:27 +02:00
matejcik
d913181079 docs(core): add docstrings to modtrezorutils constants
[no changelog]
2023-09-29 16:27:27 +02:00
matejcik
c892d4b0ba refactor(core): inject full model name from build script
so that we don't have to do awkward string operations when we need it

[no changelog]
2023-09-29 16:27:27 +02:00
grdddj
b07f4d938a fix(core): make the marquee take always 2 seconds to animate from end to end
[no changelog]
2023-09-29 14:19:38 +02:00
matejcik
ff4197c50a chore(core): generate changelog, bump bootloader version after release 2023-09-29 11:47:40 +02:00
Andrew Kozlik
b3d0fb68ff feat(core): Improve Optiga transport error handling. 2023-09-27 17:17:09 +02:00
Andrew Kozlik
7d92e70cc3 feat(core): Hide repetitions in Optiga logging. 2023-09-27 17:17:09 +02:00
Andrew Kozlik
dee559f4f9 feat(core): Integrate Optiga into PIN verification. 2023-09-27 17:17:09 +02:00
Andrew Kozlik
6ca1182d85 refactor(core): Add "META" to metadate-related Optiga constants.
[no changelog]
2023-09-27 17:17:09 +02:00
grdddj
046ff15275 feat(core): show the preview of default homescreen image
[no changelog]
2023-09-27 14:14:42 +02:00
matejcik
fbd5c466f0 chore(core): embed QA bootloader 2.1.3 2023-09-27 13:20:02 +02:00
matejcik
bb5b91b920 Merge branch 'master' into release/23.09 2023-09-27 12:58:22 +02:00
tychovrahe
5d017e928d fix(core): reset optiga during initialization
[no changelog]
2023-09-27 12:14:32 +02:00
tychovrahe
510281590f fix(core): add delays to optiga i2c communications
[no changelog]
2023-09-27 12:14:32 +02:00
Ondrej Mikle
36e4a444bb feat(core/bootloader): make bootloader more robust against glitches
[no changelog]
2023-09-27 12:14:13 +02:00
tychovrahe
a6d0842663 fix(core/bootloader): fix erroneous shutdown when rejecting firmware upload 2023-09-27 12:14:13 +02:00
grdddj
a3f137d488 feat(core): forcing the letter to always change after selection in T2B1 recovery
[no changelog]
2023-09-26 09:28:11 +02:00
grdddj
65c9380ab7 feat(core): triggering delete action in ChoicePage after 1 second even without release
[no changelog]
2023-09-26 08:07:32 +02:00
grdddj
e06335d877 feat(core/rust): differentiate between short and long button press
With the help of this, making long DELETE press delete all the
inputted characters in PIN or passphrase entries.

[no changelog]
2023-09-21 11:30:02 +02:00
tychovrahe
29c16c212d fix(core): fix T2B1 "restarting in" label capitalization
[no changelog]
2023-09-20 21:36:07 +02:00
grdddj
0c4540ae0a feat(core): show new homescreen preview for T2B1
[no changelog]
2023-09-20 13:58:05 +02:00
Andrew Kozlik
1f7c78a4ed test(core): Update emulator device certificate.
[no changelog]
2023-09-19 21:41:42 +02:00
grdddj
42a6a5ac9b chore(core): adjust the chunkification logic to account for really mono font
Also improving the positioning of prev/next page arrows when paginating.

[no changelog]
2023-09-19 11:48:58 +02:00
grdddj
ad5c1858c1 chore(core,font): change some glyphs in PixelOperatorMono8
This makes the font really "mono", as previously some characters were
wider than others (m, w, M or W), which did not look good when
relying on the mono properties.

[no changelog]
2023-09-19 11:48:58 +02:00
tychovrahe
3c1236bf82 refactor(core): setup single-place layout selection
[no changelog]
2023-09-18 18:05:37 +02:00
Martin Milata
b9dbdc7057 chore(core): bump version to 2.6.2
[no changelog]
2023-09-18 16:27:07 +02:00
Martin Milata
07027a69e9 Merge branch 'master' into release/23.09 2023-09-15 14:33:20 +02:00
matejcik
21959996bd feat(core/bootloader_emu): allow explicit bootloader locking from command line 2023-09-15 14:08:02 +02:00
Andrew Kozlik
c48b606867 feat(core): Add bootloader_locked flag to Features message.
[no changelog]
2023-09-15 14:08:02 +02:00
tychovrahe
f881fab797 fix(core): disable access to secret in flash after boot
[no changelog]
2023-09-15 13:31:24 +02:00
Andrew Kozlik
686aa78aa7 feat(core): Use Optiga as a source of randomness. 2023-09-15 11:16:57 +02:00
grdddj
8a9354cd85 chore(core): separate confirm_output for T2B1 into two layouts so we can send a button request in between
[no changelog]
2023-09-15 09:50:21 +02:00
grdddj
bcb353a4a1 feat(core): support optional chunkification of addresses in receive and send flows 2023-09-15 09:50:21 +02:00
grdddj
76c6e9cd9d feat(all): implement support information for T2B1
WIP - change trezor{1,2} to their internal names, add support for model R

WIP - add EOS and NEM features Capability only for TT

WIP - not include EOS and NEM into TR

WIP - choose between device models when generating coininfo

WIP - regenerate coininfo.py

WIP - skip NEM, EOS, Dash, BGold and Decred device tests for TR

WIP - fix python support

WIP - fix unit tests

WIP - import bitcoin-like code only when needed

WIP - remove ignored coins for TR in fixtures.json

WIP - make all the external references to models UPPERCASE

WIP - do the model separation in mako script also for tokens and networks

WIP - hot-fixing non-supporting RELEASES_URL for new model names

WIP - support.py releases CLI command takes a list of -r key-value pairs DEVICE=VERSION

WIP - run `python support.py release`

WIP - use utils.MODEL_IS_T2B1 to ignore NEM and EOS

WIP - change all the docs and commands to have UPPERCASE model names

[no changelog]
2023-09-14 13:54:09 +02:00
grdddj
4b9d22066c chore(core/rust): change the position of up arrow icon
[no changelog]
2023-09-14 11:43:43 +02:00
matejcik
efab85a963 chore(core): include signed and QA bootloaders 2023-09-14 10:13:38 +02:00
grdddj
568c5f135b feat(core/rust): add ChoicePage animation and hold-to-move functionality
[no changelog]
2023-09-13 17:12:51 +02:00
grdddj
272fb4842a feat(core/rust): show last entered passphrase character for T2B1
[no changelog]
2023-09-13 17:12:51 +02:00
matejcik
afa6f84174 feat(core): custom exception types for Optiga 2023-09-13 15:45:48 +02:00
tychovrahe
024ea604ca fix(core): fix optiga warm reset start-up time
[no changelog]
2023-09-13 15:45:48 +02:00
Andrew Kozlik
db6630a5a3 feat(core): Support Optiga in Trezor firmware. 2023-09-13 15:45:48 +02:00
Andrew Kozlik
8010cfb5b6 feat(core): Add utils.USE_OPTIGA. 2023-09-13 15:45:48 +02:00
grdddj
70fa46a318 chore(core/rust): decrease top margin over homescreen label in T2B1
[no changelog]
2023-09-12 13:44:21 +02:00
grdddj
623e0ce468 chore(core/rust): improve vertical centering in some screens
[no changelog]
2023-09-12 11:06:38 +02:00
grdddj
d2f67d48fa chore(core/rust): transform if-elif into match
[no changelog]
2023-09-12 11:06:38 +02:00
Martin Milata
7e9f127aec feat(core): revise path warning on model T 2023-09-12 00:39:08 +02:00
Martin Milata
58ffe95369 fix(core): display XPUBs in a similar way to addresses
[no changelog]
2023-09-12 00:39:08 +02:00
Ondrej Mikle
bf96c43d32 chore(core): cstyle reformat
DSVibram AR fix
2023-09-11 14:36:11 +02:00
Ondrej Mikle
ac64d2d2f1 fix(core): one forgotten ensure_compatible_settings 2023-09-11 14:36:11 +02:00
Ondrej Mikle
75a148e414 fix(core): clear memory when not going to use copy firmware header for bootloader 2023-09-11 14:36:11 +02:00
Ondrej Mikle
c0c544b7d8 fix(core): fix bootloader_ci startup, remove unused function from limited_util.s
Fix changelog messages
2023-09-11 14:36:11 +02:00
Ondrej Mikle
b69ef9d168 feat(core): Copy firmware image header to bootloader RAM to be able to skip directly to firmware install, jumping from firmware to bootloader
Change linking of util.s and limited version of util.s to avoid mistakes
with boardloader etc.
2023-09-11 14:36:11 +02:00
grdddj
84659dc904 feat(core/rust): show WRONG PIN header in PIN entry after bad previous PIN input
[no changelog]
2023-09-11 09:29:12 +02:00
matejcik
6e0937c1ce chore(core/bootloader): bump version after release 2023-09-07 11:32:48 +02:00
matejcik
965d3182a0 docs(core/bootloader): generate changelog for 2.1.2 2023-09-07 11:32:48 +02:00
matejcik
409ef8abcd chore(core/embed/boardloader): bump version after release 2023-09-06 11:28:34 +02:00
matejcik
636b964119 chore(core/embed/boardloader): generate changelog, set correct version 2023-09-06 11:28:34 +02:00
matejcik
34b1980893 docs(core/embed/boardloader): add missing changelog entry 2023-09-06 11:28:34 +02:00
matejcik
59d35c8652 chore(core/bootloader): bump version after release 2023-09-06 11:09:45 +02:00
grdddj
8956350aca feat(core): create new Ethereum send flow for TT
[no changelog]
2023-09-04 13:50:30 +02:00
grdddj
eed6e0b71c feat(core): create new Ethereum send flow for TR
[no changelog]
2023-09-04 13:50:30 +02:00
grdddj
492ff958a5 feat(core): improve sign message designs
[no changelog]
2023-09-01 13:30:29 +02:00
grdddj
09cd64123b feat(core): implement show_more dialogue for TR
[no changelog]
2023-09-01 13:30:29 +02:00
matejcik
0532585105 docs(core/bootloader): generate changelog for 2.1.2 2023-08-30 15:54:03 +02:00
tychovrahe
bd0b0b2d15 refactor(core): move model specific norcow config to model header
[no changelog]
2023-08-29 11:17:19 +02:00
tychovrahe
33fc64b629 refactor(core): remove universal DMA driver
[no changelog]
2023-08-29 11:17:03 +02:00
matejcik
04ea95777b chore(core/prodtest): enable Optiga locking 2023-08-29 10:59:34 +02:00
matejcik
f40feec4f9 chore(core): bump prodtest version 2023-08-29 10:59:34 +02:00
Andrew Kozlik
5898b16cd2 feat(core): Implement OPTIGA VerifySign command. 2023-08-29 10:59:34 +02:00
tychovrahe
5470304515 feat(core): Implement OPTIGA provisioning in prodtest.
[no changelog]
2023-08-29 10:59:34 +02:00
Andrew Kozlik
812e77cefd feat(core): Implement OPTIGA secure channel. 2023-08-29 10:59:34 +02:00
Andrew Kozlik
11e1795a89 refactor(core): optiga_execute_command()
- Remove presentation layer parameter.
- Use error-flushing command codes.
2023-08-29 10:59:34 +02:00
Andrew Kozlik
773f79251f feat(core): Implement comparison of OPTIGA metadata. 2023-08-29 10:59:34 +02:00
tychovrahe
ee34425062 feat(core): add install restricted screen on installation with locked bootloader
[no changelog]
2023-08-28 17:04:25 +02:00
grdddj
78d5abd9b1 chore(core): replace View full button text with Show all
[no changelog]
2023-08-28 12:09:58 +02:00
tychovrahe
6c97dfef78 feat(core): add vendor headers for devices with dev bootloader
[no changelog]
2023-08-25 18:54:34 +02:00
tychovrahe
6d9e4321fd feat(core): add install restricted screen on installation with locked bootloader
[no changelog]
2023-08-25 14:41:59 +02:00
grdddj
bb959892ac chore(core): improve the shamir info button handling, regenerate tests
[no changelog]
2023-08-23 11:03:09 +02:00
conduition
30ddabc15b fix(core): more info button on shamir recovery screen
chore(core): add changelog
2023-08-23 11:03:09 +02:00
tychovrahe
c9a657b074 feat(core): set final name for Safe 3
[no changelog]
2023-08-18 16:14:47 +02:00
matejcik
7cf3a655e5 docs(core/bootloader): add changelog entry 2023-08-18 16:13:58 +02:00
matejcik
c0fd783b06 feat(core/bootloader): always use empty logo
Now that the empty logo also shows model name, we do not need to draw
the full logo in bootloader at all.
2023-08-18 16:13:58 +02:00
matejcik
ae7a1c7d52 refactor(core): render full/empty logo same way as in TR 2023-08-18 16:13:58 +02:00
tychovrahe
5947f8a50d feat(core): add model name below empty logo on boot
[no changlog]
2023-08-18 16:13:58 +02:00
tychovrahe
90bdab6599 fix(core): fixed unwanted delays in T2B1
[no changelog]
2023-08-18 16:13:58 +02:00
matejcik
49bee50132 chore(core): add production-signed vendor headers for T2B1 2023-08-16 10:49:36 +02:00
matejcik
c0de11fbeb fix(core): use stm32f4 implementation of secret.c for unix too
(fixes bootloader_emu build because there was an error in the unix dummy
impl)
2023-08-16 10:32:25 +02:00
tychovrahe
17f13b4140 feat(core): design for T2B1 "unsafe, do not use" screen
[no changelog]
2023-08-15 22:08:11 +02:00
tychovrahe
5a86add884 refactor(core): differentiate models by internal name in python
[no changelog]
2023-08-15 22:08:11 +02:00
matejcik
a41a8c5f87 chore(core): regenerate vendor headers
[no changelog]
2023-08-15 09:37:38 +02:00
matejcik
df84d96244 feat(core): support checking generated vendor headers as part of make gen_check
[no changelog]
2023-08-15 09:37:38 +02:00
matejcik
ec06cc5c40 feat(core): change resolution of embedded prodtest images, bump versions
[no changelog]
2023-08-15 09:37:38 +02:00
tychovrahe
b369e3f4a7 feat(core): enable seamless build of bootloader using devkeys
[no changelog]
2023-08-15 09:37:38 +02:00
tychovrahe
e8281385f6 feat(core): implement secret handling in bootloader 2023-08-15 09:37:38 +02:00
grdddj
6f60462d12 fix(core/rust): do not increase margin of right choice items
[no changelog]
2023-08-09 13:57:09 +02:00
grdddj
5bcfd5709f chore(core/rust): change fonts in confirm_properties for TT
Making the key font NORMAL and the value MONO in all cases

[no changelog]
2023-08-09 10:50:57 +02:00
grdddj
8d78dd8872 chore(core): change some UI text and TR's screens to match the Figma designs
[no changelog]
2023-08-07 15:30:38 +02:00
Andrew Kozlik
74759310bb feat(core): Integrate OPTIGA Trust M
[no changelog]
2023-08-02 00:35:43 +02:00
grdddj
d48bae4598 chore(core/rust): delete unused NotificationFrame
[no changelog]
2023-07-28 09:41:04 +02:00
grdddj
463f0df22a chore(core): modify design of recovery flow
[no changelog]
2023-07-28 09:41:04 +02:00
grdddj
a8d57bf2c4 chore(core/rust): add missing traces to components
[no changelog]
2023-07-28 09:41:04 +02:00
tychovrahe
238e3fd7c1 refactor(core): add abstraction over flash memory layout
[no changelog]
2023-07-25 10:25:20 +02:00
tychovrahe
fa71c8244c fix(core): fix MPU settings
[no changelog]
2023-07-21 12:28:13 +02:00
tychovrahe
ad1f2360bd fix(core): replace systick based wait in display SPI with loop as systick does not work in fault handlers
[no changelog]
2023-07-21 12:27:54 +02:00
grdddj
4227b5c0b9 chore(core/rust): change design of TT's disabled confirm button
[no changelog]
2023-07-18 13:01:25 +02:00
grdddj
91740ae4aa chore(core): change title of Shamir wallet creation
[no changelog]
2023-07-18 10:09:35 +02:00
grdddj
e31eb9570b chore(core/rust): change design of TR's middle button
Move the text one pixel lower so the arms touch it in its center.
Decreasing the overall height by 2 pixels.

[no changelog]
2023-07-18 09:25:01 +02:00
grdddj
52c69de138 chore(all): small design fixes
[no changelog]
2023-07-17 15:30:00 +02:00
grdddj
bc502287fc feat(core): new design of recovery dialogs
[no changelog]
2023-07-17 15:30:00 +02:00
grdddj
03f77c50e9 feat(core/rust): new design of wallet creation dialogs
[no changelog]
2023-07-17 15:30:00 +02:00
grdddj
672d6b7d13 feat(core): new design of PIN dialogs
[no changelog]
2023-07-17 15:30:00 +02:00
grdddj
10449759bf chore(core): new designs of passphrase dialogs
[no changelog]
2023-07-17 15:30:00 +02:00
grdddj
3f6a55cc3a refactor(core/rust): replace Label::new with alignment-specific constructor
[no changelog]
2023-07-17 15:30:00 +02:00
grdddj
c04cd19c6c chore(core/rust): decrease margin space between key and value paragraphs in confirm_properties
[no changelog]
2023-07-17 15:30:00 +02:00
grdddj
b5226b55c8 feat(core/rust): use loaders in coinjoin screens
[no changelog]
2023-07-17 15:30:00 +02:00
grdddj
a318706145 feat(core/rust): introduce small indeterminate loader
[no changelog]
2023-07-17 15:30:00 +02:00
grdddj
b96b9d43bb feat(core/rust): improve and use coinjoin loading screens
[no changelog]
2023-07-17 15:30:00 +02:00
grdddj
245ab416cb feat(core): regenerate exclamation mark icons to be centered in warning dialogs
[no changelog]
2023-07-14 12:00:21 +02:00
matejcik
78a8b48f1e refactor(core): generate trezorproto module straight from Rust 2023-07-12 10:09:36 +02:00
tychovrahe
eca1fc381b refactor(core): rust bindgen mcu-type related arguments are taken from board definition
[no changelog]
2023-07-07 22:09:56 +02:00
tychovrahe
6dbeba9730 refactor(core/tools): add argument to jpg_to_h.py, move it to tools
[no changelog]
2023-07-07 22:09:56 +02:00
tychovrahe
ebbd7f9d35 refactor(core): restructure trezorhal, prepare to support more platforms
[no changelog]
2023-07-07 22:09:56 +02:00
tychovrahe
40b5fedbd2 fix(core): fix TT bootloader emulator backlight, fix rust warning
[no changelog]
2023-07-03 10:19:28 +02:00
Martin Milata
edcdb97613 fix(core): backlight on frozen emulator
[no changelog]
2023-06-29 12:10:41 +02:00
tychovrahe
671f23f1aa feat(core): support rev 10 of T2B1 HW
[no changelog]
2023-06-27 22:45:33 +02:00
tychovrahe
539420cac8 refactor(core): make backlight/fading optional
[no changelog]
2023-06-27 16:18:30 +02:00
tychovrahe
1f1680243f refactor(core): separate backlight pwm driver and display driver
[no changelog]
2023-06-27 16:18:30 +02:00
grdddj
f9f21176fd feat(core/rust): improve progress screen design
[no changelog]
2023-06-27 07:57:45 +02:00
grdddj
64236e699f feat(core/rust): add account and address labels into send flow
[no changelog]
2023-06-27 07:57:45 +02:00
grdddj
570ffe2c0d chore(core/rust): make info button wider
[no changelog]
2023-06-27 07:57:45 +02:00
tychovrahe
9cd59105c1 refactor(core): modify i2c driver to allow usage of more i2c peripherals
[no changelog]
2023-06-26 12:13:31 +02:00
tychovrahe
4cc6413a46 chore(core/rust): fix compilation warnings
[no changelog]
2023-06-23 19:13:47 +02:00
matejcik
0ef1d20062 style(core/rust): remove unused mut 2023-06-21 14:19:03 +02:00
matejcik
437b9e5991 feat(core/rust): allow debug feature in tests (means we can print things) 2023-06-21 14:19:03 +02:00
matejcik
5a83a7171d refactor(core/rust): improve ergonomy of IterBuf 2023-06-21 14:19:03 +02:00
matejcik
b91e225076 refactor(core/rust): expose obj types and (debug only) type names 2023-06-21 14:19:03 +02:00
matejcik
ccddc8f5f3 fix(core/rust): disable stack checking in tests (fixes spurious "recursion exceeded" errors) 2023-06-21 14:19:03 +02:00
Andrew Kozlik
21f4aec8de refactor: Unify secp256k1_zkp usage.
[no changelog]
2023-06-21 08:36:20 +02:00
tychovrahe
638ebbc0df fix(core): improve robustness of touch driver
[no changelog]
2023-06-20 23:06:10 +02:00
grdddj
b420064c08 feat(core/rust): improve the painting of TR's buttons + new inverse design
[no changelog]
2023-06-20 11:08:21 +02:00
grdddj
a6316f964e chore(core/rust): regenerate TR's icons based on new designs
[no changelog]
2023-06-20 11:08:21 +02:00
grdddj
13cb1ea4ce chore(core/rust): improve the design of TR's tutorial flow
[no changelog]
2023-06-20 11:08:21 +02:00
grdddj
947e2ee24f fix(core/rust): make vertical alignment for FormattedText work for paginated content
[no changelog]
2023-06-20 11:08:21 +02:00
tychovrahe
ef5469ad90 fix(core): removed no longer needed emulator gamma correction
[no changelog]
2023-06-20 10:58:09 +02:00
Jan Šetina
c85102494d feat(core/ui): update colors - grey_dark and green 2023-06-20 10:58:09 +02:00
tychovrahe
da4ce32b45 fix(core): fix gamma correction for Model T 2023-06-20 10:58:09 +02:00
Martin Milata
cf4dcfcbd4 refactor(core/ui): namespaced Alignment2D
[no changelog]
2023-06-19 19:34:16 +02:00
Martin Milata
3a5fdfedcc fix(core/ui): minor visual tweaks
- centered title for coinjoin loader
- make device label bold on label confirmation screen

[no changelog]
2023-06-19 19:34:16 +02:00
Martin Milata
312f6899c7 feat(core/ui): vertical alignment for FormattedText
[no changelog]
2023-06-19 19:34:16 +02:00
Pavol Rusnak
089ff76822
Merge branch 'matejcik/signed-vhs' 2023-06-15 22:41:12 +02:00
tychovrahe
cfb674cf01 feat(core): adjust bootloader screens to look better on rectangular screens
[no changelog]
2023-06-15 17:08:14 +02:00
tychovrahe
32a2b371bd feat(core): allow different screen sizes for TT UI
[no changelog]
2023-06-15 17:08:14 +02:00
tychovrahe
d3284baf21 feat(core): support STM32F429 discovery board 2023-06-15 17:08:14 +02:00
tychovrahe
8154e5103f refactor(core): make emulated dma2d usable outside of emulator
[no changelog]
2023-06-15 17:08:14 +02:00
grdddj
ef2d2a3e75 feat(core/rust): make font changes for TR
[no changelog]
2023-06-14 18:17:09 +02:00
grdddj
d199a17cfc feat(core): introduce FONT_BIG as a fifth optional font
[no changelog]
2023-06-14 18:17:09 +02:00
grdddj
359f6709b0 chore(core): remove unused model R icons
[no changelog]
2023-06-14 18:17:09 +02:00
grdddj
100e36ac20 feat(core/rust): randomize positions in passphrase input
[no changelog]
2023-06-14 17:27:44 +02:00
grdddj
eacc1a3826 feat(core/rust): randomize letter choice positions in recovery word entry + randomize the order of words
[no changelog]
2023-06-14 17:27:44 +02:00
grdddj
8c7ad72062 feat(core/rust): randomize PIN digits fully and show last digit to user
[no changelog]
2023-06-14 17:27:44 +02:00
grdddj
5efafce856 chore(core): modify Shamir backup flow design
[no changelog]
2023-06-14 16:44:02 +02:00
Martin Milata
732e2cc9b5 refactor(core): split tjpgdec into own crate
[no changelog]
2023-06-14 15:53:56 +02:00
grdddj
127e6f42cf chore(core/rust): center TR's input method vertically
[no changelog]
2023-06-14 15:23:40 +02:00
grdddj
55bff602fa fix(core): add dynamic title to the FIDO dialogue for model R
[no changelog]
2023-06-14 15:20:43 +02:00
matejcik
88f5f79315 docs(core/boardloader): generate first changelog, bump version to 2.1.0 2023-06-14 11:42:12 +02:00
matejcik
ef079f35e5 chore(core/bootloader): generate changelog and bump bootloader version 2023-06-14 11:42:12 +02:00
matejcik
d465a14850 chore(core): add signed bootloader and vendor headers for model R 2023-06-13 14:25:39 +02:00
tychovrahe
e24536971c test(core): prodtest for T2B1
[no changelog]
2023-06-11 20:54:29 +02:00
tychovrahe
8d812ca36e feat(core): support device variants
[no changelog]
2023-06-07 19:48:53 +02:00
tychovrahe
cd722f5126 fix(python): fix T2B1 keys in trezorlib
[no changelog]
2023-06-06 22:12:53 +02:00
grdddj
5258e9a307 feat(core/rust): use icon for displaying device name in welcome screen
[no changelog]
2023-06-06 17:49:53 +02:00
grdddj
88fd4cd11f chore(core/rust): mark icons with empty right column, delete unused ones
[no changelog]
2023-06-06 17:49:53 +02:00
grdddj
f27405109e feat(core/rust): add better support for odd-width icons
[no changelog]
2023-06-06 17:49:53 +02:00
tychovrahe
531511407b feat(core/rust): add bootloader design for T2B1
[no changelog]
2023-06-06 17:49:53 +02:00
Martin Milata
e928568339 build: emulator darwin fixes
[no changelog]
2023-06-06 11:32:02 +02:00
tychovrahe
a2f8cb9d1c feat(core): add internal model field to features
[no changelog]
2023-06-06 09:39:45 +02:00
Martin Milata
fee0d70211 fix(core/ui): workaround different TT and TR UI API
[no changelog]
2023-06-02 18:47:09 +02:00
Martin Milata
611d4edc32 fix(core/ui): clarify transaction replacement screens
[no changelog]
2023-06-02 18:47:09 +02:00
matejcik
45c1a4212d chore(core): add T2B1 keys to bootloader / boardloader 2023-06-02 14:48:59 +02:00
matejcik
319a665d0d chore(core): add T2B1 vendor header data 2023-06-02 14:43:19 +02:00
matejcik
b6c2f2e5ba feat(core): add hw_model field to vendor headers 2023-06-02 14:43:19 +02:00
grdddj
da14c22712 feat(all): add UI for Model R 2023-05-31 10:14:54 +02:00
grdddj
019a3ced7d fix(core): revert some UI changes for TT (PIN, wipecode, backup homescreen) 2023-05-16 09:25:56 +02:00
grdddj
74246150e5 fix(core/rust): allow for cycling through the last character in TT passphrase 2023-05-11 21:02:21 +02:00
grdddj
c4bbf17433 feat(core/rust): allow for margin between text and ellipsis icon 2023-05-11 21:02:21 +02:00
grdddj
1c698656c3 feat(core/rust): create common function for ellipsised text 2023-05-11 21:02:21 +02:00
grdddj
e00af4f7f3 chore(core/rust): use format_i64 to convert numbers to strings 2023-05-11 21:02:21 +02:00
grdddj
3bf3e4c38b feat(core/rust): introduce Wordlist component for both bip39 and slip39 2023-05-11 21:02:21 +02:00
grdddj
c291285927 chore(core/rust): make TextBox common component 2023-05-11 21:02:21 +02:00
grdddj
1bb6288512 chore(core/rust): move Font and Color into their own modules 2023-05-11 21:02:21 +02:00
grdddj
5940129bfc feat(core/rust): show fee rate in modify-fee dialogue 2023-05-11 21:02:21 +02:00
grdddj
db38b708b4 feat(core/rust): make Checklist component usable by more models 2023-05-11 21:02:21 +02:00
grdddj
610c832dee feat(core/rust): add useful macros 2023-05-11 21:02:21 +02:00
grdddj
73c493d118 chore(core/rust): tracing and other smaller improvements/clippy lints 2023-05-11 21:02:21 +02:00
matejcik
eee4c624f9 feat(core/rust): JSON output from component tracing 2023-05-11 21:02:21 +02:00
grdddj
b63b72ed90 chore(core/rust): flag or delete unused code 2023-05-11 21:02:21 +02:00
grdddj
0c0d74a501 feat(core/rust): create mako template for QSTR generation 2023-05-11 21:02:21 +02:00
grdddj
8ee4c41938 chore(crypto): refactor slip39 same way as bip39 2023-05-11 21:02:21 +02:00
tychovrahe
0c5db05357 feat(core): support 16bit i8080 display bus
[no changelog]
2023-04-27 12:36:12 +02:00
tychovrahe
09349c308a feat(core): support hw revision 6 of T2B1
[no changelog]
2023-04-26 14:15:00 +02:00
tychovrahe
0a8981d643 refactor(core): rewrite display_image into rust
[no changelog]
2023-04-25 10:28:33 +02:00
tychovrahe
e578f7f0f8 refactor(core): remove unused C display_icon and display_loader functions
[no changelog]
2023-04-25 10:28:33 +02:00
tychovrahe
69be9b1edf refactor(core): improve safety of buffer handling
[no changelog]
2023-04-25 10:28:33 +02:00
Martin Milata
3fb3f108cc chore(vendor): bump micropython to 1.19.1
Relevant micropython commits:
  01374d941f9d7398e35990b574769b20c6779457 py/mpconfig.h: Define initial templates for "feature levels".
  7b89ad8dbf432ab51eea6d138e179bf51394c786 py/vm: Add a fast path for LOAD_ATTR on instance types.
  68219a295c75457c096ac42dbe8411b84e1e1a51 stm32: Enable LOAD_ATTR fast path, and map lookup caching on >M0.
  e0bf4611c3a8b23b3c52e6a7804aac341ac3a87d py: Only search frozen modules when '.frozen' is found in sys.path.
  f2040bfc7ee033e48acef9f289790f3b4e6b74e5 py: Rework bytecode and .mpy file format to be mostly static data.
  926b554dafffa1e9bd80aa12fea5c621221c9d79 extmod/moduos: Create general uos module to be used by all ports.
  2b409ef8a46015f8f3bd20bc44e644637dbe9bd3 unix/moduos: Convert module to use extmod version.
  47f634300c5572571816817f16836113c98814ae py: Change makemoduledefs process so it uses output of qstr extraction.
  0e7bfc88c6ac6b5d64240f91183a3cfe2ab67ade all: Use mp_obj_malloc everywhere it's applicable.
  2a6ba47110be88ff1e1f5abd1bd76c353447884c py/obj: Add static safety checks to mp_obj_is_type().
2023-04-21 13:14:07 +02:00
tychovrahe
dd5468fe88 fix(core): fix homescreen shade positioning
[no changelog]
2023-04-21 09:07:18 +02:00
tychovrahe
33fb590f44 refactor(core): decouple i2c driver and touch driver
[no changelog]
2023-04-19 21:36:51 +02:00
tychovrahe
83500487b8 refactor(core): improve conditional compilations based on model
[no changelog]
2023-04-19 21:36:51 +02:00
tychovrahe
eb72fb4241 refactor(core): remove unused functions
[no changelog]
2023-04-19 21:36:51 +02:00
tychovrahe
6ea68baf34 refactor(core): move files out of extmod
[no changelog]
2023-04-19 21:36:51 +02:00
Martin Milata
7a3ab389f8 style(core/rust): fix indent
[no changelog]
2023-04-19 19:53:33 +02:00
Martin Milata
58be59529d style(core): fix clippy lints
[no changelog]
2023-04-19 13:05:03 +02:00
matejcik
37d0d91a84 chore: add production-signed prodtest header 2023-04-17 14:27:50 +02:00
matejcik
fa1925a9d8 chore(core/vendorheaders): generate vendor header for prodtest 2023-04-17 11:57:46 +02:00
matejcik
366d1cb125 chore(core/vendorheaders): bump versions of vendor headers after recent changes 2023-04-14 16:29:25 +02:00
matejcik
01b7cfd86f fix(core/prodtest): ensure the prodtest image is at least one chunk big 2023-04-14 16:20:49 +02:00
matejcik
dd4d020a76 fix(core/bootloader): correctly handle images smaller than one chunk 2023-04-14 16:20:49 +02:00
tychovrahe
44178514f3 feat(core): support differently sized homescreen
[no changelog]
2023-04-12 14:03:12 +02:00
Martin Milata
aa9f848b70 fix(core/ui): button text and warning style update
[no changelog]
2023-04-12 13:10:45 +02:00
Martin Milata
2456219d52 fix(core/ui): hold to confirm when finializing replacement transaction
[no changelog]
2023-04-10 18:42:38 +02:00
Martin Milata
46940521d8 chore(core/bootloader): bump version to 2.1.1
[skip_ci]
2023-04-09 12:37:18 +02:00
Martin Milata
81e5dbf301 chore(core): bump version to 2.6.1
[skip_ci]
2023-04-09 12:37:18 +02:00
matejcik
c38b39ee6e feat(core): include signed bootloader 2.1.0 2023-04-07 13:33:04 +02:00
matejcik
9d8cfbf680 chore(core): rebuild QA bootloader
[no changelog]
2023-04-05 16:36:29 +02:00
Martin Milata
69bc442c90 fix(core/ui): replace RobotoMono Regular with RobotoMono Medium
[no changelog]
2023-04-04 00:15:12 +02:00
Martin Milata
a44e738d31 feat(core/ui): sending transaction style update
[no changelog]
2023-04-04 00:15:12 +02:00
Martin Milata
229c81fa7e feat(core/ui): frames with title and subtitle
[no changelog]
2023-04-04 00:15:12 +02:00
matejcik
a09c404359 fix(core): restore original Label bounds checking
so that if the text does not vertically fit into the provided bounds,
it will only render part of itself (and an optional ellipse)
and remain properly vertically centered
2023-04-03 22:01:26 +02:00
matejcik
bd491bb2da docs(core/bootloader): changelog for bootloader 2.1.0 2023-04-03 22:01:26 +02:00
matejcik
744766a9c7 chore(core): rebuild QA bootloader 2023-04-03 22:01:26 +02:00
matejcik
ca5a68ebc5 fix(core): unify error strings 2023-04-03 22:01:26 +02:00
matejcik
38b6b9adc8 style(core/bootloader): unify import section 2023-04-03 22:01:26 +02:00
matejcik
a2f7d8395f fix(core/bootloader): erase the storage as soon as we know we should
This fixes a problem that would previously cause the storage to be
erased every time.
2023-04-03 22:01:26 +02:00
matejcik
ba112e6290 feat(core/bootloader): show whether the storage was erased in emu 2023-04-03 22:01:26 +02:00
matejcik
7638694484 chore: make fields on FirmwareRequest required (fixes #1941)
[no changelog]
2023-04-03 22:01:26 +02:00
matejcik
63c27bafd6 fix(core/bootloader): properly display upgrade/downgrade 2023-04-03 22:01:26 +02:00
matejcik
d1d373a51f refactor(core/bootloader): simplify Confirm arguments 2023-04-03 22:01:26 +02:00
matejcik
a9a18bf80d refactor(core/bootloader): make use of Label vertical alignment 2023-04-03 22:01:26 +02:00
matejcik
c3af3eafe2 refactor(core/bootloader): get rid of Paragraphs
for a ~10kB space saving
2023-04-03 22:01:26 +02:00
matejcik
14f0fba949 feat(core/bootloader): tweak initial screens
* do not wait for user touch when we know we are going to the welcome
  screen
* do not fade before the Trezor Model T screen
2023-04-03 22:01:26 +02:00
matejcik
839a940990 feat(core/bootloader): new style for result screens (fixes #2910) 2023-04-03 22:01:26 +02:00
matejcik
6d434122f7 feat(core/bootloader): emulator can now show custom error screens 2023-04-03 22:01:26 +02:00
matejcik
2dd44786d5 fix(core/emulator): use a gamma lookup table for better fadein/fadeout performance 2023-04-03 22:01:26 +02:00
matejcik
6e85d61688 feat(core): QA build for testing bootloaders / upgrades
[no changelog]
2023-04-03 22:01:26 +02:00
matejcik
56047bd34a chore(core): regenerate unsigned and dev-signed vendor headers 2023-04-03 22:01:26 +02:00
matejcik
25660144f0 chore(core): update vendor header definitions
* change version format to match the new code
* change devel vendor header size - fixes #659
* add definition for QA vendor header, with production-like flags but
  devel key

THIS QA VENDOR HEADER MUST NOT BE SIGNED BY PRODUCTION KEYS
2023-04-03 22:01:26 +02:00
matejcik
288cd11b2a refactor(core/bootloader): inline "wait for click" into ui_screen_boot_click 2023-04-03 22:01:26 +02:00
matejcik
e10b6ecc26 feat(core/rust): improve behavior of from_c_str / from_c_array 2023-04-03 22:01:26 +02:00
tychovrahe
7e96b96d00 feat(core/bootloader): remove different logo color when firmware present 2023-04-03 22:01:26 +02:00
matejcik
ae9960ca61 feat(core): introduce bootloader emulator 2023-04-03 22:01:26 +02:00
matejcik
af6c6d43ed fix(core/unix): add miscellaneous missing header entries 2023-04-03 22:01:26 +02:00
matejcik
07addae05f feat(core/unix): add blocking reads and deinit code to emulated UDP-USB 2023-04-03 22:01:26 +02:00
matejcik
497ead7111 feat(core/unix): fill out (non-persistent) OTP functionality 2023-04-03 22:01:26 +02:00
tychovrahe
9b8984896e refactor(core): unify error screens
[no changelog]
2023-04-03 22:01:26 +02:00
tychovrahe
64bc94cbc9 feat(core): uninitialized welcome flow
[no changelog]
2023-04-03 22:01:26 +02:00
tychovrahe
2537436211 feat(core): update bootloader style
[no changelog]
2023-04-03 22:01:26 +02:00
tychovrahe
6e0c2578f8 fix(core): fix FMC initialization
[no changelog]
2023-03-31 22:34:14 +02:00
tychovrahe
dcda5e0142 feat(core): support old homescreen format
[no changelog]
2023-03-30 19:06:35 +02:00
Martin Milata
2388a8edea style(core/rust/ui): rename Map to MsgMap
[no changelog]
2023-03-30 13:55:54 +02:00
Martin Milata
08cad2f909 fix(core/ui): coinjoin layouts style update
[no changelog]
2023-03-30 13:55:54 +02:00
tychovrahe
0fb55553b7 fix(core): increase work buffer size for jpeg decompression
[no changelog]
2023-03-29 21:39:05 +02:00
grdddj
d8cad1f4a9 chore(core): bump bootloader version to 2.1.0
[no changelog]
2023-03-28 15:34:06 +02:00
grdddj
26edb42979 chore(core): bump version to 2.6.0
[no changelog]
2023-03-28 15:34:06 +02:00
matejcik
9244522721 fix(core): remove shutdown()
In a very weird situation, our declaration of `shutdown()` shadows a
function `shutdown(int, int)` from sys/socket, which _just happens_ to
be called by libxcb when closing the sdl window. This calls
`main_clean_exit` which calls into micropython and causes at best an
uncaught NLR and at worst an outright segfault because by that time the
micropython environment doesn't exist anymore.

I didn't think this sort of thing would be possible but here we are??

Fixed by removing `__shutdown()` and replacing `shutdown` with
`trezor_shutdown`
2023-03-24 13:24:46 +01:00
Martin Milata
e60ed788f2 fix(core/rust/ui): add cargo flag for Component::bounds() support
Rarely used debugging feature.

[no changelog]
2023-03-23 20:16:22 +01:00
Martin Milata
afe965687f fix(core/ui): style update: frame and corner button
[no changelog]
2023-03-23 20:16:22 +01:00
Martin Milata
670cbd7a1d fix(core/ui): style update: paging
[no changelog]
2023-03-23 20:16:22 +01:00
Martin Milata
19a2ea21b6 fix(core/ui): Model T style update
[no changelog]
2023-03-23 20:16:22 +01:00
Martin Milata
3623f966dc fix(core/rust/ui): fix text baseline calculation
[no changelog]
2023-03-23 20:16:22 +01:00
Martin Milata
4199d4ad41 fix(core/ui): style update: fonts
[no changelog]
2023-03-23 20:16:22 +01:00
grdddj
31ef923e15 fix(core): create separate display buffer for gamma correction
So that the screenshots in UI tests are not affected by it.
Also not doing the gamma correction in case of SDL_VIDEODRIVER=dummy.

[no changelog]
2023-03-23 17:35:09 +01:00
grdddj
70120b72cc feat(core): allow for changing the emulator gamma correction value by keyboard arrows
[no changelog]
2023-03-23 09:37:59 +01:00
grdddj
a1974f6953 feat(core): perform 0.55 gamma correction on emulator display
[no changelog]
2023-03-23 09:37:59 +01:00
tychovrahe
3f54b84aef fix(core/bootloader): fix retries when reading from USB 2023-03-22 15:09:39 +01:00
Martin Milata
dce876069b Merge branch 'release/23.03'
Conflicts:
	legacy/firmware/version.h
	tests/ui_tests/fixtures.json
2023-03-20 13:02:35 +01:00
Jan Šetina
04964dc2e8 feat(core/ui): change GREY_DARK and GREY_MEDIUM
[no changelog]
2023-03-13 01:34:14 +01:00
Martin Milata
b8abccbc94 feat(core/rust/ui): implement Clone for StrBuffer
[no changelog]
2023-03-09 23:36:36 +01:00
Martin Milata
4af5939a0b feat(core/ui): redesigned receive flow
[no changelog]
2023-03-09 23:36:36 +01:00
Martin Milata
1b94a7cb7b feat(core/ui): page break icons
Co-authored-by: grdddj <jiri.musil06@seznam.cz>

[no changelog]
2023-03-09 23:36:36 +01:00
Martin Milata
4622aec0f1 refactor(core): switch to Rust implementation of QR-Code-generator
[no changelog]
2023-03-09 23:36:36 +01:00
tychovrahe
d633fa885b feat(core/rust): model R bootloader implementation in rust 2023-03-09 16:14:36 +01:00
tychovrahe
659c939080 fix(core/rust): fix glyph positioning in TextOverlay 2023-03-09 16:14:36 +01:00
tychovrahe
e30fdddd83 fix(core): clear model R display before turning it on 2023-03-09 16:14:36 +01:00
tychovrahe
5a991f3244 feat(core/rust): bootloader implementation in rust 2023-03-09 16:14:36 +01:00
matejcik
f9612898ab feat(core/rust): improved error reporting 2023-03-09 16:14:36 +01:00
matejcik
e0bcdb16e0 refactor(core/rust): clarify safety of StrBuffer creation 2023-03-09 16:14:36 +01:00
matejcik
b864ad58b2 feat(core/rust): cleaner backlight functions 2023-03-09 16:14:36 +01:00
tychovrahe
9b9443ead7 feat(core/rust): added color constructor from rgba format, added text display functions using top-left coordinates 2023-03-09 16:14:36 +01:00
tychovrahe
a1312d8453 feat(core/rust): added button with icon and text 2023-03-09 16:14:36 +01:00
tychovrahe
e75f112ec2 feat(core/rust): expose touch processing functions to rust 2023-03-09 16:14:36 +01:00
tychovrahe
cacae36c73 feat(core/rust): bootloader compilation with rust 2023-03-09 16:14:36 +01:00
tychovrahe
3b23621bea feat(core): modify bootloader linkerscript to support rust 2023-03-09 16:14:36 +01:00
Jan Šetina
d540c52c0c chore(core): change the homescreen 2023-03-09 14:03:48 +01:00
Jan Šetina
30b636079e chore(core): change the color definitions 2023-03-09 14:03:48 +01:00
grdddj
1215268ae9 chore(rust): decrease icon top margin on welcome screen to 48 px
[no changelog]
2023-03-02 15:58:58 +01:00
tychovrahe
ead61d1e90 refactor(core): improve flexibility of build, allow different touch panel driver, allow STM32F429
[no changelog]
2023-03-02 15:56:33 +01:00
Martin Milata
557e29769b feat(core/ui): redesigned passphrase dialogs
[no changelog]
2023-02-28 23:30:38 +01:00
Martin Milata
233a292fd2 Merge branch 'master' into secfix/23.03
Conflicts:
	core/Makefile
	core/SConscript.firmware
	core/embed/firmware/bootloader.bin
	core/embed/firmware/bootloaders/bootloader_T.bin
	core/embed/firmware/bootloaders/bootloader_T2T1.bin
	python/src/trezorlib/firmware/core.py
	python/src/trezorlib/firmware/models.py
2023-02-28 15:20:36 +01:00
Andrew Kozlik
9528e2f9eb feat(common): Add Apple to known FIDO services. 2023-02-28 10:54:48 +01:00
grdddj
acec852aa4 feat(core): show welcome screen after device is connected
[no changelog]
2023-02-27 13:22:09 +01:00
Martin Milata
afb5c55416 feat(core/ui): reset_device copy change
[no changelog]
2023-02-17 12:35:19 +01:00
tychovrahe
9f7edf210e feat(core/rust): basic marquee implementation
[no changelog]
2023-02-10 19:33:12 +01:00
tychovrahe
9aa8662ba9 feat(core): implement loaders for T2B1
[no changelog]
2023-02-08 12:18:33 +01:00
tychovrahe
52cd43bf29 fix(core): improve tearing effect prevention
[no changelog]
2023-02-07 19:05:01 +01:00
Martin Milata
099d00de84 perf(core/rust): use less Button instances in PassphraseKeyboard
[no changelog]
2023-02-06 17:35:31 +01:00
Martin Milata
0df81b18e3 perf(core/rust): parse Toif metadata on demand
[no changelog]
2023-02-06 17:35:31 +01:00
Martin Milata
194868438a perf(core/rust): drop NamedToif
Makes structs larger despite only being used in panic.

[no changelog]
2023-02-06 17:35:31 +01:00
tychovrahe
8f7cbf7b9d fix(core): update fat fs library to R0.15 2023-02-02 16:22:23 +01:00
grdddj
f8c432e955 chore(core/rust): delete model_1 code - it should use model_r
[no changelog]
2023-01-31 10:55:12 +01:00
tychovrahe
236396338c refactor(core/rust): introduce icon/image type
[no changelog]
2023-01-30 12:33:39 +01:00
tychovrahe
461f566777 fix(core/bootloader): fix detection of installed firmware
[no changelog]
2023-01-26 11:56:08 +01:00
grdddj
571bb79e33 chore(core): delete unused bip39/slip39 micropython/C bindings
[no changelog]
2023-01-25 19:17:56 +01:00
tychovrahe
4603b9ee74 build(core): embed bootloader according to trezor model
[no changelog]
2023-01-20 19:47:12 +01:00
tychovrahe
1359b21508 feat(core): confirm homescreen image with thumbnail
[no changelog]
2023-01-19 14:11:42 +01:00
tychovrahe
d00e87ea80 feat(core/rust): homescreen background image
[no changelog]
2023-01-19 14:11:42 +01:00
tychovrahe
12f87aa01e fix(core): fix usb disconnected warning in new homescreen
[no changelog]
2023-01-19 14:11:42 +01:00
tychovrahe
02e2b50d3f feat(core/rust): tjpgd in rust
[no changelog]
2023-01-19 14:11:42 +01:00
matejcik
497285f9a1 feat(core): make first steps to unify Rust API for both models
wip: unify confirm_action

wip: unify confirm_fido

wip: unify request_pin, clean up prompts

wip: unify select_word

wip: unify request_number

refactor(core/reset): refactor confirm_share_words

[no changelog]
2023-01-13 17:09:25 +01:00
tychovrahe
115f7daaaa feat(core): prevent installing and running of incompatible firmware, prevent bootloader downgrade 2023-01-12 15:38:36 +01:00
tychovrahe
99d4b0185a fix(core): fix model T display reinitialization crash
[no changelog]
2023-01-11 16:19:02 +01:00
tychovrahe
3cc66301c3 fix(core): fix model T FMC timing
[no changelog]
2023-01-04 13:04:57 +01:00
tychovrahe
3cd47f85af feat(legacy): qa build for upgrade testing 2023-01-02 11:03:38 +01:00
tychovrahe
305b7fe84d fix(core/rust): fix position calculation from center and size
[no changelog]
2022-12-16 16:41:24 +01:00
Martin Milata
bdec3f3979 fix(core/rust/ui): polish confirm_fido
[no changelog]
2022-12-15 17:24:15 +01:00
Martin Milata
2a3aabb57e refactor(core/rust/ui): avoid homescreen flicker during workflow restarts
[no changelog]
2022-12-13 17:15:15 +01:00
Martin Milata
5b3db7eca1 refactor(core/rust/ui): homescreen layouts
[no changelog]
2022-12-13 17:15:15 +01:00
tychovrahe
12b3dc23db fix(core/rust): fix bip39 input not recognizing three-letter words that could continue
[no changelog]
2022-12-13 00:38:23 +01:00
Martin Milata
1b4dff6275 fix(core/rust/ui): respect DISABLE_ANIMATION
[no changelog]
2022-12-12 16:00:42 +01:00
Martin Milata
95d8a21294 feat(core/rust/ui): progress indicators
[no changelog]
2022-12-12 16:00:42 +01:00
Martin Milata
11ffee0b45 refactor(core/rust/ui): use AsRef instead of Deref
[no changelog]
2022-12-12 16:00:42 +01:00
tychovrahe
387af03842 fix(core/rust): optimize keyboard behavior
[no changelog]
2022-12-09 22:35:39 +01:00
Martin Milata
701d75d6d8 fix(core/rust/ui): handle very long scrollbars on Model T
[no changelog]
2022-12-07 16:47:30 +01:00
Martin Milata
4135b00708 refactor(core/rust): support for StrBuffer slicing
[no changelog]
2022-12-06 10:40:32 +01:00
Martin Milata
452857757a feat(core/rust/ui): support ask_pagination flag in confirm_blob
[no changelog]
2022-12-06 00:26:25 +01:00
tychovrahe
38548f02f2 feat(core/rust): special shape erase button
[no changelog]
2022-11-30 13:49:12 +01:00
Martin Milata
a61a46808e fix(core/rust/ui): no hyphens when breaking monospace lines
[no changelog]
2022-11-29 21:03:06 +01:00
Martin Milata
3b92923caa feat(core/rust/ui): on-the-fly conversion of bytes to hexadecimal representation
[no changelog]
2022-11-29 21:03:06 +01:00
tychovrahe
4c7060186a fix(core): fix display blinking by increasing backlight pwm frequency 2022-11-24 13:22:30 +01:00
grdddj
61277bd80a feat(core/ui): implement webauthn layouts for UI2
[no changelog]
2022-11-24 13:03:34 +01:00
matejcik
e80712f4d9 chore(core/rust/ui): workaround for "re-enter wipe code"
[no changelog]
2022-11-24 13:03:34 +01:00
matejcik
4200539546 refactor(core/rust/ui): redesign Label to make use of TextLayout machinery
also replace LabelStyle with TextStyle

[no changelog]
2022-11-24 13:03:34 +01:00
matejcik
3f6ea00e02 feat(core/rust/ui): expose text_max_height and baseline
[no changelog]
2022-11-24 13:03:34 +01:00
matejcik
615c8a0e64 fix(core/embed): better clamping of coordinates
[no changelog]
2022-11-24 13:03:34 +01:00
matejcik
9708175d19 fix(core/rust): improve & document safety of slice operations
[no changelog]
2022-11-24 13:03:34 +01:00
tychovrahe
0d733d8e22 feat(core): change display type for model R
[no changelog]
2022-11-24 11:37:52 +01:00
tychovrahe
1bad41ddb0 fix(core/rust): fix success animation
[no changelog]
2022-11-21 22:20:35 +01:00
matejcik
d1126b85be feat(rust): expose micropython lists as slices
[no changelog]
2022-11-21 18:15:48 +01:00
grdddj
f48890afb3 chore(tests): make all the device tests work with UI2 2022-11-21 14:08:47 +01:00
grdddj
ae525fed26 chore(core/ui): delete unused arguments to layouts 2022-11-21 14:08:47 +01:00
matejcik
f1c7129d06 feat(core/model_r): only refresh screen on display_refresh
Given that on Model R we have a frame buffer, let's not push out pixels
one by one.

[no changelog]
2022-11-08 15:03:21 +01:00
tychovrahe
a89d139dc9 feat(core): increase clock frequency to 180 MHz 2022-11-04 15:10:55 +01:00
Martin Milata
e778ec4af4 chore(core/rust/ui): avoid nested Child as LayoutObj root
[no changelog]
2022-11-03 16:50:03 +01:00
Martin Milata
bf7587574d chore(core): bump version to 2.5.4
[skip_ci]
2022-11-01 14:03:31 +01:00
tychovrahe
6e36f479db fix(core/rust): fix prompt rendering over warning in pin keyboard
[no changelog]
2022-10-31 22:23:26 +01:00
Martin Milata
40a405abea fix(core/rust/ui): remove extraneous Child wrappers
[no changelog]
2022-10-31 14:40:40 +01:00
Andrew Kozlik
627ef9748f feat(core): Remove coin name from CoinJoin confirmation dialog.
[no changelog]
2022-10-26 14:02:03 +02:00
Dusan Klinec
26711857e8 refactor(xmr): remove old BP code 2022-10-25 21:36:03 +02:00
grdddj
8668eba936 feat(core/ui): implement altcoin screens for UI2
[no changelog]
2022-10-24 13:38:31 +02:00
grdddj
23a0a37a45 feat(core/rust/ui): support longer passphrases
[no changelog]
2022-10-22 17:01:09 +02:00
tychovrahe
da83d98539 refactor(core/rust): use icon blending for three-color icons
[no changelog]
2022-10-22 12:20:42 +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
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
d815a7d6de chore(core): Use C implementation of Bech32 decode. 2022-10-17 15:20:46 +02:00
matejcik
cac98ad7d4 feat(core/rust): implement storage wrapper layer
[no changelog]
2022-10-13 09:18:20 +02:00
tychovrahe
99eaaae28e build(core): redistribute content in flash
[no changelog]
2022-10-03 09:43:53 +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
tychovrahe
e3d5c178f1 feat(core): enable bus fault and usage fault handlers
[no changelog]
2022-09-13 15:04:40 +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
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
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
Andrew Kozlik
fa5e7feda6 fix(crypto): Fix nonce bias in CoSi signing. 2022-08-02 20:38:04 +02:00
matejcik
a6410693b3 Revert "feat(core): implement firmware dumping"
This reverts commit 37c61c1381.
2022-08-02 17:12:07 +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
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
Christian Reitter
c5d22b4395 fix(core): correct range in error message 2022-07-01 14:50:19 +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
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
Andrew Kozlik
892f3e348d fix(crypto): Remove public key from the ed25519 signing API.
[no changelog]
2022-06-27 18:59:08 +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
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
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
6319a5a9d0 feat(core/rust): BIP-39 wordlist operations in Rust 2022-06-01 16:35:33 +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
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
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
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
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
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
Martin Milata
18c8304339 fix(core): leftover TREZOR_MODEL defines
[no changelog]
2022-04-28 16:47:22 +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
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
Martin Milata
1f612580f7 feat(core): enable UI tests for redesigned UI
[no changelog]
2022-04-07 17:58:41 +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
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
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
Pavol Rusnak
6052e71bbb fix(core): fix build with FEATURE_FLAGS.SECP256K1_ZKP=False
[no changelog]
2022-03-18 12:03:41 +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
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
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
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
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
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
Pavol Rusnak
37bd121394 chore(core/embed): check for negative values in trezor_get_uint
[no changelog]
2022-01-26 16:22:50 +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
Pavol Rusnak
4a71d15b1d chore(core/embed): refactor trezor_obj_get_uint64 into trezorobj.h
[no changelog]
2022-01-19 11:16:47 +01:00
matejcik
45787307ca style(core): support AnyStr in all hash function arguments 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
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
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
1734957685 build(core): update rust edition to 2021
[no changelog]
2021-12-07 17:12:43 +01:00
Martin Milata
38c526719c chore(core): bump version to 2.4.4
[skip_ci]
2021-12-01 14:45:47 +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
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
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
Andrew Kozlik
aaceb5bcc6 chore(core): Remove USE_SECP256K1_ZKP_BIP340 build option. 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
matejcik
f6f52445bd feat(core/cardano): support Icarus, Icarus-Trezor, and Ledger derivations 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
Pavol Rusnak
a3b83685ef fix(core): fix emulator build on Apple Silicon
[no changelog]
2021-11-08 11:00:04 +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
matejcik
1d72085b5c feat(core): implement conversion from timestamp to datetime 2021-10-29 11:00:30 +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
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
matejcik
32be2c09b9 feat(core): enable f-strings for micropython
[no changelog]
2021-10-13 11:53:17 +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
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
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
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
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
a007e062ab style(core): apply rustfmt
[no changelog]
2021-09-16 14:57:06 +02:00
Tomas Susanka
cec1f39a90 chore(core, legacy): bump versions
[no changelog]
2021-08-31 12:55:37 +02:00
Martin Milata
f37ca13f1a refactor(core): disable SD, SBU, fatfs for T1 build 2021-08-20 12:22:13 +02:00
Martin Milata
582e1318c4 feat(core/emulator): support protobuf messages in memory dumps
[no changelog]
2021-07-22 13:31:11 +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
Martin Milata
ceaf4da617 fix(core): explicitly refresh display on T1
[no changelog]
2021-07-20 22:00:42 +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
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
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
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
Pavol Rusnak
69d1465e08
refactor(core): pass invert_colors to send_init_seq_ST7789V as argument
to make the call more flexible
2021-06-19 19:57:42 +02:00
Pavol Rusnak
18e103bb94
style(core): refactor style of display-stm32_T 2021-06-19 19:54:19 +02:00
matejcik
c06a93cba5 feat(core/rust): propagate bitcoin_only flag to Rust build 2021-06-08 09:55:19 +02:00
Jan Pochyla
8a21e3fc73 feat(core): Add Rust Protobuf codec 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
Martin Milata
ca836b2e45 chore(core): bump version to 2.4.1 2021-06-02 12:50:22 +02:00
Martin Milata
8c6b93e0bd build(core): account for ARM unwinding info in memory layout
Currently the 8-byte section is inserted under semi-random name like
.ARM.exidx.text._ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17h79ccbc4bdfe3f200E.
This makes it hard to include it in _codelen that is later baked into
firmware header. This change adds new section because including it in
.flash causes linker error due to mixing "ordered" and "unordered"
sections.

By renaming .exidx to /DISCARD/ we'd drop this info, there may also
exist compiler flag to do that.
2021-05-21 13:49:42 +02:00
Martin Milata
20fe8552ca build(core/rust): use correct architecture for T1
TT is Cortex-M4 is Armv7E-M while T1 is Cortex-M3 is Armv7-M:
https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/armv6-m-vs-armv7-m---unpacking-the-microcontrollers
2021-05-21 13:49:42 +02:00
Ondřej Vejpustek
6fd4739c5c feat(core): make random delays use chacha_drbg 2021-05-21 13:42:53 +02:00
Ondřej Vejpustek
e1a5f42c81 feat(core): make chacha_drbg more robust 2021-05-21 13:42:53 +02:00
Ondřej Vejpustek
8ee17f69b3 refactor(core): move wait_random and rdi into separate file 2021-05-21 13:42:53 +02:00
matejcik
e015bc0856 build(core/rust): disable nightly-only features
When we need them, we will re-enable.
2021-05-21 13:42:10 +02:00
matejcik
5f4240d93c feat(core): preallocate sys.modules to an appropriate size 2021-05-06 13:14:21 +02:00
matejcik
391976bcda refactor(core/usb): do not require serial number on instantiaton of USB
On a cleanly wiped device, storage must be unlocked in order to create
and retrieve the serial number. However, storage unlocking happens in
boot.py, which is imported _after_ usb.py

We must therefore sidestep asking for the serial number.
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
mcudev
e3539b0a73 core/embed/usb: add back usb fs code for t1 and redo fifo sizing 2021-04-14 23:03:29 +02:00
mcudev
6137a55b06 core/embed/usb: use all available usb endpoints and update the usb fifo sizing 2021-04-09 12:50:40 +02:00
Martin Milata
ac711fb8ee style(core): use more recent type annotation syntax
https://www.python.org/dev/peps/pep-0585/ - Type Hinting Generics In Standard Collections
https://www.python.org/dev/peps/pep-0604/ - Allow writing union types as X | Y
2021-04-01 11:12:30 +02:00
Martin Milata
8b3ac659a0 style(core): mypy: disable implicit Optional for function arguments
https://www.python.org/dev/peps/pep-0484/#union-types
2021-04-01 11:12:30 +02:00
Andrew Kozlik
2836bfc64c fix(core): Improve error handling and range checking in modtrezorconfig. 2021-03-26 10:54:56 +01:00
Andrew Kozlik
66823e2893 chore(core,legacy): Bump FIX_VERSIONs due to upgrade to storage version 3. 2021-03-25 14:24:41 +01:00
Andrew Kozlik
3084d1196d feat(core): Support 50 digit PIN and wipe code. 2021-03-25 14:24:41 +01:00
Pavol Rusnak
4649b80b44
feat(core): allow secp256k1-zkp for bitcoin-only build
(but keep it disabled)
2021-03-18 15:42:52 +01:00
Pavol Rusnak
d211e3af07
fix(core): switch define to invert display colors into const volatile
using define causes compiler to over-optimize the code in display_init_seq
leading to larger differences in the resulting binaries when the flag changes

we want to keep the difference to minimum (1 byte) and using const volatile
instead of define achieves that
2021-03-11 12:29:00 +01:00
Pavol Rusnak
e7966cc804
refactor(core): rework color definitions in bootloader 2021-03-10 18:33:00 +01:00
Pavol Rusnak
3294a49cec
fix(core): don't assert reset flags to allow "reboot to bootloader" 2021-03-10 18:31:51 +01:00
Pavol Rusnak
1e2bb337a9
refactor(core): drop buttons argument for ui_screen_firmware_info 2021-03-10 17:42:52 +01:00
Pavol Rusnak
814db111b2
feat(core): add define to invert display colors on ST7789V 2021-03-10 16:06:18 +01:00
Pavol Rusnak
5cff6ac964
doc(core): update comments around UDP emulator
drop unused define
2021-03-09 16:19:03 +01:00
Andrew Kozlik
a8c500bffd feat(core): Ensure that WebAuthn runs on port 21326 by default for both production and debug emulator. 2021-03-09 16:13:21 +01:00
Pavol Rusnak
ebfd51d818
fix(core): stay_in_bootloader should default to false, not true 2021-03-06 20:09:56 +01:00
Pavol Rusnak
efac5d56f5
fix(core): change touch i2c clock speed to 200 kHz
fixes #1519
2021-03-06 20:02:11 +01:00
Martin Milata
7c1d72c254 style(core): fix bootloader formatting 2021-03-04 19:21:56 +01:00
Pavol Rusnak
29a3e91f09 feat(core): refactor display_init_seq from display_init 2021-03-04 17:04:35 +01:00
Pavol Rusnak
5dd3d73d00
fix(core): remove unused stuff from bootloader_ci
plus minor ui function renames
2021-03-04 17:01:01 +01:00
Ondrej Mikle
a4ba24645b
feat(core): remove connect to host dialog in the bootloader 2021-03-04 16:34:30 +01:00
Pavol Rusnak
f3ae3615c7
fix(core): unify bootloader_ci with bootloader 2021-03-04 15:59:25 +01:00
Pavol Rusnak
b074404dcf
fix(core): small secbool refactor for bootloader_ci 2021-03-04 12:14:26 +01:00
Pavol Rusnak
2dc094bd3e
fix(core): small secbool refactors 2021-03-04 11:59:38 +01:00
Martin Milata
48627b7f0f fix(core): bootloader_ci build
See also f46380147f.
2021-02-15 20:55:54 +01:00
Pavol Rusnak
5395c542c1
chore(core): update changelog, bump version to 2.3.7 2021-02-13 11:16:11 +01:00
Pavol Rusnak
f46380147f fix(core): update sync protobuf messages in bootloader 2021-02-10 10:56:52 +01:00
matejcik
ccd241fe55 feat(core/cardano): enable typing for Cardano app 2021-02-10 10:56:52 +01:00
Ondrej Mikle
22d01b6ff4 chore(core): bootloader_ci - decouple file links from original bootloader 2021-01-27 23:43:38 +01:00
Pavol Rusnak
a11cb11ba3 chore(core): rework SYSTEMVIEW_DEST_SYSTEMVIEW
to work with ifdef instead of if
2021-01-26 20:53:38 +01:00
Ondrej Mikle
d99127771c chore(core): reorder includes 2021-01-26 20:53:38 +01:00
Ondrej Mikle
a628b9a92d chore(core): remove unneeded include 2021-01-26 20:53:38 +01:00
Ondrej Mikle
4cf91b128d style(core): systemview editorconfig reformat 2021-01-26 20:53:38 +01:00
Ondrej Mikle
9411756c42 style(core): systemview reformat 2021-01-26 20:53:38 +01:00
Ondrej Mikle
550216354b chore(core): more systematic systemview function definitions 2021-01-26 20:53:38 +01:00
Ondrej Mikle
869cfbbd1c style(core): style for systemview 2021-01-26 20:53:38 +01:00
Ondrej Mikle
0abcb57840 feat(core): place systemview buffers into CCMRAM 2021-01-26 20:53:38 +01:00
Ondrej Mikle
5a4166ea93 feat(core): increase systemview buffers 2021-01-26 20:53:38 +01:00
Ondrej Mikle
f591ce6789 feat(core): update systemview sources to 3.20 2021-01-26 20:53:38 +01:00
Ondrej Mikle
8fa3745838 feat(core): define RTT locking by enabling/disabling interrupts 2021-01-26 20:53:38 +01:00
Ondrej Mikle
ce3a6b649c feat(core): systemview header 2021-01-26 20:53:38 +01:00
Ondrej Mikle
4a692cc63b feat(core): segger dependencies 2021-01-26 20:53:38 +01:00
Ondrej Mikle
5f837e12b9 feat(core): send messaged through systemview 2021-01-26 20:53:38 +01:00
Ondrej Mikle
60e4e06aa5 feat(core): measure systick with systemview 2021-01-26 20:53:38 +01:00
Ondrej Mikle
c5e986b1ba feat(core): enable SystemView at firmware start 2021-01-26 20:53:38 +01:00
Martin Milata
c293b52bd6 feat(core): bootloader_ci: do not ui_fadein/ui_fadeout 2021-01-26 17:21:16 +01:00
Martin Milata
2643ee2ab8 feat(core): bootloader_ci: wipe device without confirmation 2021-01-26 17:21:16 +01:00
Tomas Susanka
1006c8a0f1 chore(core,legacy): change versions to 1.9.5 and 2.3.6
This reverts commit 92535dc090.
2021-01-22 15:42:55 +01:00
Pavol Rusnak
92535dc090
chore(core,legacy): change versions back to 1.9.4 and 2.3.5
[skip_ci]
2021-01-22 14:23:11 +01:00
Pavol Rusnak
43ed13b323 feat(core): disable SECP256K1_ZKP feature flag 2021-01-22 14:06:29 +01:00
Pavol Rusnak
f3d5de15ef refactor(core): turn SECP256K1_ZKP into a firmware feature flag 2021-01-22 14:06:29 +01:00
Jan Pochyla
f3a64435f1
fix(core): root ui callback for trezorconfig mod (#1412)
Co-authored-by: Pavol Rusnak <pavol@rusnak.io>
2021-01-19 14:17:16 +01:00
Martin Milata
db5b65a420 perf(core): enable rendering of substrings to avoid slicing 2021-01-11 16:47:59 +01:00
Pavol Rusnak
93215ae3c7 style: reformat with clang-format 11 2021-01-04 14:40:16 +01:00
Rafael Korbas
edf9b4ee85 Refactor mnemonic_to_entropy to not (misleadingly) return checksum 2020-12-19 20:17:16 +01:00
Tomas Susanka
d2e3269ede chore(core): bump version to 2.3.6 2020-12-18 19:36:25 +01:00
Andrew Kozlik
aeb021b159 chore(core): Improve naming of SLIP39's T9 mask lookup. 2020-12-15 13:41:42 +01:00
Andrew Kozlik
7fc1851279 fix(crypto): Improve naming and robustness of SLIP39's T9 mask lookup. 2020-12-15 13:41:42 +01:00
Pavol Rusnak
0519c8bd13
Revert "chore(core): bump version to 2.3.6"
This reverts commit 01d1058048.
2020-11-26 16:48:47 +01:00
Tomas Susanka
01d1058048 chore(core): bump version to 2.3.6 2020-11-25 20:14:30 +01:00
Pavol Rusnak
b9c0b3969b
legacy+core: unify error codes in bootloaders (#1347) 2020-11-18 11:21:57 +01:00
Pavol Rusnak
50fdd183c2
ci: enable editorconfig checks, fix whitespace issues 2020-11-11 14:43:50 +01:00
Pavol Rusnak
ded61a4ccf
chore(vendor): update micropython to v1.13 2020-10-16 14:19:35 +02:00
Andrew Kozlik
c67ecb984b chore(crypto): Move XPUB_MAXLEN and ADDRESS_MAXLEN from modtrezorcrypto to bip32.h. 2020-10-13 13:13:49 +02:00
Andrew Kozlik
c21ca81a1e fix(core): Prevent sensitive data from being left on the call stack in modtrezorcrypto. 2020-10-13 13:13:49 +02:00
Pavol Rusnak
d8534b5ee6
perf(core/extmod): replace HMAC Python implementation with C
We keep Python implementation of HMAC for Monero in
core/src/apps/monero/xmr/crypto/__init__.py
2020-10-12 16:33:13 +02:00
Pavol Rusnak
649e31cef0 chore(core/bootloader): regenerate messages with nanopb 0.4.3 2020-09-24 10:52:31 +02:00
Tomas Susanka
0317877297 chore(core): bump version to 2.3.5 2020-09-24 10:17:32 +02:00
matejcik
7e5d9e295b fix(core): help mypy understand micropython's module management 2020-09-23 16:00:10 +02:00
Martin Milata
f3fd98a7ba core: remove 1px of space on the left of each glyph
For PixelOperator (T1) fonts only.
2020-09-01 19:57:46 +02:00
Martin Milata
b8bb63fbef core: drop unused FONT_SIZE constant 2020-09-01 19:57:46 +02:00
Tomas Susanka
d080464cc5 core, legacy: bump versions (also in changelogs) 2020-08-24 09:31:49 +02:00
Ondrej Mikle
8d3d3be09c
core/bootloader_ic: introduce CI bootloader for TT device tests (#1182) 2020-08-21 14:39:56 +02:00
Martin Milata
1b982659c4
core: fix boot loop after uploading invalid homescreen (#1205) 2020-08-21 12:00:42 +02:00
Pavol Rusnak
5536fbb98a python: use stdlib blake2s on python 3.6+
commit 6d407c84d7 did not replace everything
2020-08-10 23:35:38 +02:00
Pavol Rusnak
4e11735d22 core/modtrezorui: remove prefill from text functions
use display.bar where needed to prefill the areas
2020-08-07 15:08:14 +02:00
matejcik
5385617eda core: increase address length limit to accomodate CRW (fixes #1139) 2020-08-07 12:45:43 +02:00
Ondřej Vejpustek
59002118c0 core/extmod: explicitly initialize automatic variables 2020-08-04 14:50:07 +02:00
Pavol Rusnak
efc5ccdaf0
core: remove src1 2020-08-03 15:59:57 +02:00
Martin Milata
e5bdca655a core: don't scale emulator background image
Makes the emulator look nicer in tiling window managers.
2020-07-31 12:27:43 +02:00
matejcik
8502412dbc core/emulator: assume -m main when no arguments are provided
fixes #1115
2020-07-30 15:27:34 +02:00
Pavol Rusnak
a6451dad46
core/fonts: update headers 2020-07-28 10:56:41 +02:00
Pavol Rusnak
47e7550423
core/extmod: add font_pixeloperator{,mono}, use this font for T1 2020-07-28 09:40:30 +02:00
Pavol Rusnak
cec87bba50
core: remove mono bold font variant (not used anywhere) 2020-07-27 23:22:34 +02:00
Pavol Rusnak
8bc32d035b
core/extmod: enable display_text* methods for other models than T 2020-07-27 17:24:13 +02:00
Pavol Rusnak
df03534955
core: print inverted question mark for nonprintable characters 2020-07-27 16:29:11 +02:00
Pavol Rusnak
89d701ed08
core+legacy: bump versions (also in changelogs) 2020-07-27 13:59:49 +02:00
Pavol Rusnak
8dacad0782
core/bootloader: update protobuf definitions 2020-07-26 00:00:37 +02:00
matejcik
fa757f4b7f core: improve type annotation for bip32.derive_path 2020-07-24 16:37:58 +02:00
matejcik
0c3bc53aee core: clean up types for field caching, fix count_message 2020-07-24 14:09:31 +02:00
matejcik
f723dca7b1 core: enable PYSTACK 2020-07-24 14:09:31 +02:00
matejcik
85d74ece76 core: implement synchronous v1 codec 2020-07-24 14:09:31 +02:00
Andrew Kozlik
4005f4832f core/embed: Set VCP write timeout to 0. 2020-07-16 09:34:58 +02:00
Ondrej Mikle
33d2bf417b core: replace bootloader only in production. Fix device for T1 core port JLink upload 2020-07-13 10:45:32 +02:00
Tomas Susanka
f8b2f0bb7b changelogs: change also bootloader changelogs to the new format 2020-06-11 15:48:38 +00:00
Tomas Susanka
56fe5adcfc Merge branch 'release/2020-06' 2020-06-10 06:51:18 +00:00
Pavol Rusnak
179645e3ad core: unify usage of TREZOR_MODEL 2020-06-06 21:06:15 +02:00
Ondrej Mikle
c877dc8dd6 core: port storage to T1 2020-06-06 21:06:15 +02:00
matejcik
872e0fb0e0 core: lower scheduler resolution to milliseconds
This avoids problems with large timeouts causing the scheduler queue to
think the time counter has overflown, and ordering the autolock task before
immediate tasks.

The maximum reasonable time difference is 0x20000000, which in
microseconds is ~8 minutes, but in milliseconds a more reasonable ~6
days.
2020-06-04 16:18:46 +02:00
matejcik
2cedc687e6 core: disable trezor-crypto BIP32 cache 2020-06-04 16:18:46 +02:00
matejcik
837c4df61f core: expose storage_is_unlocked() as config.is_unlocked() 2020-06-04 16:18:46 +02:00
matejcik
87433995b0 core: add BITCOIN_ONLY to mock file 2020-06-04 16:18:46 +02:00
Tomas Susanka
8859d103f4 core, legacy: bump versions 2020-06-03 15:39:25 +00:00
Ondřej Vejpustek
24ceb0ab6b crypto/bignum: change limb size to 29, add tests 2020-05-24 14:36:38 +00:00
Ondrej Mikle
b01b24f090 core: change startup firmware file from .s to .S which enables preprocessing and fixes TT boot 2020-05-24 12:28:38 +02:00
Ondrej Mikle
10f0f107e0 core: Adds T1 core port FW flashing options for for openocd and jlink 2020-05-21 10:05:12 +02:00
Ondrej Mikle
0d65d684f0 core: T1 port can run on T1 bootloader with MEMORY_PROTECT=0 2020-05-21 08:49:59 +02:00
matejcik
aa52fc3903 core/extmod: drop unused rfc6979 module 2020-05-18 14:31:00 +02:00
matejcik
050936d0d7 core: enable finalizers on extmod classes 2020-05-18 14:31:00 +02:00
matejcik
7f2e7b0003 core: add Ethereum constants to mocks 2020-05-15 14:08:29 +02:00
Ondrej Mikle
7eddafe487 core: better formatting for common parts of T1 and TT header 2020-05-14 16:10:42 +02:00
Ondrej Mikle
c4c341b3f9 core: setup stack when running core on T1 2020-05-14 12:46:25 +02:00
Ondrej Mikle
e429085e96 core: copy firmware header for T1 port into final binary 2020-05-11 17:33:47 +02:00
Ondrej Mikle
d8115a7992 core: firmware header for T1 port 2020-05-11 15:43:43 +02:00
Pavol Rusnak
25cc836660
core/extmod: fix build of modtrezorui when TREZOR_MODEL is set to '1' 2020-04-30 15:07:26 +00:00
Tomas Susanka
47f104bceb core, legacy: bump versions 2020-04-24 17:12:20 +00:00
Ondřej Vejpustek
c461692f3a core: implement random delay interrupts 2020-04-16 11:51:28 +02:00
matejcik
2ccebd3175 core: raise SystemExit when exitting emulator (now that sys.exit is removed) 2020-04-14 10:17:37 +02:00
matejcik
4bddeefea0 core: unify mpconfigports for emulator and board
Changes in firmware/mpconfigport.h are minimal:

 * $VFS_FAT is dropped because it is irrelevant without $VFS
 * $REVERSE_SPECIAL_METHODS is added, to push down on code size
 * $THREAD is disabled unconditionally

unix/mpconfigport.h is reordered and modified to match
firmware/mpconfigport.h as much as possible, while selectively enabling
some needed features.

Notably, $USE_READLINE is enabled unconditionally
2020-04-14 10:17:37 +02:00
matejcik
d0f709b8cc core: fix and use MAKEMODULEDEFS instead of explicit registration 2020-04-14 10:17:37 +02:00
matejcik
a6976355c3 core: remove readline from built firmware 2020-04-14 10:17:37 +02:00
Pavol Rusnak
a7806d08d7
core/crypto: remove unused bip32.deserialize function 2020-04-06 18:04:24 +02:00
Pavol Rusnak
1695228d80
core/crypto: remove unused serialize_private function 2020-04-06 15:49:36 +00:00
Pavol Rusnak
f07ff17fad
core/crypto: add missing field to Blake2b constructor 2020-04-06 12:28:36 +00:00
Pavol Rusnak
336a417233 core/bootloader: distinguish between a vendor change and downgrade with wipe 2020-03-25 15:15:12 +01:00
Ondrej Mikle
634ed5aabc
core: commands for flashing via JLink (#911) 2020-03-23 10:40:06 +01:00
matejcik
3789a3372b core/sdcard: modify exception handling in fatfs
expose ff.c constants, raise them as arguments to FatFSError

introduce NotMounted and NoFilesystem as subclasses of FatFSError with
the appropriate error code set
2020-03-20 14:03:28 +01:00
Andrew Kozlik
bfd834d1de storage: Add storage_ensure_not_wipe_code(). 2020-03-19 15:04:33 +01:00
Dusan Klinec
2658e253fa xmr/bp: memory optimizations and improvements
- different approach to vector manipulation - more on the fly operations. Prepared for fully offloaded operations, BP on Trezor with constant memory.
- memory requirements reduced from (4MN + const) to (2MN + const)
- more raw methods to avoid unnecessary encoding/decoding
- chunking improved, chunk size set as a constant, changed from 64 to 32, missing pieces implemented to cover also BP 16
- proof_v8 support discontinued, old hardfork, not needed anymore
- get_exponent register clash fixed (for large vectors)
- reduced heap fragmentation by removing some temporary allocations
- hashing with len and offset to reduce heap fragmentation by creating a sliced arrays
- use to() wherever possible to avoid allocations and return of mutable private object
- global functions start with _ prefix, reduce import footprint
- use __slots__ in classes to minimize footprint
2020-03-02 12:17:03 +01:00
Tomas Susanka
86b010a18b
Merge pull request #878 from trezor/matejcik/fatfs-corruption
FatFS API rework
2020-02-27 15:58:38 +01:00
matejcik
9ab84d2455 core/tests: thoroughly test modified APIs 2020-02-27 10:56:23 +01:00
matejcik
b24411b900 core/sdcard: unmount instance when powering off sdcard 2020-02-27 10:56:23 +01:00
matejcik
c81be584fb core/fatfs: ensure functions can only be called on a mounted filesystem
ff.c has a lazy-mounting feature, where any filesystem call will mount
the volume if it can. This messes with predictability of the mounted
state, so all (except mount/unmount/mkfs) Python functions will first
check if the fs is mounted.
2020-02-27 10:56:23 +01:00
matejcik
fa746e2990 core/fatfs: rework low-level FatFS API
Instead of having possibly multiple FatFS objects, each with its own
`fs` struct, there is one global static fs_instance. This is to match
the mode of operation of ff.c, which assumes a global list of mounts,
and all functions operate on the global based on path.

Methods of FatFS were converted to functions on the fatfs module.

fatfs.unmount() does not call ff.c's unmount, but simply invalidates
fs_instance. This is basically what ff.c would do, except without
messing with ff.c's global list of mounts.
2020-02-26 14:18:41 +01:00
Pavol Rusnak
c896f02eb3
core/boardloader: use SRAM as SD card read buffer
because DMA can't access the CCMRAM
2020-02-25 17:59:16 +01:00
Andrew Kozlik
2133f7cf29 core: Prevent data loss when writing to USB VCP. 2020-02-25 12:08:07 +01:00
Pavol Rusnak
39ce100608
Merge pull request #864 from trezor/prusnak/bootloader-text-break
core/bootloader: split long vendor string
2020-02-21 18:39:20 +01:00
matejcik
4ed6487a19 core/sdcard: add out-of-bounds checks to emulator 2020-02-20 12:51:48 +01:00
matejcik
d0b1b171f1 core/sdcard: ensure emulator initializes the SD card when first needed 2020-02-20 12:51:48 +01:00
matejcik
5bd8d9b5bb core/sdcard: make allocating new SD card for emulator fast 2020-02-20 12:51:48 +01:00
matejcik
b2084a19be core/trezorio: move sdcard functions to a submodule 2020-02-20 12:51:48 +01:00
matejcik
30529d218d core/sdcard: change SDCard methods to plain functions 2020-02-20 12:51:48 +01:00
matejcik
06b89c57c5 core/sdcard: return proper disk status flags to fatfs 2020-02-20 12:51:48 +01:00
Pavol Rusnak
dc66bbe3d5
core/bootloader: split long vendor string 2020-02-19 21:40:28 +00:00
Pavol Rusnak
74802a107e
core/modtrezorui: add display_text_split 2020-02-19 21:40:28 +00:00
Pavol Rusnak
c4babd3c0b
Merge pull request #846 from trezor/bootloader-read-retry
core/bootloader: make read more benevolent and read error more helpful
2020-02-19 19:45:34 +01:00
Pavol Rusnak
581e46ff87
Merge pull request #845 from trezor/prusnak/webusb-popup
Don't show WebUSB popup in firmware, in bootloader only if no firmware present
2020-02-19 18:18:01 +01:00
Pavol Rusnak
2958a97c87
Merge pull request #830 from trezor/tsusanka/fw-upgrade
FW Update: Request a small chunk first to make the UI smoother
2020-02-15 13:08:33 +01:00
Pavol Rusnak
63dfd6c6ab
core/bootloader: make read more benevolent and read error more helpful 2020-02-12 22:05:29 +01:00
Pavol Rusnak
07cd73ce57
core: show webusb popup only in bootloader and only if firmware is not installed 2020-02-12 20:47:05 +00:00
matejcik
c14429c445 all: shut down emulator on error_shutdown 2020-02-12 13:31:31 +01:00
Tomas Susanka
2c0504ad1c
Merge pull request #803 from trezor/passphrase
Passphrase Redesign
2020-02-11 16:01:59 +01:00
Pavol Rusnak
32f8f1cb61
core/embed: update fatfs to 0.14; use upstream version 2020-02-07 15:21:16 +00:00
Pavol Rusnak
73ed2f3450
legacy: small nitpicks related to the new passphrase handling 2020-02-07 11:41:03 +00:00
Tomas Susanka
1343583d21
core: bump version to 2.3.0 2020-02-07 11:41:00 +00:00
Tomas Susanka
a02d7e3daf core/bootloader: request vendor header first 2020-02-06 12:22:32 +00:00
matejcik
d28e33ef02 core/headertool: support generating vendor headers with explicit size 2020-02-05 12:23:34 +01:00
Pavol Rusnak
6dbed1424f
core+legacy: update nanopb api to version 0.4 2020-02-04 17:18:27 +00:00
Pavol Rusnak
3eb7775659
core/bootloader: regenerate protobuf messages 2020-02-04 17:18:17 +00:00
Pavol Rusnak
4647e7d686
core+legacy: use nanopb generator from pipenv 2020-02-04 17:15:25 +00:00
matejcik
75264a07a8
Emulator launcher scripts (#796)
Emulator launcher scripts
2020-01-24 16:18:18 +01:00
Pavol Rusnak
3de1b3aa54
core/embed: switch to unprivileged in main.c 2020-01-24 12:29:46 +00:00
Pavol Rusnak
7a2e0c3412
core/embed: don't call functions via supervisor if in privileged mode 2020-01-23 18:18:59 +00:00
matejcik
27c4c2dd50 core: do not let frozen emulator import live files 2020-01-23 15:50:28 +01:00
matejcik
9341f0d584
core: improve building of vendor headers 2020-01-20 17:32:59 +01:00
Pavol Rusnak
500156b9ba
core/embed: don't use local copy of inflate 2020-01-18 17:09:52 +01:00
Tomas Susanka
7c41b40dff
tests: introduce UI tests for core with diffs (#784)
tests: introduce UI tests for core with diffs
2020-01-10 20:39:31 +01:00
Milan Rossa
8b31c6fcf4
core: increase stack size for unix port 2020-01-09 15:26:40 +01:00
Pavol Rusnak
9bc3af08b2
core: update mpconfigport.h from upstream (for both stm32 and unix) 2020-01-09 15:20:22 +01:00
Jan Pochyla
655ec0a70c core/unix: update main.c from upy 1.12 2020-01-07 20:52:43 +01:00
Jan Pochyla
7deade5a10 core/firmware: PendSV_Handler is defined in pendsv.c 2020-01-07 20:52:43 +01:00
Jan Pochyla
ecc4313a34 core/usb: avoid naks in hid/webusb rx interfaces 2020-01-07 20:52:43 +01:00
Tomas Susanka
51ef963738 tests: introduce UI tests for core 2020-01-03 14:28:27 +00:00
Pavol Rusnak
8572a5a942
core: fix interrupt usage in usbd_conf 2019-12-18 16:30:57 +00:00
Ondrej Mikle
0064fda203
core: check whether USB structures are correct to avoid faults in shutdown 2019-12-18 17:16:36 +01:00
Pavol Rusnak
6198509948
core: bump version to 2.2.1; update changelog 2019-12-16 19:06:33 +01:00
Milan Rossa
6d932a8a1d core/embed/unix/flash: Don't reopen flash emulation file. 2019-12-15 10:21:29 +01:00