Commit Graph

49 Commits

Author SHA1 Message Date
Pavol Rusnak 4a2d68acb9
use explicit_bzero where possible; update trezor-crypto 2018-01-16 19:49:47 +01:00
Pavol Rusnak c4e3596803
update trezor-crypto, adapt firmware to to changes 2018-01-13 15:20:10 +01:00
Saleem Rashid 6e25e0b363 coins: Use curve_info instead of HasherType 2017-12-10 20:53:44 +01:00
Saleem Rashid 268e7de109 Update trezor-crypto 2017-12-10 20:53:44 +01:00
Saleem Rashid 0e60ba54b7 crypto: Use Hasher for message signing 2017-12-10 20:53:44 +01:00
Saleem Rashid 54b0869535 signing: Use Hasher instead of SHA256_CTX 2017-12-09 16:28:40 +01:00
Jochen Hoenicke bbf6b1b097
Implemented VerifyMessage for bech32 2017-11-05 19:28:07 +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
Jochen Hoenicke 3440ead4c9
Fix multisig for BCC 2017-07-30 22:58:26 +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
Roman Zeyde 0bb7f16b78 crypto: allow Ed25519 signing larger digests (#124) 2016-10-24 12:41:10 +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 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 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 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
Roman Zeyde 63696dc474 crypto: add ECDH session key generation 2016-06-10 22:17:02 +03: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
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
Jochen Hoenicke 51f02ff763
ed25519 support 2016-04-22 18:22:45 +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 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 c286cd75f3 bn_substract_noprime -> bn_subtract 2015-03-17 14:23:58 +01:00
Pavol Rusnak 73c42402b9 implement SignIdentity workflow 2015-02-25 17:03:01 +01:00
Pavol Rusnak 2f5e520345 add description to layoutAddress 2015-02-19 14:11:27 +01:00
Pavol Rusnak 94531f264e speed up public ckd (used in multisig) 2015-02-15 20:47:53 +01:00
Pavol Rusnak 5f8a4f6da1 use hdnode_private_ckd_cached where appropriate 2015-01-26 20:24:07 +01:00
Pavol Rusnak b5eecb30be downgrade nanopb to LTS version 0.2.9.1 2014-12-27 16:05:34 +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 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 0e92d4c588 error checking of hdnode functions return values 2014-12-16 18:28:46 +01:00
Pavol Rusnak 567537cd03 update to new multisig api 2014-12-16 14:28:47 +01:00
Pavol Rusnak 92cfcd1565 implement GetAddress.multisig field 2014-12-10 18:04:51 +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 f75515544f move Sign/Verify to crypto.c/h, implement Encrypt/Decrypt 2014-11-25 19:32:04 +01:00