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

660 Commits

Author SHA1 Message Date
Andrew Kozlik
ac78d1e2f3 trezorctl: Validate PIN digits and length. 2020-03-17 11:53:48 +01:00
Andrew Kozlik
2f905a1157 core/webauthn: Add algorithm and curve to WebAuthnListResidentCredentials response. 2020-03-12 15:45:26 +01:00
Michail Brynard
c2635a4773 python: fix encoding errors in Stellar 2020-03-02 16:01:15 +01:00
matejcik
b916072389 common: restore PassphraseAck.state 2020-02-24 15:15:09 +01:00
matejcik
5523c7bbef tests: add SD card format feature tests 2020-02-20 12:51:48 +01:00
matejcik
ddee77ecb6 core: add SD clearing via debuglink 2020-02-20 12:51:48 +01:00
Tomas Susanka
ff1bb67abc common: return the PasshraseType button request 2020-02-20 08:04:35 +00:00
matejcik
e61b7d28e9 all: do not send state in PassphraseAck (not needed for compatibility) 2020-02-13 15:44:50 +01:00
matejcik
3959600760 python/protobuf: do not warn for unknown enum values (fixes #832) 2020-02-13 15:37:14 +01:00
matejcik
cdb7a7eb68
Merge pull request #840 from trezor/matejcik/sys-exit
wipe code activation tests
2020-02-13 15:11:33 +01:00
matejcik
0ec628ccd4 legacy: fix CALLBACK checker 2020-02-12 17:18:51 +01:00
matejcik
1cc1382153 python/trezorctl: improve get-session 2020-02-12 17:18:50 +01:00
matejcik
81a03edf61 python/debuglink: add docstrings, rename functions for clearer usage 2020-02-12 15:38:18 +01:00
matejcik
271da3fa39 python: add detailed logging to emulator runner 2020-02-12 13:31:58 +01:00
matejcik
7a253a6c0b python/debuglink: properly clean up at end of "with client" 2020-02-12 13:31:31 +01:00
matejcik
94b85efba1 python/debuglink: make pin sequences configurable 2020-02-12 10:36:42 +01:00
Tomas Susanka
2c0504ad1c
Merge pull request #803 from trezor/passphrase
Passphrase Redesign
2020-02-11 16:01:59 +01:00
matejcik
1ebaaa7e77 python/emulator: increase tolerances
This should help in CI where things can sometimes take a long time.
2020-02-11 13:20:35 +01:00
matejcik
a375460afc python/emulator: fix timeout parameter in emulator.wait() 2020-02-11 13:20:35 +01:00
matejcik
05a1d6f771 core/debug: add "show arbitrary screen" capability, for easier prototyping 2020-02-11 11:53:34 +01:00
matejcik
c01d04f26e common/protob: drop a default field declaration
which triggers nanopb bug https://github.com/nanopb/nanopb/issues/487
2020-02-11 11:53:34 +01:00
matejcik
4b0d8d5f6d python/trezorctl: tweak error message in get-session 2020-02-10 16:22:48 +01:00
matejcik
7f63cf28b0 python: only set session_id from Features on firmwares that send it 2020-02-10 16:15:45 +01:00
matejcik
d4343ad8b7 python/trezorctl: add get-session 2020-02-10 16:14:21 +01:00
matejcik
8d93503c9c python: do not send deprecated state in PassphraseAck on T1 2020-02-10 15:38:26 +01:00
matejcik
f7608f55ff python: implement backwards compatibility for pre-2.3.0 firmwares 2020-02-10 13:01:47 +01:00
matejcik
4c9689d7a7 common: return deprecated fields to protobuf, to allow cross-version compatible code 2020-02-10 12:35:28 +01:00
Tomas Susanka
56dc952495 common: fix PassphraseAck.on_device id 2020-02-07 14:19:01 +00:00
Pavol Rusnak
73ed2f3450
legacy: small nitpicks related to the new passphrase handling 2020-02-07 11:41:03 +00:00
matejcik
ee07b32f52
python: fix debuglink usage of get_passphrase 2020-02-07 11:41:02 +00:00
matejcik
7513a65f9a
python: move passphrase-on-host logic to UI class 2020-02-07 11:41:01 +00:00
matejcik
23ad62e719
python: bump versions 2020-02-07 11:41:01 +00:00
Tomas Susanka
dc53df772f
python: passphrase on host is the default for T1 2020-02-07 11:41:01 +00:00
Tomas Susanka
d5763d9cab
all: implement code review comments 2020-02-07 11:41:01 +00:00
Tomas Susanka
f3553f63f1
common: remove PassphraseRequest.on_device completely 2020-02-07 11:41:00 +00:00
Tomas Susanka
c65b57affb
core, legacy: remove passphrase_cached 2020-02-07 11:41:00 +00:00
Tomas Susanka
1ae5813cab
legacy: bump version to 1.9.0 2020-02-07 11:41:00 +00:00
Tomas Susanka
a3f3d4fcdb
remove ping.passphrase/pin 2020-02-07 11:41:00 +00:00
Tomas Susanka
466dc4732d
core/passphrase: add button requests 2020-02-07 11:40:59 +00:00
Tomas Susanka
cd09f9ce94
all: modify passphrase source to always on device 2020-02-07 11:40:59 +00:00
Tomas Susanka
eafd57c301
common, core: add passphrase entry capability 2020-02-07 11:40:58 +00:00
Tomas Susanka
90d5cdfd5b
all: rework passphrase
The `on_device` field is being moved to PassphraseAck, State messages
are removed. Features newly contain `session_id`.
2020-02-07 11:40:58 +00:00
matejcik
d28e33ef02 core/headertool: support generating vendor headers with explicit size 2020-02-05 12:23:34 +01:00
matejcik
0a052806c7 python: kill emulator if it doesn't become ready in time
this fixes a problem in upgrade-test, when one emulator fails to come up
and then blocks all other tests.
the CI task will still be failed, but at least we'll know at a glance
that it is a timeout problem
2020-01-28 16:15:09 +01:00
matejcik
37ea0773ea python: do not preload prev_txes, drop dependency on coins.json 2020-01-24 17:51:43 +01:00
matejcik
8dce2cf98c core: introduce emulator runner (fixes #466) 2020-01-23 18:43:20 +01:00
matejcik
05131c328d python: trezorctl should not print empty line if result is None 2020-01-23 15:50:28 +01:00
matejcik
c151fdeefd python: add wait-for-emulator command 2020-01-23 15:50:28 +01:00
Pavol Rusnak
a95405b693
python: don't use py3.6+ format strings yet 2020-01-21 16:29:13 +00:00
matejcik
4d7e3c8a23
python: use TREZOR_PATH in get_default_client 2020-01-20 17:33:00 +01:00
matejcik
1b04d1caa7
core/tools: drop tools obsoleted by headertool 2020-01-20 17:32:59 +01:00
matejcik
9341f0d584
core: improve building of vendor headers 2020-01-20 17:32:59 +01:00
matejcik
cc29b22f91
core/tools: introduce headertool 2020-01-20 17:32:58 +01:00
matejcik
b26a430b85
python/firmware: shorten names for vendor header fields 2020-01-20 17:32:58 +01:00
matejcik
3fc3231254
python/firmware: simplify calculate_code_hashes 2020-01-20 17:32:58 +01:00
matejcik
40477b836e
python/firmware: make header_digest function more intelligent 2020-01-20 17:32:58 +01:00
matejcik
18d4bd30a3
python/firmware: add production and development boardloader keys 2020-01-20 17:32:58 +01:00
matejcik
15bd35824b
python/cosi: improve API
cosi.verify was renamed to verify_combined, because it is pretty much
ed25519.verify, and the new name implies what it does in terms of the
CoSi scheme: verify a signature with already-combined public keys.

cosi.verify_m_of_n signature was simplified by not requiring the `n`
parameter, which is not important for verification. The updated function
was renamed to cosi.verify, because this is the standard CoSi
verification operation: given signature, digest, required number of
signatures, sigmask, and a list of public keys, verify that enough
signatures are indicated and that they sign the digest.
2020-01-20 17:32:58 +01:00
matejcik
941087179f
python/firmware: clarify firmware image types 2020-01-20 17:32:58 +01:00
matejcik
ab82382b1e
python/firmware: make header digest function public 2020-01-20 17:32:57 +01:00
matejcik
6cd976fdee
python/firmware: support bootloader headers 2020-01-20 17:32:57 +01:00
matejcik
7e6b39cd8e
python/firmware: mark reserved fields as private 2020-01-20 17:32:57 +01:00
matejcik
fb2c57d3c9
python/firmware: improve handling of bootloader keys 2020-01-20 17:32:57 +01:00
Dušan Klinec
af6a607b39 common/xmr: message changes optimizing runtime and memory (#786) 2020-01-12 22:24:18 +01:00
Tomas Susanka
51ef963738 tests: introduce UI tests for core 2020-01-03 14:28:27 +00:00
matejcik
b7c0a93d18 python: bump version in setup.py 2019-12-30 13:03:36 +01:00
robert
afc897d693 trezorctl: add u2f-counter to recover 2019-12-29 12:25:54 +01:00
matejcik
700c5e4f32 python: fix expand-words functionality in recovery (fixes #778) 2019-12-27 11:34:10 +01:00
Pavol Rusnak
d6a3725955
common: remove coins with no trezor compatible wallets 2019-12-15 18:19:36 +00:00
Pavol Rusnak
e5bdf0d51b
Merge pull request #742 from trezor/language
common: change language field to IETF BCP 47 language tag
2019-12-12 18:07:54 +01:00
Szymon Lesisz
21b6ab3e98 common: update zcash consensus branch_id (Blossom fork) (#745) 2019-12-11 16:27:28 +01:00
Pavol Rusnak
7646b97dca
common: divisibility -> decimals 2019-12-09 17:43:47 +01:00
matejcik
a46fd6f508 core: auto-generate FIDO icons 2019-12-09 16:31:46 +01:00
Pavol Rusnak
bb8d809a6d
common: change language field to IETF BCP 47 language tag 2019-12-08 11:27:10 +01:00
Pavol Rusnak
3d50bb5ed8
common: add Peercoin, regenerate coins 2019-12-05 09:43:32 +00:00
Andrew Kozlik
1bc8226a50 common, core: Add wipe_code_protection to the Features message. 2019-11-25 12:32:20 +01:00
Andrew Kozlik
83fab3c220 trezorctl: Add set wipe-code command. 2019-11-25 12:32:20 +01:00
Andrew Kozlik
4381511930 common: Add ChangeWipeCode message. 2019-11-25 12:32:20 +01:00
matejcik
34913a328a all: disallow most RecoveryDevice fields in dry-run (fixes #666) 2019-11-20 12:27:57 +01:00
matejcik
b6d46e93e1 python: auto-generate OPTIONS.rst 2019-11-18 11:50:07 +01:00
matejcik
65bb8cdf4e python/trezorctl: only accept json for sign-tx, document the format 2019-11-18 11:50:07 +01:00
matejcik
8f2b22a8f5 python: add more protobuf tests 2019-11-18 11:50:07 +01:00
matejcik
bd9bf4e2bc python: rename webauthn and u2f to fido 2019-11-18 11:50:07 +01:00
matejcik
8e4de5e929 python/trezorctl: split trezorctl into separate modules
Instead of all commands (like `load-device`, `change-pin`,
`tezos-sign-tx`, `ethereum-verify-message`...) living in trezorctl.py,
each functional group is now defined in a separate file.

With that, better structuring of the trezorctl command becomes
available:
- instead of `trezorctl set-label`, use `trezorctl set label`
- instead of `trezorctl change-pin`, use `trezorctl set pin`
- instead of `trezorctl enable-passphrase`, use `trezorctl set
passphrase enabled`

For common commands, such as `sign-tx`, it is possible to use the
currency name or shortcut:

- `trezorctl btc sign-tx`
- `trezorctl ethereum sign-tx`
- `trezorctl xtz sign-tx`
- `trezorctl doge sign-tx`
etc.

Some aliases have been retained for better compatibility. For others,
refer to `trezorctl --help` and `trezorctl <command> --help`.
2019-11-18 11:50:07 +01:00
matejcik
862e582ec1 tests: make {needs,no}_backup flags available in test suite 2019-11-13 16:48:35 +01:00
matejcik
fd8aed6105 all: drop XPRV feature of LoadDevice 2019-11-13 16:48:35 +01:00
Pavol Rusnak
16af7f1353 common: add {needs,no}_backup flags to LoadDevice, make it debug only 2019-11-13 16:48:35 +01:00
Tomas Susanka
90edad55fc python and tests: typos 2019-11-13 13:28:07 +00:00
Tomas Susanka
ef9900ee52 python: get u2f counter 2019-11-13 10:55:52 +00:00
Tomas Susanka
2a20287882 common/protobuf: add message for retrieving an increased u2f counter 2019-11-13 10:55:52 +00:00
EDmitry
e286bd46f9 Field "sender" is renamed to "from" in eosio ABI for un/delegatebw 2019-11-11 11:56:25 +01:00
matejcik
3349f737df python/debuglink: prevent race with recovery homescreen eating debuglink decisions 2019-11-07 11:27:45 +01:00
Pavol Rusnak
0040b916d2
common/defs: remove inactive coins 2019-11-03 10:44:22 +00:00
Andrew Kozlik
6cc44b133c tests/webauthn: Account for the increased limit on the number of resident credentials. 2019-11-01 16:14:16 +01:00
apollo
18c926a34b common/defs: fix zcore signing (#669) 2019-11-01 00:18:03 +01:00
Pavol Rusnak
5fe2f7e59c common/protob: remove ButtonRequest.data field 2019-10-24 11:11:43 +02:00
Adrian Nagy
384275ac73
core/tezos: support the new protocol update (005-BABYLON) 2019-10-23 17:53:10 +02:00
matejcik
32074c7bff python/udp: make socket timeout configurable 2019-10-22 17:06:49 +02:00
matejcik
c970ad437d tests: improve layout_lines API 2019-10-22 17:06:49 +02:00
matejcik
598e828844 python: ensure client session counter is never negative 2019-10-22 17:06:49 +02:00
matejcik
a8fc569016 debug: add support for general layout waiting 2019-10-22 17:06:49 +02:00
matejcik
370b2c4c49 tests: add click-based recovery test 2019-10-22 17:06:49 +02:00
matejcik
06e10f948d protobuf: send x/y coordinates, allow waiting for layout change 2019-10-22 16:55:30 +02:00
Tomas Susanka
0511cc8b8c core: add final mypy fixes! 2019-10-22 14:36:25 +00:00
Tomas Susanka
8f34b4c5de
Merge pull request #628 from trezor/tsusanka/sdprotect-fix
Skip sd protect test on device
2019-10-22 15:40:03 +02:00
Pavol Rusnak
ddd9bee059
common/defs: regenerate coins 2019-10-22 09:03:32 +00:00
matejcik
ccd1940ea8 tests: more assertions on sd_protect 2019-10-21 12:11:51 +02:00
Pavol Rusnak
178d58c763
common/defs: remove BTDX as it has no Trezor compatible wallet 2019-10-21 09:48:19 +00:00
Pavol Rusnak
4e5b60ec2b
common/defs: remove BITC per maintainer request 2019-10-20 17:11:43 +00:00
Pavol Rusnak
3ebc79f9b2
common/defs: remove MEC per maintainer request 2019-10-19 17:14:32 +00:00
Pavol Rusnak
9b7a2095b3
common/defs: update coins info 2019-10-18 10:14:33 +00:00
Pavol Rusnak
89794b89ae
python: regenerate coins.json 2019-10-17 15:25:48 +00:00
Tomas Susanka
f0cd99c545 common/protob: add sd card/protection to Features 2019-10-17 15:58:12 +02:00
sidhujag
de4c7bb855
common/defs: add SYS 2019-10-17 06:45:47 +00:00
Pavol Rusnak
d17ced9305
common/defs: remove ZCL as per maintainer request 2019-10-16 20:50:45 +00:00
Pavol Rusnak
d28bc3c3a6
common/defs: remove BSD - website does not exist, maintainer not reachable 2019-10-16 10:18:33 +00:00
Pavol Rusnak
3e20c51dbf
common/defs: remove MTNS - maintainer not reachable
website does not exist, backends don't work
2019-10-16 10:15:19 +00:00
apollo
74bcc05e2e common/defs: add ZCR (#611) 2019-10-11 21:01:11 +02:00
Andrew Kozlik
564b24191e debug: Add left and right swipe direction to DebugLinkDecision message and unify terminology around swipe direction. 2019-10-10 14:56:49 +02:00
Sirak Ghazaryan
8317774e06 common/defs: enable CRW (#600) 2019-10-07 14:39:37 +02:00
Tomas Susanka
1c676d7394 build: make gen 2019-10-02 20:53:30 +02:00
matejcik
4ec7e203d5 python: make style 2019-09-26 16:48:16 +02:00
matejcik
afe41d5fcf python: clear state with clear_session (fixes #525) 2019-09-26 15:50:41 +02:00
matejcik
4338e17757 python/trezorctl: dump raw protobuf bytes with -vv (fixes #117) 2019-09-26 15:41:42 +02:00
Pavol Rusnak
e05c6f8983
trezorctl: load-device -s will set label to SLIP-0014 if unset via -l 2019-09-23 14:38:50 +02:00
matejcik
4eb98c254a tests: only allow input_flow in a with-block 2019-09-20 15:47:34 +02:00
Pavol Rusnak
8da121ff5c
core+python: regenerate coins 2019-09-19 20:17:35 +02:00
Pavol Rusnak
df7094eb01
common/defs: regenerate support 2019-09-19 18:07:18 +02:00
Pavol Rusnak
68513a0b39
Merge pull request #538 from trezor/andrewkozlik/fido2-signcount
Disable FIDO2 signature counter for some relying parties
2019-09-19 17:00:51 +02:00
matejcik
8b4db0f074 trezorctl: use capabilities to detect Shamir backup (fixes #445) 2019-09-19 16:46:07 +02:00
Tomas Susanka
cefb1cf4fd core: refactor slip39 2019-09-19 16:38:29 +02:00
Andrew Kozlik
315a30b42b core/webauthn: Disable FIDO2 signature counter for some relying parties 2019-09-19 16:16:58 +02:00
Pavol Rusnak
5628d1254d
python: regenerate coins.json 2019-09-19 15:45:57 +02:00
Andrew Kozlik
f867b43251 trezorctl: Add sd-protect command. 2019-09-18 18:53:42 +02:00
Andrew Kozlik
06fc676cc9 common/messages: Add SdProtect message. 2019-09-18 18:53:42 +02:00
Andrew Kozlik
0677a8e570
Merge pull request #522 from trezor/andrewkozlik/fido2-mgmt
FIDO2 resident credential management
2019-09-17 20:35:53 +02:00
Pavol Rusnak
ae6d02edf5
python: typo in trezorctl 2019-09-17 18:35:04 +02:00
Andrew Kozlik
3e2ae5e469 trezorctl: Implement credential management command. 2019-09-17 18:32:31 +02:00
Andrew Kozlik
091053507d common/messages: Add credential management message. 2019-09-17 18:32:31 +02:00
matejcik
d1f36f42c0 trezorctl: properly check firmware_present (fixes #224) 2019-09-17 16:05:30 +02:00
Pavol Rusnak
8cd9ea49de
python: introduce --bitcoin-only option to trezorctl firmware-update 2019-09-07 19:12:37 +02:00
Tomas Susanka
9e42a73650 build: make gen 2019-09-02 08:25:58 +02:00
TheCreator
64034c6d7d common: enable UNO (#472) 2019-09-01 09:47:58 +02:00
matejcik
68e6a0077b style: fix import order in trezorlib/misc.py 2019-08-29 15:19:02 +02:00
matejcik
5b8f542436 python: do not accept bytes for str protobuf fields
fixes #283

also adds typing information to misc.py
2019-08-29 15:07:50 +02:00
matejcik
ab74f55a95 python: improve ethereum_sign_tx 2019-08-29 15:07:50 +02:00
matejcik
3209e82018 python: refresh features after ClearSession
ClearSession will clear pin and password caches, which would otherwise
not be reflected in Features
2019-08-29 15:07:50 +02:00
Pavol Rusnak
1a71c7a3e8
common: rename Features.features to Features.capabilities 2019-08-28 15:02:30 +02:00
Pavol Rusnak
dde4c12796
common: add Feature.ShamirGroups to features 2019-08-28 09:25:11 +02:00
Pavol Rusnak
93f18b09bd
core+python: regenerate Features 2019-08-27 17:30:49 +02:00
matejcik
3e90c7fe20 python/trezorctl: add warning when initializing a T1 with Shamir
fixes #445
2019-08-27 17:01:25 +02:00
matejcik
9ce2fceabe python: make gen_check fail if coins.json are outdated 2019-08-23 12:48:23 +02:00
matejcik
8e5aac9016
python: bump version to 0.11.5 (unreleased), add changelog 2019-08-22 18:15:37 +02:00
matejcik
132c827833
python: implement decoding of protobuf packed repeated fields
also add typing
fixes #426
2019-08-22 18:15:33 +02:00
Pavol Rusnak
cc184a0a30
common: introduce Features.features enum 2019-08-20 14:38:31 +02:00
Pavol Rusnak
2e59a1f445
python: add --beta switch to trezorctl firmware_update command 2019-08-16 18:43:43 +02:00
matejcik
9814f886ce gen: regenerate coins.json 2019-08-12 12:57:25 +02:00
matejcik
6d407c84d7 python: use stdlib blake2s on python 3.6+ 2019-08-12 12:57:25 +02:00
matejcik
aa19f9d737 python: show enum number in debug outputs 2019-08-12 12:57:25 +02:00
matejcik
67b879ac07 python: restructure package
This deserves some explanation.

* tests were moved to separate python/tests subdir
* trezorlib was moved to python/src, so that it does not exist on
PYTHONPATH by default
(see https://blog.ionelmc.ro/2014/05/25/python-packaging/ for details)
* everything was updated to understand the new structure
* trezorctl was changed from a top-level executable script to a module
`trezorlib.cli.trezorctl` and is installed via the entry_points
mechanism.
This should make it work normally on Windows!

The package should be installable as normal through pip and pipenv, no
changes are needed on that side.

The source package from pypi will include unit tests. (Device tests were
completely moved out). Wheel will exclude them, because users don't need
them.
That shrinks the .whl from 520 kB to 270 - nice!

python: reorganize remaining unit tests
2019-08-12 12:57:25 +02:00