1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-10-15 12:29:13 +00:00
Commit Graph

187 Commits

Author SHA1 Message Date
Pavol Rusnak
892bb8501a
fsm: ignore case for NEM addresses 2017-11-05 19:30:33 +01:00
Jochen Hoenicke
bbf6b1b097
Implemented VerifyMessage for bech32 2017-11-05 19:28:07 +01:00
Jochen Hoenicke
97581928de
Enable Segwit Bech32 addresses
Increase the size of the addresses in protobuf.
Fix layout2.c to handle longer addresses.
Add a field bech32_prefix to coins.h
Adapted the coins-gen script.
Added bech32 support in signing.c and transaction.c
2017-11-05 19:28:07 +01:00
Jochen Hoenicke
cf3dc6051c Omit leading space in shortcut in GetFeatures 2017-11-05 19:23:34 +01:00
Jochen Hoenicke
1566631023 Improved backwards compatibility of GetFeatures
Set all CoinType fields except signed_message_header.
Move static assert into the function where it is needed.
2017-11-05 19:23:34 +01:00
Jochen Hoenicke
b5fa8a266a New CoinInfo separated from protobuf structures
Having CoinType using the protobuf structures has several disadvantages.
- We always need to change trezor-common if we need a new field (like
  bech32 prefix)
- Every time Trezor initializes it sends all this information out and
  nobody cares.
- The protobuf structures add storage overhead due to their fixed size.

I also removed most of the `has_` fields except for forkid:
- `has_segwit` was merged with segwit
- `has_coin_shortcut` can be replaced by test for NULL if necessary.

The fields were reordered for better padding.
2017-11-05 19:23:34 +01:00
Pavol Rusnak
18d8cb3c56
add project website (trezor.io) to license header 2017-11-05 17:47:23 +01:00
Pavol Rusnak
b56da1e4b4
layout: show path for CoSi commit/sign if following SLIP-0018 2017-10-09 21:16:39 +02:00
Saleem Rashid
12c541f872 nem2: Handle Importance Transfer transactions 2017-10-07 22:07:56 +01:00
Pavol Rusnak
83db3c098f
fsm: implement CoSi messages 2017-10-03 13:26:38 +02:00
Saleem Rashid
1d83eee3b3 nem2: Canonicalize mosaics in transfer transactions
NIS deserializes then serializes transactions in order to verify the
signature. This means that transactions must be serialized canonically,
otherwise the signature will not match. Due to [1], mosaics are sorted
and deduplicated in transfer transactions.

[1]: 4231550ddf
2017-10-01 13:24:13 +01:00
Saleem Rashid
2aeeb3f978 nem2: Handle Aggregate Modification transactions 2017-10-01 13:24:13 +01:00
Saleem Rashid
a10e131ecd nem2: Handle Mosaic Supply Change transactions 2017-10-01 13:24:13 +01:00
Saleem Rashid
17e33d5517 nem2: Handle Mosaic Definition Creation transactions 2017-10-01 13:24:13 +01:00
Saleem Rashid
4a55dd89e6 nem2: Handle Provision Namespace transactions 2017-10-01 13:24:13 +01:00
Saleem Rashid
b559e5fb6d fsm: Add NEM_CHECK_PARAM macros 2017-10-01 13:24:13 +01:00
Saleem Rashid
563723a55f nem2: Handle multisig transactions 2017-10-01 13:24:13 +01:00
Saleem Rashid
19033a459d fsm: Add NEMSignTx 2017-10-01 13:24:13 +01:00
Saleem Rashid
3057f78837 fsm: Add NEMGetAddress 2017-10-01 13:24:13 +01:00
Pavol Rusnak
07f6e495b7
fsm: fix race condition in GetAddress 2017-08-23 16:36:38 +02:00
Jochen Hoenicke
98e617d874
startup: use custom reset_handler
+ group confidential data in one place
+ zero all SRAM where needed
2017-08-16 13:52:01 +02:00
Pavol Rusnak
a01ba51a2a
storage: copy only required bytes from old storage, bump storage version
+ backup_device: ask for pin, always use correct number of words
2017-08-16 13:11:31 +02:00
Pavol Rusnak
c778d7b9c3
storage: wipe storage after 15 wrong pins 2017-07-31 02:26:28 +02:00
Saleem Rashid
e33e1ec0b1 fsm: Do not wipe msg_resp in DebugLinkGetState 2017-07-30 18:00:01 +02:00
Pavol Rusnak
b5f9a5738f
segwit support for SignMessage, VerifyMessage 2017-07-25 19:32:20 +02:00
Pavol Rusnak
3d7d0f0734
use C99 for loop where possible 2017-07-23 22:20:51 +02:00
mruddy
1c55ec0fb3 fix hangs due to stale rng status (#195) 2017-07-19 11:54:26 +02:00
Pavol Rusnak
cf04279774
implement Storage.flags and related stuff 2017-07-17 18:36:09 +02:00
Pavol Rusnak
b0ac3a2af1
add EthereumSignMessage/EthereumVerifyMessage 2017-07-12 17:51:34 +02:00
Jochen Hoenicke
c5e927fac2 Ethereum Sign/Verify Message
Implements issue trezor/trezor-mcu#163.
2017-07-12 17:38:30 +02:00
Pavol Rusnak
5b66c0b956
refactor Address dialog (QR code on left button click), use checksum for Ethereum addresses 2017-07-11 21:31:40 +02:00
Pavol Rusnak
498d689f98
fix small issue with GetAddress for non-segwit coins 2017-07-03 18:23:51 +02:00
Pavol Rusnak
8fa3ce7e14
reset: distinguish between separated call and joined call, mark backup as done only when performed completely 2017-06-29 14:14:20 +02:00
Pavol Rusnak
b65068c159
reset: add Features.needs_backup 2017-06-29 14:14:20 +02:00
Pavol Rusnak
9298e4d9e3
reset: make backup workflow independent of initialization 2017-06-29 14:14:20 +02:00
Pavol Rusnak
91a1b6c4bc
drop EstimateTxSize (and TxSize) 2017-06-28 18:49:44 +02:00
Roman Zeyde
db7915e946
Allow testing recovery with an initialized device
This would allow safe mnemonic validation by using a dry-run flag.
2017-06-23 16:39:49 +02:00
Pavol Rusnak
c6fd70b471
gettext: mark localizable strings as proof-of-concept 2017-06-18 22:47:32 +02:00
Pavol Rusnak
00f6312a81
rename failures, unify strings where possible 2017-06-18 21:19:21 +02:00
Pavol Rusnak
4343d0eaeb
show progressbar layout in GetAddress 2017-05-05 15:45:58 +02:00
Pavol Rusnak
b1995bb8d1
remove segwit warning, don't enable segwit on coins that don't have segwit=true in definition 2017-05-04 18:54:54 +02:00
Pavol Rusnak
8e017526ab
Merge branch 'master' into segwit 2017-05-03 17:16:30 +02:00
Pavol Rusnak
258d3eaddd
GetPublicKey: use Bitcoin as default coin if not provided
disable SimpleSignTx and Firmware messages
update submodules
2017-04-21 14:08:09 +02:00
Peter Banik
d4cc4a48b8 Added altcoin support to GetPublicKey (#161) 2017-04-21 12:51:13 +02:00
Pavol Rusnak
dcceec806d
fix call to protectButton while showing segwit warning 2017-04-11 14:05:19 +02:00
Jochen Hoenicke
99fc6d31d1
[refactor] Use compute_address in msgGetAddress. 2017-03-29 20:59:23 +02:00
Jochen Hoenicke
8e84a6716c Merge master into segwit 2017-01-06 16:55:12 +01:00
Jochen Hoenicke
e9eaad2fcf
Segwit: Show multisig segwit address
changed layout for very large addresses.
2017-01-06 16:22:01 +01:00
Jochen Hoenicke
f9a203431e
Display SegWit address on Trezor 2017-01-04 18:56:08 +01:00
Pavol Rusnak
1763a5b647
use new hdnode_private_ckd_cached API 2016-12-12 12:17:48 +01:00
Jochen Hoenicke
acfdb714ff
New Matrix-based recovery 2016-11-23 13:21:18 +01:00
Pavol Rusnak
c4d144a82e
extract CHECK_PARAM 2016-11-22 22:04:09 +01:00
Pavol Rusnak
a122615663
extract CHECK_PIN and CHECK_PIN_UNCACHED 2016-11-22 21:06:39 +01:00
Pavol Rusnak
0ef70164a5
extract CHECK_INITIALIZED and CHECK_NOT_INITIALIZED macros 2016-11-22 20:57:45 +01:00
Pavol Rusnak
27a4e41707
refactor forgotten disabled coinByName usage 2016-11-22 20:00:22 +01:00
Pavol Rusnak
71890e4edf
implement u2f_counter in LoadDevice, Recoverydevice and ResetDevice messages 2016-10-31 16:20:15 +01:00
Pavol Rusnak
f8ad9fc742
fix Verify (by introducing coinExtractAddressType) 2016-10-25 17:02:02 +02:00
Roman Zeyde
b57c0ff430
Use trezor-crypto ECDH, adding Curve25519 support 2016-10-16 01:34:02 +02:00
Pavol Rusnak
7ddccdb7f4
Revert "simplify cryptoMessageVerify call"
This reverts commit 3a42032c63.
2016-10-10 17:42:42 +02:00
Pavol Rusnak
3a42032c63
simplify cryptoMessageVerify call 2016-10-10 00:18:57 +02:00
Daira Hopwood
69d99d202d
Add support for multi-byte address prefixes. 2016-10-10 00:05:45 +02:00
Jochen Hoenicke
d767e52055 Confirm to change U2F counter (#114) 2016-09-27 23:33:28 +02:00
Jochen Hoenicke
6d65551b82
More alignment fixes 2016-08-30 12:39:37 +02:00
Jochen Hoenicke
22d0e7a053 Incorporated changes for updated master 2016-08-19 03:16:59 +01:00
Nick Johnson
4a195ebd86 Don't include 0x in address display, so everything fits 2016-08-19 03:14:38 +01:00
Alex Beregszaszi
a9449520b8 Ethereum signing skeleton 2016-08-19 03:14:38 +01:00
Alex Beregszaszi
9c7e41f15b Reorder fsm.c for logical grouping of signing methods 2016-08-19 03:14:38 +01:00
Nick Johnson
352d296f77 Return the correct MessageType from EthereumGetAddress 2016-08-19 03:14:38 +01:00
Alex Beregszaszi
3c2d9111e2 Implement EthereumGetAddress 2016-08-19 03:14:38 +01:00
Alex Beregszaszi
bf465357ee Include placeholder handlers for the Ethereum protocol 2016-08-19 03:14:38 +01:00
Jochen Hoenicke
7d8cb9018e
Ask for confirmation on ECDH Session (gpg decrypt)
Also fix abort to send a reply (a cancel failure)
2016-07-14 18:12:55 +02:00
Pavol Rusnak
437c5739f1
Merge branch 'jhoenicke-master' 2016-07-04 17:45:01 +02:00
Jochen Hoenicke
ae4dff6e5f Only compute pubkey on demand.
Changed all hdnode callers to call hdnode_fill_public_key if
they need the public key.
2016-06-27 10:13:18 +02:00
Pavol Rusnak
c6309ff93c
no UI for ECDHSessionKey for now (just ask for PIN) 2016-06-23 19:09:24 +02:00
Roman Zeyde
c86086e2b9 Add ECDH support 2016-06-16 22:40:21 +03:00
Jochen Hoenicke
120cfc148f
new message SetU2FCounter 2016-06-12 23:44:36 +02:00
Pavol Rusnak
b1e3c52b08
remove DialogIcon enum, use bitmap structure directly 2016-06-08 19:20:07 +02:00
Jochen Hoenicke
78d11cf060 New memory access over debug link 2016-05-26 20:59:16 +02:00
Jochen Hoenicke
8e7896456a Merge branch 'origin/master' into u2f 2016-05-26 20:58:52 +02:00
Pavol Rusnak
46119bd007
clear pin failures on wipe and when in debug mode 2016-05-20 17:00:10 +02:00
Jochen Hoenicke
96f30a0ba7 Don't ask for passphrase with u2f. 2016-05-20 01:49:20 +02:00
Pavol Rusnak
d20671b517
handle various signed_message_headers correctly 2016-05-17 18:13:08 +02:00
Pavol Rusnak
e1fa896d6c
disable ECIES 2016-05-12 21:09:34 +02:00
Pavol Rusnak
035a6e754f
fix last commit 2016-04-25 23:40:24 +02:00
Pavol Rusnak
9e8c369f93
show address in verifymessage layout 2016-04-25 23:03:57 +02:00
Jochen Hoenicke
51f02ff763
ed25519 support 2016-04-22 18:22:45 +02:00
Jochen Hoenicke
6813ffb431
Remove the public_key hack.
It is no longer necessary to move the public key into a temporary buffer
since the node is specific for the curve and contains the right public
key.
2016-04-21 11:58:39 +02:00
Roman Zeyde
2b2414cb91 Add GPG v2.1 support by signing message digest 2016-04-20 21:01:39 +03:00
Jochen Hoenicke
56238e63fc Added curve type to HD node.
Create a different root node for every curve type to separate the key
space.
2016-04-19 18:23:12 +02:00
Pavol Rusnak
d8aeb63854
pass version/lock_time parameters from SignTx message to signing_init function 2016-04-16 04:47:09 +02:00
Pavol Rusnak
f557e6149d
implement GetPublicKey.show_display option 2015-11-19 11:48:26 +01:00
Pavol Rusnak
27183323a4
fail sooner when the device is not initialized 2015-11-19 11:03:16 +01:00
Pavol Rusnak
8372504238 show home screen on Initialize 2015-08-25 19:50:31 +02:00
Roman Zeyde
1bb00adc37 fsm: add compile-time assert for response size validation
ttps://gcc.gnu.org/gcc-4.6/changes.html
2015-08-24 13:55:44 +03:00
Pavol Rusnak
9ae7d6bf65 simplify layout Dialog in SignIdentity 2015-07-04 23:45:57 +02:00
Pavol Rusnak
e4d86a49ab rework SignIdentity signing 2015-07-04 23:40:55 +02:00
Pavol Rusnak
eaf209d999 implement CipherKeyValue.iv field 2015-06-29 16:36:50 +02:00
Roman Zeyde
0ac032917b enable Trezor to perform SSH public key authentication
support both NIST256P1 and SECP256K1 ECDSA curves.
2015-06-26 10:43:39 +03:00
Pavol Rusnak
02040421cb fix param order in memset 2015-05-18 13:37:44 +02:00
Pavol Rusnak
1501ca2f67 activate screensaver on ClearSession message 2015-04-13 19:52:38 +02:00