1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-26 17:38:39 +00:00
Commit Graph

1549 Commits

Author SHA1 Message Date
matejcik
e1efd493fd trezorctl: updated firmware update flow
We can now locally verify firmware signatures and hashes. We also
recognize min_firmware_version, so this resolves #308

This also helps with #273, as trezorlib is now mostly usable for signing
firmware images.
2018-10-12 15:58:55 +02:00
matejcik
3e7b26b454 exceptions: smarter, nicer exceptions from Failures 2018-10-12 15:49:17 +02:00
matejcik
eb2b58e1f4 cosi: tests for new verify_m_of_n method 2018-10-12 12:58:49 +02:00
matejcik
ba365b5486 cosi: replace slow djb implementation of ed25519 with an optimized one
from https://github.com/pyca/ed25519

This makes the calculations several orders of magnitude faster, which
allows us to run the CoSi test in Travis. It also doesn't stop firmware
update for several seconds while we validate the CoSi signatures.

It's still essentially the same insecure implementation, fallible to all
the same timing attacks, and it shouldn't be used for anything except
validating public signatures of public data. But now it also takes about
as much time as it should on modern hardware.
2018-10-12 12:58:44 +02:00
Pavol Rusnak
3d5fa7a2f6
tests: refactor test_msg_resetdevice_skipbackup 2018-10-11 17:26:20 +02:00
Pavol Rusnak
16d9d58ee1
tests: add test in resetdevice for combination of display_random and skip_backup 2018-10-11 15:29:30 +02:00
Pavol Rusnak
a1ba9db744
tests: re-enable Decred test for T2 2018-10-10 13:44:36 +02:00
Matheus Degiovani
688e885903 decred: Add sign message tests (#318) 2018-10-10 13:35:31 +02:00
matejcik
88988172b9 bridge: perform HTTP request in read, not write
This allows us to return early from a `write`, which we need in cases
where we want to perform an operation inbetween `read` and `write` -
namely, callback for ButtonRequest should technically be invoked after
returning ButtonAck but before waiting for device's response.

Of course that doesn't really work. The callback will actually be
invoked _before_ ButtonAck, so there's still the condition that it must
return immediately or the device gets stuck with a black screen.

But doing this allows us to write code *as if* it worked, which lets the
other transports run free and wild, by which I mean, do the Right Thing
2018-10-10 13:15:28 +02:00
matejcik
ca7cbad1cf trezorctl: variable referenced before assignment (fixes #313) 2018-10-10 13:15:28 +02:00
matejcik
2b02af1126 trezorctl: bad call to click.echo (fixes #304) 2018-10-10 13:15:28 +02:00
matejcik
2d7c74c535 switch to click 7.0 2018-10-10 13:15:28 +02:00
matejcik
8618f44272 tests: fix signature of device.recover in expect-to-fail tests 2018-10-10 13:15:28 +02:00
matejcik
1d3fa77ab6 debuglink: allow with-block without expected_responses 2018-10-10 13:15:28 +02:00
matejcik
ffff11a462 style: isort & autopep 2018-10-10 13:15:28 +02:00
matejcik
886d4f18f4 device_tests: sample usage of input_flow 2018-10-10 13:15:28 +02:00
matejcik
0f7f694914 debug: fix test_msg_applysettings 2018-10-10 13:15:28 +02:00
matejcik
c37bc9c38e debug: improve infrastructure and expected message reporting 2018-10-10 13:15:28 +02:00
matejcik
fc7a76e2f3 tests: use stdlib mock instead of the third-party one 2018-10-10 13:15:28 +02:00
matejcik
a5abd70619 trezorlib: drop TrezorClientDebugLink from client.py 2018-10-10 13:15:28 +02:00
matejcik
06927e003e trezorlib: get rid of TextUIMixin
This also moves DebugLinkMixin to debuglink.py and converts the mixin to
a subclass of TrezorClient (which is finally becoming a
reasonable-looking class). This takes advantage of the new UI protocol
and is ready for further improvements, namely, queuing input for tests
that require swipes.

The ui.py module contains a Click-based implementation of the UI
protocol. Use of callback_* methods has been limited and will probably
be cleaned up further (The contract has changed so we'll try to make
third party code fail noisily. It is unclear whether a backwards
compatible approach will be possible).

Furthermore, device.recovery() now takes a callback as an argument. This
way we can get rid of WordRequest callbacks, which are only used in the
recovery flow.
2018-10-10 13:15:28 +02:00
Matheus Degiovani
6d9157c4a5 decred: Return tree and version in insight api (#319) 2018-10-10 12:44:54 +02:00
Pavol Rusnak
4f18d53219
nix: add shell.nix 2018-10-08 15:56:16 +02:00
Pavol Rusnak
00ebbbb1f3
tests: add test in resetdevice for combination of display_random and no_backup 2018-10-08 15:54:28 +02:00
Pavol Rusnak
cd006026dd
Revert "tests: enable Decred tests for T2"
This reverts commit d49a38d80f.
2018-10-08 14:34:26 +02:00
Pavol Rusnak
c395501d2d
trezorctl: add no-backup option to reset-device 2018-10-08 14:17:07 +02:00
Pavol Rusnak
d49a38d80f
tests: enable Decred tests for T2 2018-10-06 13:50:37 +02:00
Jonathan Cross
ed633dcbb5 Fixing typo in firmware_update (#317) 2018-10-05 13:19:47 +02:00
Pavol Rusnak
0f62c817d5
tests: fix warnings in test_msg_resetdevice_nobackup.py 2018-10-04 18:04:37 +02:00
Jochen Hoenicke
b4c5b996a1 Fix Qt5/4 import strategy.
- Try Qt5 before Qt4.
- Handle all exceptions (a ValueError is thrown if the wrong Qt was
  imported earlier)
2018-10-04 17:42:59 +02:00
Pavol Rusnak
3424f01ae7
tests: nitpicks in resetdevice_skipbackup, add resetdevice_nobackup 2018-10-04 17:40:53 +02:00
matejcik
d859fe36f7 coins: pick correct field name for TxApi 2018-10-04 17:14:46 +02:00
Pavol Rusnak
22e06d5c43
vendor: update trezor-common 2018-10-04 16:43:07 +02:00
matejcik
dbcc903e52 cardano: fix tests broken after binascii removal 2018-10-02 16:51:53 +02:00
matejcik
a66cf99b74 cosi: fix bug in signing code, make tests pass 2018-10-02 16:11:20 +02:00
matejcik
4ff5fb4492 build: drop rlp limitation for python<3.5 2018-10-01 14:04:40 +02:00
matejcik
4fb3acb029 style: uppercase hex constants to conform with black 18.9b0 style 2018-10-01 14:01:33 +02:00
matejcik
3dad046c12 travis: workaround for python 3.7 2018-10-01 13:56:35 +02:00
matejcik
7b98b5ac7c build: drop python<3.5 compatibility in CI and markers 2018-10-01 13:52:41 +02:00
matejcik
15d3b0c722 cosi: clarify convoluted parts of local signing code 2018-09-27 16:53:57 +02:00
Pavol Rusnak
4a0ca873eb trezorlib+tools: remove usage of binascii 2018-09-27 16:52:28 +02:00
Pavol Rusnak
7f55847ab1 tests: remove usage of binascii 2018-09-27 16:52:28 +02:00
Jan Pochyla
20e0acbc98
Merge pull request #312 from ph4r05/protobuf-update
Protobuf update to get_fields()
2018-09-20 15:00:56 +02:00
Dusan Klinec
61de49fae5
protob test fix after migration to get_fields() 2018-09-20 14:35:47 +02:00
Dusan Klinec
6b32e33c58
protobuf.py uses get_fields() 2018-09-20 13:57:26 +02:00
Dusan Klinec
376503817c
vendor: trezor-common version bump 2018-09-20 13:56:51 +02:00
Tomas Susanka
7e35dfa51e tests: style fix 2018-09-18 10:36:31 +02:00
Tomas Susanka
d66bb53619
Merge pull request #311 from zulucrypto/testStellarExplicitNativeAsset
Stellar - failing test when an asset type of native is explicitly specified
2018-09-18 10:34:44 +02:00
ZuluCrypto
0d5fc9bddd
Stellar - failing test when an asset type of native is explicitly specified (instead of just left blank) 2018-09-17 19:13:24 -06:00
Pavol Rusnak
73c8a1c11f
tests: cleanup lisk tests 2018-09-14 12:23:38 +02:00