Commit Graph

256 Commits

Author SHA1 Message Date
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
Pavol Rusnak 9aaf0d37ba
add u2f icons 2016-06-08 19:20:06 +02:00
Ondrej Sika 2929bfbd48
u2f - add Slush Pool to WellKnown 2016-06-08 19:18:23 +02:00
Pavol Rusnak 36b9d80120
bump version (to 1.3.6) 2016-06-07 15:27:05 +02:00
Jochen Hoenicke 73e7d82e3f Allow initialize() to abort PIN wait 2016-05-28 16:24:14 +02:00
Pavol Rusnak 11072320a9
use ff01 usage page for debuglink 2016-05-27 15:27:41 +02:00
Jochen Hoenicke c4e8bd0d0e More robust storage recycle sector
Clear storage marker first before clearing the second sector to prevent
leaving a state where only PIN failures have been cleared but storage is
still present.
2016-05-27 14:03:20 +02:00
Jochen Hoenicke a366700332 fix indentation 2016-05-26 21:21:08 +02:00
Jochen Hoenicke 78d11cf060 New memory access over debug link 2016-05-26 20:59:16 +02:00
Jochen Hoenicke be0858b7d7 Updated protobuf 2016-05-26 20:59:16 +02:00
Jochen Hoenicke 18d549c83d Fix U2F hid interface index for debug link 2016-05-26 20:59:16 +02:00
Jochen Hoenicke e093371129 Added storage area for u2f counter.
To prevent flashing for every u2f operation just clear one bit in
the u2f area to indicate an increased counter.
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 e119656c29
use descriptor that matches fido one (except usage_page) 2016-05-26 13:33:10 +02:00
Jochen Hoenicke 87bfd5a829 Bugfix: restore storage.
Storage restore was broken due to my previous patch.
2016-05-25 01:14:32 +02:00
Jochen Hoenicke 053fe7cb66 Remove Cancel Option
U2F doesn't allow cancellation on device.

Also fix button state in protect.  This fixes the following bug:
1. wipe device
2. press and hold right button, click left button to cancel.
3. release all buttons.
4. wipe device again, now automatic.
2016-05-24 01:59:37 +02:00
Jochen Hoenicke 68b34af19e More standard conform behaviour
Tested with u2f-ref-code/u2f-tests.
Known incompatibility:
 - changed challenge invalidates button press.
2016-05-24 01:16:55 +02:00
Jochen Hoenicke a1ba431d94
Use more sensible HID descriptor 2016-05-23 19:20:21 +02:00
Jochen Hoenicke bc92fb95a5
Clear pinarea on storage_init if upgrade fails
This also cleans up the code a bit and resets storage_uuid if upgrade fails.
2016-05-20 20:13:43 +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
Jochen Hoenicke a0571e02a7 Removed more magic numbers.
`KEY_PATH_LEN`: length of the derivation path in the key handle

`KEY_PATH_ENTRIES`: number of entries in derivation path including
initial BIP-43 selector.

`KEY_HANDLE_LEN`: length of key handle (derivation path + HMAC checksum)
2016-05-18 03:05:04 +02:00
Pavol Rusnak d20671b517
handle various signed_message_headers correctly 2016-05-17 18:13:08 +02:00
Pavol Rusnak 041eaa5e4b
refactor u2f dialogs into a separate function 2016-05-16 18:58:13 +02:00
Pavol Rusnak ad2bab0186
Merge branch 'u2f' of github.com:jhoenicke/trezor-mcu into u2f 2016-05-16 18:22:03 +02:00
Pavol Rusnak c123db71b9
Merge branch 'master' into u2f 2016-05-16 18:19:31 +02:00
Pavol Rusnak 9006c90a59
use MEMSET_BZERO and U2F_APPID_SIZE macros 2016-05-16 18:18:21 +02:00
Jochen Hoenicke 2ab950555e Fixed u2f reentry 2016-05-15 10:44:57 +02:00
Jochen Hoenicke eb2ef2464c CID hacks, not yet finished 2016-05-15 10:44:57 +02:00
Jochen Hoenicke 450a277f45 Only compile debugInt when debugging 2016-05-15 10:44:57 +02:00
Jochen Hoenicke 117d261a38 Script to generate key and certificate 2016-05-15 10:44:57 +02:00
Jochen Hoenicke 55fe98ccd1 Fix USB HID descriptor 2016-05-15 10:44:40 +02:00
Pavol Rusnak e1fa896d6c
disable ECIES 2016-05-12 21:09:34 +02:00
Pavol Rusnak def4a9a02c
fix pbkdf2 usage in storage.c 2016-05-12 21:05:17 +02:00
Pavol Rusnak 008da6c089 Merge pull request #82 from jhoenicke/pinarea
Don't reflash storage after each PIN entry
2016-05-12 15:40:09 +02:00
Jochen Hoenicke 8be6956ce9 fix compilation
updated coins datastructure to include the new fields
2016-04-29 22:36:43 +02:00
Pavol Rusnak a5feab0175
update submodules 2016-04-29 17:52:16 +02:00
Pavol Rusnak f5ea14a85f
fix bugs in debug 2016-04-29 17:06:21 +02:00
Jochen Hoenicke 6218770e26 Script to generate key and certificate 2016-04-29 16:20:54 +02:00
Jochen Hoenicke c1ff9e1ec7 Use more sensible hid descriptor. 2016-04-29 16:20:54 +02:00
Jochen Hoenicke 2abe5d477e Clean-up. Better checks for buffer overflow. 2016-04-29 16:20:54 +02:00
Jochen Hoenicke 5c13e78deb Added support for known appid. 2016-04-29 16:20:54 +02:00
Jochen Hoenicke b3bfc64d2f Use hmac for checking key integrity 2016-04-29 16:20:54 +02:00
Jochen Hoenicke 01ddb3ff66 Reduced buffer sizes, moved static info to flash 2016-04-29 16:20:54 +02:00
Jochen Hoenicke 1b8bd1852e Adapted U2F to new hdnode API 2016-04-29 16:20:54 +02:00
Jochen Hoenicke cf38291ca4 Updated branch u2f 2016-04-29 16:19:54 +02:00
Jochen Hoenicke 630e26dd20 use less stack memory in storage_commit 2016-04-27 19:23:02 +02:00
Jochen Hoenicke da98a3a6fd Don't reflash storage after each PIN entry
Instead of reflashing the whole storage, we use a designated area
in the second storage block, where we mark each PIN failure by a
single zero bit. This is because one can set bits in flash to zero but
not to one.  If the PIN was entered successfully the whole word is
set to zero and the next word stores the new PIN failure counter.
2016-04-27 18:39:04 +02:00
Jochen Hoenicke e0539f8f8b Move public key recovery (verify) to trezor-crypto 2016-04-27 18:10:21 +02:00
Pavol Rusnak 5e5138066a
adapt the reorder of hash_final functions 2016-04-26 11:53:58 +02:00
Pavol Rusnak b8539a6972
fix wording 2016-04-25 23:46:36 +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 03c501d9e3 Do not use hardcoded string for secp256k1. 2016-04-20 15:39:15 +02: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 7675a0aa5f
fix usage of inline/static 2016-02-15 15:29:19 +01:00
Pavol Rusnak 4c9149818a
bump version (to 1.3.5) 2016-02-12 18:29:06 +01:00
Pavol Rusnak 1d3c7ee3f2
cleanup Waking up screen usage 2016-01-19 15:36:43 +01:00
Pavol Rusnak 6e3aec0c1b
move submodules to vendor subdirectory 2015-12-15 23:01:54 +01:00
Pavol Rusnak ed76d030ef
check for sessionPassphraseCached 2015-12-14 22:53:14 +01: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 50c8811af9
double sized font for reset device 2015-11-18 19:52:16 +01:00
Mark Bryars 32f8819997 Generate hardened keys in a unique root 2015-11-05 01:24:37 +01:00
Mark Bryars 9328cad7f1 Add U2F support 2015-11-03 16:47:12 +01:00
Roman Zeyde c08ff09f0f storage: add compile-time assert for sizeof(Storage) validation 2015-09-06 21:14:23 +03:00
Pavol Rusnak 8372504238 show home screen on Initialize 2015-08-25 19:50:31 +02:00
Roman Zeyde 755b0388f0 firmware: exclude debug functionality from release build 2015-08-24 15:51:20 +03: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 8b1f8a4595 show "Web sign in to" when HTTPS is detected 2015-08-21 17:04:38 +02:00
Pavol Rusnak 0c6b3e26e2 prepare 1.3.4 release 2015-08-03 21:59:06 +02:00
Pavol Rusnak b678ba8811 update protob 2015-08-03 21:27:56 +02:00
Pavol Rusnak e876aa5094 changed coin max fees 2015-07-29 15:38:00 +02:00
Pavol Rusnak e8b47901ce show "Go to myTREZOR.com" instead of label when device is not initialized 2015-07-09 23:02:13 +02: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
Pavol Rusnak d488366e36 Merge branch 'master' of git://github.com/romanz/trezor-mcu into romanz-master
Conflicts:
	firmware/crypto.c
2015-06-28 21:26:15 +02:00
Roman Zeyde 381f90b38a cryptoMessageSign() should check the return value of ecdsa_sign_digest() 2015-06-27 10:20:19 +03: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 b4728e6cf9 Merge pull request #27 from jhoenicke/master
New usbDelay that delays and handles USB requests
2015-05-25 10:57:40 +02:00
Pavol Rusnak 02040421cb fix param order in memset 2015-05-18 13:37:44 +02:00
Darin Stanchfield e99aafd949 fixed salt passing to pbkdf2_hmac_sha512 2015-05-05 12:01:34 -07:00
Jochen Hoenicke 218b9984bb New usbDelay that delays and handles USB requests
Added usbDelay that polls usb port (for system requests) while delaying.
This is called instead of delay in the button and pin delay functions.
Experimental evaluation gave that the cycle count should be roughly divided
by 28.5.
2015-04-29 19:10:48 +02:00
Pavol Rusnak 7d8fb375f0 seconds counter during pin lockdown 2015-04-16 18:16:30 +02:00
Pavol Rusnak 1501ca2f67 activate screensaver on ClearSession message 2015-04-13 19:52:38 +02:00
Pavol Rusnak ea7e92f5dd make gears turn faster when signing 2015-04-13 18:53:58 +02:00
Pavol Rusnak 795f70075b make SignIdentity.challenge_hidden and SignIdentity.challenge_visual longer (256 bytes) 2015-04-02 17:20:39 +02:00
Pavol Rusnak ba73f43f71 change "sign in" screen 2015-04-02 16:56:03 +02:00
Pavol Rusnak 00ccf6a8ce bump storage version 2015-04-01 19:43:36 +02:00