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
Pavol Rusnak
8b268692fe
prepare 1.3.3 release
2015-04-01 17:17:37 +02:00
Pavol Rusnak
4cbf29505d
don't clear PIN on Initialize
2015-03-31 16:31:29 +02:00
Pavol Rusnak
aee35dc768
add pin_cached + passphrase_cached fields to Features message; add GetFeatures message
2015-03-30 15:47:03 +02:00
Pavol Rusnak
bda4267c38
clear session on Initialize message
2015-03-30 14:41:51 +02:00
Pavol Rusnak
7c6d2fe395
ask for PIN in GetAddress and GetPublicKey messages
2015-03-30 14:38:33 +02:00
ELMr4Ever
e855946d1c
Darkcoin to Dash re-branding
2015-03-28 21:12:01 -07:00
Pavol Rusnak
9761dd23e0
prepare 1.3.2 release
2015-03-21 10:44:30 +01:00
Pavol Rusnak
40e174ac87
bump storage version
2015-03-18 13:34:09 +01:00
Pavol Rusnak
f344ec9c9b
actually is SLIP-0013
2015-03-17 15:02:07 +01:00
Pavol Rusnak
c286cd75f3
bn_substract_noprime -> bn_subtract
2015-03-17 14:23:58 +01:00
Pavol Rusnak
fb2a085fff
update trezor-crypto
2015-03-12 16:14:11 +01:00
Pavol Rusnak
0ee02eb09a
revert non-swiping dialogs
2015-03-03 18:35:04 +01:00
Pavol Rusnak
24660f3e2c
fix port in signidentity dialog
2015-03-03 17:42:25 +01:00
Pavol Rusnak
65d734df58
add Darkcoin
2015-03-03 02:09:15 +01:00
Pavol Rusnak
d1c62659f7
make signidentity dialog nicer
2015-03-02 21:33:06 +01:00
Pavol Rusnak
1272046375
login -> sign in
2015-03-02 19:58:33 +01:00
Pavol Rusnak
402886e00d
Merge pull request #16 from jhoenicke/master
...
PIN handling - constant time.
2015-02-26 11:38:53 +01:00
Pavol Rusnak
82308d8a38
make wording more verbose (in SignIdentity)
2015-02-25 20:26:21 +01:00
Pavol Rusnak
eefa689b33
call layout functions where needed to rewrite the display after dialog choice
2015-02-25 17:57:47 +01:00
Pavol Rusnak
137a60ce01
set multisig_fp_mismatch when non-multisig input is encountered
2015-02-25 17:03:46 +01:00
Pavol Rusnak
399d4d31b7
replace transaction check hashing
2015-02-25 17:03:46 +01:00
Pavol Rusnak
73c42402b9
implement SignIdentity workflow
2015-02-25 17:03:01 +01:00
Jochen Hoenicke
5d8135be1a
Faster signing, smoother progressbar.
...
Most time in signing transaction on the Trezor side is spent
in layoutProgress. This patch reduces the calls to this functions.
We also compute the progress differently, reserving 50 % for downloading
input transactions and 50 % for the signing process. This gives a
smoother experience if the input transactions are large.
2015-02-25 16:37:08 +01:00
Jochen Hoenicke
286ee0525c
PIN handling - constant time.
...
This diff contains three changes.
1. Make timing isPinCorrect independent of storage.pin, to avoid timing attacks
2. Only update failed PIN counter if the user entered a PIN.
Of course, the fail counter is still incremented, before the PIN is checked.
3. Don't cache the PIN, but just the fact that the PIN was entered. The
cache should be in sync with storage.pin in any case.
2015-02-22 15:42:31 +01:00
Pavol Rusnak
ad6fc7b5a7
update protobuf
2015-02-20 19:01:45 +01:00
Pavol Rusnak
2f5e520345
add description to layoutAddress
2015-02-19 14:11:27 +01:00
Pavol Rusnak
f2f50aa188
bump version to 1.3.1
2015-02-16 15:23:30 +01:00
Pavol Rusnak
94531f264e
speed up public ckd (used in multisig)
2015-02-15 20:47:53 +01:00
Pavol Rusnak
07c8c4963a
use const char * const * for wordlist
2015-02-14 12:40:32 +01:00
Pavol Rusnak
60bb2fe2b1
use Knuth shuffles
2015-02-13 20:51:02 +01:00
Pavol Rusnak
7d3196a057
correctly skip utf-8 characters
2015-02-13 17:42:23 +01:00
Pavol Rusnak
7fd1e894f5
refactor font handling
2015-02-13 15:37:23 +01:00
Pavol Rusnak
03faa85cc4
integrate signing reorder patch by Jochen
2015-02-11 17:38:32 +01:00
Pavol Rusnak
ed3fbf901c
passphrase protection -> encryption (in dialog)
2015-02-05 18:59:43 +01:00
Pavol Rusnak
b5221ce2e9
introduce homescreen
2015-02-04 21:27:07 +01:00
Pavol Rusnak
d35b741f08
enable OP_RETURN
2015-02-04 20:04:59 +01:00
Pavol Rusnak
40efefc571
rework pin handling
2015-01-27 13:00:25 +01:00
Pavol Rusnak
012d38a9a0
increasePinFails before asking PIN
2015-01-26 21:41:43 +01:00
Pavol Rusnak
7dacfd69ee
check for flash operation failure
2015-01-26 21:10:51 +01:00
Pavol Rusnak
5f8a4f6da1
use hdnode_private_ckd_cached where appropriate
2015-01-26 20:24:07 +01:00
Pavol Rusnak
31385f71f4
update nanopb to 0.2.9.2
2015-01-26 14:02:14 +01:00
Pavol Rusnak
32158bbb5c
refactor fsm_getRootNode into fsm_getDerivedNode
2015-01-26 13:53:06 +01:00
Pavol Rusnak
8f48ffe63c
extract fsm_getCoin
2015-01-26 12:51:56 +01:00
Pavol Rusnak
0981ed98b6
Merge pull request #7 from runn1ng/master
...
correcting transponed QR code
2015-01-18 13:43:10 +01:00
cf18
880f058482
correcting transponed QR code
2015-01-18 04:23:56 +01:00
Pavol Rusnak
b5eecb30be
downgrade nanopb to LTS version 0.2.9.1
2014-12-27 16:05:34 +01:00
Pavol Rusnak
b06780e0a7
prepare 1.3.0 release
2014-12-25 18:32:00 +01:00
Pavol Rusnak
48cc36b1b9
adapt to new base58 api, use CoinType.address_type_p2sh field
2014-12-23 03:18:29 +01:00
Pavol Rusnak
1674edcbac
p2sh addresses can have 35 characters
2014-12-22 21:16:49 +01:00
Pavol Rusnak
30a55829e5
rework hashing of transactions
2014-12-21 20:34:14 +01:00
Pavol Rusnak
2a2eba7de5
rework layoutProgress functions
2014-12-21 18:58:56 +01:00
Pavol Rusnak
03a053c944
implement change logic for multisig
2014-12-21 02:15:56 +01:00
Pavol Rusnak
0898c707d9
move change logic before confirmation
2014-12-20 20:55:32 +01:00
Pavol Rusnak
7000451f71
implement OutputScriptType_PAYTOMULTISIG, reorganize compile_output code
2014-12-20 20:34:19 +01:00
Pavol Rusnak
0d427f2cd2
fix confirm layouts in multisig operation
2014-12-20 02:38:53 +01:00
Pavol Rusnak
cce9d783a6
introduce cryptoMultisigFingerprint
2014-12-16 18:56:44 +01:00
Pavol Rusnak
4122b56e1c
check return value of cryptoHDNodePathToPubkey
2014-12-16 18:49:49 +01:00
Pavol Rusnak
309604d286
change setup wording
2014-12-16 18:45:39 +01:00
Pavol Rusnak
0e92d4c588
error checking of hdnode functions return values
2014-12-16 18:28:46 +01:00
Pavol Rusnak
1385de1154
use const where appropriate
2014-12-16 16:50:12 +01:00
Pavol Rusnak
567537cd03
update to new multisig api
2014-12-16 14:28:47 +01:00
Pavol Rusnak
961566c9b7
implement ApplySetttings.use_passphrase
2014-12-13 19:29:27 +01:00
Pavol Rusnak
7e27275ec8
allow 15/15 multisig
2014-12-10 20:20:03 +01:00
Pavol Rusnak
43ff5baeab
such happy doge
2014-12-10 18:58:27 +01:00
Pavol Rusnak
92cfcd1565
implement GetAddress.multisig field
2014-12-10 18:04:51 +01:00
Pavol Rusnak
6561647d6b
update pb
2014-12-10 15:44:26 +01:00
Pavol Rusnak
86dd83f93b
sign message speedup
...
see https://github.com/spesmilo/electrum/pull/695/files#diff-3
2014-12-08 21:21:44 +01:00
Pavol Rusnak
10fc0b69fc
check LoadDevice.skip_checksum field
2014-12-08 19:58:13 +01:00
Pavol Rusnak
d07f6026e9
detect multisig by SPENDMULTISIG flag
2014-12-07 13:11:29 +01:00
Pavol Rusnak
91451f88b5
multisig
2014-12-06 19:12:55 +01:00
Pavol Rusnak
a16e8c0e04
more layout fixes
2014-11-27 17:23:04 +01:00
Pavol Rusnak
0c050e7fca
update layouts for message operations
2014-11-26 18:52:30 +01:00
Pavol Rusnak
f75515544f
move Sign/Verify to crypto.c/h, implement Encrypt/Decrypt
2014-11-25 19:32:04 +01:00
Pavol Rusnak
960c665aac
update protobuf, require address for verifymsg
2014-11-15 02:00:07 +01:00
Pavol Rusnak
c051dfde9d
update trezor-crypto
2014-10-30 01:38:40 +01:00
Pavol Rusnak
8b70713e2b
update protobuf
2014-10-30 00:51:28 +01:00
Pavol Rusnak
8f1c40a933
start implementing EncryptMessage/DecryptMessage
2014-10-22 19:53:25 +02:00
Pavol Rusnak
ba63157a77
check coin->address_type while building output
2014-08-19 00:49:17 +02:00
Pavol Rusnak
e5d55967a0
implement GetAddress.show_display
2014-08-13 11:08:15 +02:00
Pavol Rusnak
63c6d046d1
add PublicKey.xpub field
2014-08-07 21:53:55 +02:00
Pavol Rusnak
e5bdf1943a
align encryption of hdnode with mnemonic logic
2014-08-07 20:56:56 +02:00
Pavol Rusnak
524f2a957a
enable stack protector
2014-07-31 19:44:03 +02:00
Pavol Rusnak
a2eb43b057
fix message length in msg_read_tiny
2014-07-27 16:20:35 +02:00
Pavol Rusnak
ea4d99cfee
change recovery logic
2014-07-10 18:11:44 +02:00
Pavol Rusnak
2707e8aff6
move APPVER guards from includes to app code
2014-07-07 15:03:34 +02:00
Pavol Rusnak
df524b9f35
prepare 1.2.0 release
2014-07-03 01:20:34 +02:00
Pavol Rusnak
9ca3854146
use estimate instead of real size of tx when calculating fee warning
2014-07-01 19:48:54 +02:00
Pavol Rusnak
849e758eb4
double the delay before buttonupdate
2014-06-26 00:26:47 +02:00
Pavol Rusnak
e9fd756daa
better UI for layoutSignMessage, layoutVerifyMessage and layoutCipherKeyValue
2014-06-21 00:31:44 +02:00
Pavol Rusnak
ea42f6af4e
adapt to new opencm3 include structure
2014-06-19 00:12:31 +02:00
Pavol Rusnak
441bb3b513
implement ClearSession
2014-06-17 16:03:07 +02:00
Pavol Rusnak
272e10152f
bump to v 1.1.0
2014-06-11 20:42:48 +02:00
Pavol Rusnak
67ad043209
adapt to new aes api
2014-06-09 19:00:07 +02:00
Pavol Rusnak
9d1cc7933d
adjust reset_device loop to match recovery_device loop
2014-06-06 16:25:54 +02:00
Pavol Rusnak
cf95f50997
adjust protobuf
2014-06-06 12:56:31 +02:00
Pavol Rusnak
8c4540ef91
use 1st, 2nd, 3rd, etc. for recovery (not 1., 2., 3., etc).
2014-06-06 03:01:11 +02:00
Pavol Rusnak
465ec2104b
throw UnexpectedMessage failure on unknown messages
2014-06-06 02:45:15 +02:00
Pavol Rusnak
1a1ba46e2c
update protobuf
2014-06-06 02:37:58 +02:00
Pavol Rusnak
7cba60895d
update protobuf, disable SimpleSignTx
2014-06-05 23:45:01 +02:00
Pavol Rusnak
80ab3b40b4
show Preparing instead of Signing where trezor is not signing :)
2014-06-04 19:42:41 +02:00
Pavol Rusnak
2b68813a4c
adjust script_sig size for use with multisig
...
adjust delays used when wrong pin is entered
2014-06-04 18:00:35 +02:00
Pavol Rusnak
c8faf4aeaa
show verified message & wait for button
2014-06-02 20:40:20 +02:00
Pavol Rusnak
2066f9e95c
use imported flag to indicate that storage was imported from an external source
2014-05-26 00:58:17 +02:00
Pavol Rusnak
555b56181e
use button confirmation for loaddevice
2014-05-25 18:32:12 +02:00
Pavol Rusnak
d7169a342c
fix initialize handling in interactive mode
2014-05-20 15:37:58 +02:00
Pavol Rusnak
0d0a1ab5f2
import v1.0.0
2014-04-29 14:38:32 +02:00