Jochen Hoenicke
698f40f385
BIP-32 without gaps, prepare non-ecdsa curves
...
* Split ecdsa_curve into curve_info and ecdsa_curve to support bip32 on
curves that don't have a ecdsa_curve.
* Don't fail in key derivation but retry with a new hash.
* Adapted test case accordingly
2016-04-22 17:43:15 +02:00
Jochen Hoenicke
f8ac99ebb7
Check for error from get_curve_by_name.
2016-04-20 19:54:18 +02:00
Jochen Hoenicke
0bc1b70c4a
Use different seed modifier for different curves
2016-04-20 10:38:11 +02:00
Jochen Hoenicke
c983afd72f
Added curve type to HDNode
...
Every curve gets it's own hierarchy and the curve is remembered in
HD node. Fixed the private/public key derivations to use the right
modulus.
2016-04-19 18:21:56 +02:00
Jochen Hoenicke
f93b003cbc
Extended comments, new function bn_add, a bug fix.
...
Describe normalized, partly reduced and reduced numbers.
Comment which function expects which kind of input.
Removed unused bn_bitlen.
Add bn_add that does not reduce.
Bug fix in ecdsa_validate_pubkey: bn_mod before bn_is_equal.
Bug fix in hdnode_private_ckd: bn_mod after bn_addmod.
2015-08-06 19:09:23 +02:00
Roman Zeyde
7c58fc11a4
Add support for NIST256P1 elliptic curve
...
This enables SSH ECDSA public key authentication.
2015-06-26 10:33:14 +03:00
Pavol Rusnak
21d0bb437a
cleanup coding style
2015-04-13 18:19:33 +02:00
netanelkl
70dc71c87e
Some more stack memory wipe before leaving functions.
...
Note that I preferred to change the multiple returns to multiple checks
of a boolean to concentrate the erase into the last part of the
functions.
2015-04-09 14:17:47 -04:00
netanelkl
aeefea054a
Added some private key nullification so that they won't be uncontrolled in the stack
2015-04-08 15:07:15 -04:00
Pavol Rusnak
cb9ccc5cf4
remove all references to USE_PUBKEY_VALIDATE
2015-03-12 15:53:41 +01:00
Pavol Rusnak
92ab7504b2
add one more bip32_cache test
2015-03-04 15:43:14 +01:00
Pavol Rusnak
f4e6010e18
implement BIP32 cache
2015-01-26 19:10:19 +01:00
Pavol Rusnak
89a7d7797b
replace base58 implementation
2014-12-23 03:11:58 +01:00
Pavol Rusnak
c6ca89a850
simplify check in hdnode_from_xpub
2014-12-20 00:50:26 +01:00
Pavol Rusnak
10a92c3c62
use const in hdnode_from_* methods
2014-12-13 19:54:01 +01:00
Pavol Rusnak
8820ae9873
add more checks for improbable cases; rework gui testing app
2014-08-07 18:35:54 +02:00
Pavol Rusnak
4b1211e0ae
extract base58 functions to separate source file
2014-05-22 21:52:04 +02:00
Pavol Rusnak
612f5ab050
fix copyright headers
2014-05-22 20:54:58 +02:00
Pavol Rusnak
c1140e071e
added deserialization
2014-05-21 00:22:48 +02:00
Pavol Rusnak
44116b8a74
make serialize api more friendly
2014-05-15 19:35:28 +02:00
Pavol Rusnak
c08bbfa58e
fix last commit
2014-05-15 18:50:28 +02:00
Pavol Rusnak
c1dc507189
add hdnode serialization function
2014-05-15 17:36:23 +02:00
Pavol Rusnak
d5e1ff8be8
remove version_byte and address from bip32
2014-02-21 22:51:49 +01:00
Pavol Rusnak
18dea22213
get rid of bip32 versions, it's a mess :(
2014-02-21 19:41:33 +01:00
Pavol Rusnak
d0e152a088
replace SHA256/SHA512 prefix with sha256/sha512 (OpenSSL clash)
2014-02-19 21:26:42 +01:00
Pavol Rusnak
1034b28f90
use both private and public bip32 versions
2014-02-19 16:58:48 +01:00
Pavol Rusnak
c0ee25c851
don't use implicit versions in bip32
2014-01-21 18:38:44 +01:00
Pavol Rusnak
8764a03453
compute fingerprints
2014-01-14 15:29:46 +01:00
Pavol Rusnak
ed7e2e5058
implement public child key derivation
2014-01-14 14:35:13 +01:00
Pavol Rusnak
353606e2df
add hdnode_coin_version to be able to set coin version from outside
2013-11-28 02:47:00 +01:00
Pavol Rusnak
150c770e4e
xprvnode -> hdnode, add hdnode_from_pub function
2013-11-25 15:37:49 +01:00
Pavol Rusnak
9da3b35962
extract xprv_fill_public method
2013-11-08 16:02:48 +01:00
Pavol Rusnak
b14ce58df7
rename xprv struct to XprvNode
2013-11-08 12:44:11 +01:00
Pavol Rusnak
896905c5c8
remove der encoding, introduce 33/65 bytes pubkeys, 64 bytes signature
2013-09-23 21:13:44 +02:00
Pavol Rusnak
92f070498f
add function for computing addresses
2013-09-20 17:13:24 +02:00
Pavol Rusnak
afc9bcfe30
implement bip32 - https://en.bitcoin.it/wiki/BIP_0032
2013-09-12 21:20:03 +02:00