Pavol Rusnak
14aa486fa6
partially revert 4ce4cc5605
for smoother merge
2016-11-23 13:19:25 +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
Saleem Rashid
0ec32a6146
timer: Replace screen timeout with SysTick
...
This provides an incredibly accurate screen timeout and removes the
superfluous screen timeout counter
2016-11-17 02:07:46 +01:00
Saleem Rashid
25b9bfd97b
timer: Use Cortex-M3 SysTick timers
...
Removed `usbDelay(uint32_t cycles)`, added `usbSleep(uint32_t millis)`
The same method signature could cause silent code breakage at runtime,
as opposed to noisy code breakage at compile time which is the better
kind.
2016-11-17 02:07:46 +01:00
Pavol Rusnak
3cede26fbc
add yubico u2f demo to u2f known apps
2016-11-15 18:51:29 +01:00
Pavol Rusnak
f45454b5ce
u2f: add fastmail to known providers
2016-11-10 13:46:41 +01:00
Jochen Hoenicke
9287dd7e04
Poll USB during BIP39 derivation.
...
This patch adds calls to usbPoll in the progress callback. This
should address #98 .
We call usbDelay instead of Poll, to call usbd_poll several times.
Otherwise it would only handle one event instead of handling all
events that were pending so far. The ugly magic number 5 is a guess.
Note that we also need to set usbTiny, so that we don't recursively
process messages. Since we don't know whether usbTiny is set, we
need to store the old value (especially true for u2f).
This fix also relies on another fix in libopencm3.
2016-11-09 16:17:50 +01:00
Pavol Rusnak
4ce4cc5605
halt the device when encountered an invalid mnemonic (skip if device loaded or recovered without enforced wordlist)
2016-11-09 16:06:50 +01:00
Pavol Rusnak
810d478f4c
check return values of ecdsa_sign calls
2016-11-08 15:48:44 +01:00
Jochen Hoenicke
2950588271
Fix segwit multisig.
...
Tested, see f41cbedd8becee05a830f418d13aa665125464547db5c7a6cd28f21639fe1228
and c9348040bbc2024e12dcb4a0b4806b0398646b91acf314da028c3f03dd0179fc
on testnet
2016-11-05 22:47:21 +01:00
Jochen Hoenicke
895da908e0
Simplified InputScriptType
...
Distinguish between single signature and multisig via has_multisig.
2016-11-05 22:47:21 +01:00
Jochen Hoenicke
388750f2d1
Support for P2SH compatible segwit
2016-11-05 22:47:21 +01:00
Jochen Hoenicke
b7b9891cb4
Signing for Segnet Transaction works
...
see segnet4 txid:
aa434a6ef4fcf350e319bacbd725fa7446f797cb3ed0cd0582826a49d3351ffa
2016-11-05 22:47:21 +01:00
Jochen Hoenicke
e5000fb196
segwit sign (completely untested)
2016-11-05 22:47:18 +01:00
Jochen Hoenicke
5c60be9854
hashes for segwit signature
2016-11-05 22:37:01 +01:00
Jochen Hoenicke
1bd4b99f95
Allow SegWit addresses
...
New output scripts for segwit addresses in accordance to BIP-142 and BIP-141.
This allows Trezor to pay to segwit users, but it doesn't enable segwit for
Trezor itself.
2016-11-05 22:35:32 +01:00
Pavol Rusnak
71890e4edf
implement u2f_counter in LoadDevice, Recoverydevice and ResetDevice messages
2016-10-31 16:20:15 +01:00
Pavol Rusnak
4471c6e0e6
show different dialog when U2F client uses bogus appid
2016-10-31 11:56:11 +01:00
Pavol Rusnak
ae37ea8a9a
bump version, add changelog
2016-10-26 18:06:13 +02:00
Pavol Rusnak
592f3c9afe
lock screen after 10 minutes of inactivity
2016-10-25 17:45:30 +02:00
Pavol Rusnak
f8ad9fc742
fix Verify (by introducing coinExtractAddressType)
2016-10-25 17:02:02 +02:00
Saleem Rashid
0b51d060d8
allow ClearSession purely via confirm button
...
Holding confirm button at home screen asks user whether they wish to
lock the TREZOR (clear the cached PIN and passphrase and show the
screensaver). This is identical behaviour to the ClearSession message.
2016-10-25 15:21:56 +02:00
Pavol Rusnak
ea35b4bfe7
update trezor-crypto
2016-10-24 20:55:45 +02:00
Roman Zeyde
0bb7f16b78
crypto: allow Ed25519 signing larger digests ( #124 )
2016-10-24 12:41:10 +02:00
Pavol Rusnak
e9f0706c2e
fix prevtx hashing when input count is 0
2016-10-21 13:20:57 +02:00
Pavol Rusnak
2daab8cf02
add coins-gen.py script and generate coins.c using that script
2016-10-20 15:27:34 +02:00
Pavol Rusnak
c288a0e328
implement TXEXTRADATA transaction RequestType
2016-10-20 13:25:40 +02:00
Roman Zeyde
68a1bcc908
Add specific layout for GPG signature ( #122 )
...
Following ECDH usage of layoutDecryptIdentity (which shows "GPG decrypt for:")
this commit adds a specific case for layoutSignIdentity, showing "GPG sign for:",
instead of "GPG login to:" (which is less appropriate in the GPG context).
2016-10-17 18:08:02 +02:00
Pavol Rusnak
771a0c014b
update protobuf
2016-10-16 02:06:49 +02:00
Pavol Rusnak
f0b93b44f5
multibyte addresses can be 40 chars long
2016-10-16 02:05:03 +02:00
Roman Zeyde
b57c0ff430
Use trezor-crypto ECDH, adding Curve25519 support
2016-10-16 01:34:02 +02:00
Karel Bílek
dfc543c955
Switching address types ( #119 )
...
Address_type and address_type_p2sh were switched
2016-10-13 11:39:35 +02:00
Pavol Rusnak
7ddccdb7f4
Revert "simplify cryptoMessageVerify call"
...
This reverts commit 3a42032c63
.
2016-10-10 17:42:42 +02:00
Pavol Rusnak
c0181b1aec
extract address related stuff into trezor-crypto
2016-10-10 11:26:52 +02:00
Pavol Rusnak
e70900d49e
don't tie message verification with P2PKH addresses
2016-10-10 10:17:51 +02:00
Pavol Rusnak
3a42032c63
simplify cryptoMessageVerify call
2016-10-10 00:18:57 +02:00
Daira Hopwood
6bfe487f19
Update address prefixes for Zcash.
2016-10-10 00:05:51 +02:00
Daira Hopwood
69d99d202d
Add support for multi-byte address prefixes.
2016-10-10 00:05:45 +02:00
Jochen Hoenicke
a0ade6343e
Reworked rfc6979 signing. ( #116 )
...
New parameter is_canonical that allows for generating signatures that
have additional requirements.
2016-10-06 16:58:05 +02:00
Jochen Hoenicke
d767e52055
Confirm to change U2F counter ( #114 )
2016-09-27 23:33:28 +02:00
bitcartel
e0e190b3dc
Update coins.c for Zcash mainnet ( #111 )
2016-08-31 14:02:53 +02:00
Pavol Rusnak
8d7c1ec543
Merge pull request #110 from jhoenicke/master
...
More alignment fixes
2016-08-30 12:55:37 +02:00
Jochen Hoenicke
6d65551b82
More alignment fixes
2016-08-30 12:39:37 +02:00
Pavol Rusnak
dec9484a17
update version
2016-08-30 10:33:13 +02:00
Pavol Rusnak
d7c0fbc379
add const where possible (for message parsing)
2016-08-29 22:36:18 +02:00
Pavol Rusnak
0a55a9e415
update to nanopb 0.2.9.3
2016-08-29 12:59:29 +02:00
Pavol Rusnak
fff16e813a
add link to protobuf definition in coins.c
2016-08-29 10:44:40 +02:00
Jochen Hoenicke
bc55013942
Simplified one-byte encodings
2016-08-25 13:02:14 +02:00
Jochen Hoenicke
91dcead35e
Gas estimate screen, tweaked display of value
2016-08-23 22:05:24 +02:00
Jochen Hoenicke
a37a2e3612
Confirm data, streamlining code
...
Set all size fields to 0, if fields was not given to avoid the conditions
later.
Display data and ask for confirmation.
2016-08-22 23:18:38 +02:00
Jochen Hoenicke
05a73593f6
No special case encoding for '\x0', cleanups
...
The encoding for data '\x00' was tested here:
http://testnet.etherscan.io/tx/0x05d6f97de3ecd33ad4059fa9bd342a10ef99d580a2d881b0c5a0c9e8c55ff975
2016-08-19 23:35:11 +02:00
Jochen Hoenicke
22d0e7a053
Incorporated changes for updated master
2016-08-19 03:16:59 +01:00
Pavol Rusnak
efd443abe8
implement ethereum signing check
2016-08-19 03:14:38 +01:00
Pavol Rusnak
4e0a69b6ea
refactor ethereum methods, show progress properly
2016-08-19 03:14:38 +01:00
Pavol Rusnak
1558d77ea0
split rlp_encode_length into rlp_encode_length and rlp_encode_list_length
2016-08-19 03:14:38 +01:00
Pavol Rusnak
3db323c599
fix printing of ethereum value and address
2016-08-19 03:14:38 +01:00
Pavol Rusnak
3d1ab24d92
simplify ethereum code, EthereumSignTx.data_length is the total length now
2016-08-19 03:14:38 +01:00
Pavol Rusnak
48008ddd8e
implement layoutEthereumConfirmTx
2016-08-19 03:14:38 +01:00
Pavol Rusnak
7d9a56e678
fix curly braces in if statements
2016-08-19 03:14:38 +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
7432805b6a
Fix special RLP case for length=1 firstbyte=0
2016-08-19 03:14:38 +01:00
Alex Beregszaszi
079d282541
Simplify send_request_chunk()
2016-08-19 03:14:38 +01:00
Alex Beregszaszi
78b1370de9
More input sanity checks in EthereumSignTx
2016-08-19 03:14:38 +01:00
Alex Beregszaszi
a617200c9c
Add confirmation dialog to EthereumSignTx
2016-08-19 03:14:38 +01:00
Alex Beregszaszi
e0a1743003
Add sanity checks for data fields in EthereumSignTx
2016-08-19 03:14:38 +01:00
Alex Beregszaszi
ab49a7cb45
Calculate data length based on the initial chunk and the supplied length
2016-08-19 03:14:38 +01:00
Alex Beregszaszi
e0395b13eb
Fix RLP length calculation
2016-08-19 03:14:38 +01:00
Alex Beregszaszi
2b6c991179
Split out send_signature and support short requests
2016-08-19 03:14:38 +01:00
Alex Beregszaszi
1d2f9b6ecd
Initial signing implementation for Ethereum
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
a031b79e24
Add sha3.o to OBJS
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
Pavol Rusnak
f489550a1b
Merge branch 'master' of https://github.com/jhoenicke/trezor-mcu into jhoenicke-master
2016-07-04 17:42:39 +02:00
Pavol Rusnak
79e4d4d8c2
fix uppercase letters in GitHub/GitLab
2016-07-04 16:58:57 +02:00
Pavol Rusnak
40ca2c9210
add gitlab to u2f_knownapps
2016-07-04 15:48:36 +02:00
Pavol Rusnak
633024a993
send failure when reset workflow is aborted (this sends features when it was aborted by initialize message)
2016-07-04 15:02:24 +02:00
Pavol Rusnak
3ce756b692
add set -e to shell scripts
2016-07-03 13:54:32 +02:00
Pavol Rusnak
fdbae0b0e0
fix hid_control_request for debug link
2016-06-30 14:04:11 +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
Jochen Hoenicke
97466519b0
Bitbucket U2F support
2016-06-26 21:49:41 +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
Pavol Rusnak
79986604a3
Merge pull request #92 from jhoenicke/master
...
Implement message SetU2FCounter
2016-06-13 00:30:12 +02:00
Jochen Hoenicke
120cfc148f
new message SetU2FCounter
2016-06-12 23:44:36 +02:00
Pavol Rusnak
57197e1463
use macros for usb interface numbers
2016-06-12 23:11:46 +02:00
Pavol Rusnak
5e57a1ceaf
Merge branch 'u2f'
2016-06-12 22:53:28 +02:00
Alex Beregszaszi
080dcf462f
Define field size limits for the Ethereum protocol
2016-06-12 22:51:05 +02:00
Jochen Hoenicke
caafefc0fb
Tweaked timeouts, handle null nodes.
2016-06-12 21:25:35 +02:00
Roman Zeyde
e2064337c6
Update protobuf definitions
2016-06-11 22:20:38 +03:00
Roman Zeyde
63696dc474
crypto: add ECDH session key generation
2016-06-10 22:17:02 +03:00
Pavol Rusnak
da067913c2
show app icons in u2f dialog
2016-06-09 18:11:19 +02:00
Pavol Rusnak
b1e3c52b08
remove DialogIcon enum, use bitmap structure directly
2016-06-08 19:20:07 +02:00