Commit Graph

205 Commits

Author SHA1 Message Date
Ryan X. Charles
bfe5877ee7 require SecureRandom and Point ... woops 2014-07-17 16:30:22 -07:00
Ryan X. Charles
57a55d0863 expose signature internal functions
"sign" and "genk" ... and add some signature tests
2014-07-17 15:24:19 -07:00
Ryan X. Charles
2c136d4dcc remove obsolete Curve class (G and n now accessible from Point) 2014-07-17 13:14:49 -07:00
Ryan X. Charles
5f6d02f5de add proper DER signature support to Key
both creating DER signature from the r and s values, and parsing a DER
signature into the r, s, and other properties.
2014-07-17 13:09:35 -07:00
Ryan X. Charles
e485d0e331 Merge pull request #432 from ryanxcharles/feature/proto
Correct deprecated setting of __proto__
2014-07-16 16:24:22 -07:00
Ryan X. Charles
c4e22bf5fd Merge pull request #431 from ryanxcharles/bug/SIGHASH_ANYONECANPAY
use correct constant & share between Transaction and ScriptInterpreter
2014-07-16 16:24:14 -07:00
Ryan X. Charles
9122807ecb remove __proto__ from EncodedData and family
EncodedData was setting "converter" and "_encoding" by setting them on the
prototype of the object. This was probably done to enable overriding these
functions. However, overriding was never actually used anywhere, and setting
the __proto__ is deprecated. So I have remove all instances of setting
__proto__ for EncodedData-ish classes, and instead just set "convert" and
"_encoding" on the object directly.
2014-07-15 17:14:04 -07:00
Ryan X. Charles
895bb6bab9 use correct constant & share between Transaction and ScriptInterpreter
Closes https://github.com/bitpay/bitcore/issues/424
2014-07-15 11:59:56 -07:00
Ryan X. Charles
0251d467c4 update bn.js to latest version
...and correspondingly get rid of Number->String conversion

See: https://github.com/indutny/bn.js/issues/17
2014-07-15 11:25:18 -07:00
Linus Unnebäck
3da6fe899f cleanup after removal of soop
Removed some unnecessary parenthesise that hung around after the merge
of #417
2014-07-12 12:14:56 +02:00
Ryan X. Charles
8a199e26f3 allow Point to multiply things other than buffers
...i.e., bignums, numbers, and strings. Also, ensure that if you try to
multiply a buffer, it should be exactly 32 bytes. Eventually this "multiply"
function will be replaced with a more conventional "mul" function, but not yet.
2014-07-11 11:52:05 -07:00
Ryan X. Charles
c75de967fd further simplify use of bignum in Transaction and ScriptInterpreter 2014-07-10 19:26:03 -07:00
Ryan X. Charles
823d02118c simplify use of bignum in Base58 and Block 2014-07-10 19:16:49 -07:00
Ryan X. Charles
ec2fda2a22 simplify use of bignum in TransactionBuilder 2014-07-10 19:13:29 -07:00
Ryan X. Charles
d035b54418 simplify use of bignum in ScriptInterpreter 2014-07-10 19:09:47 -07:00
Ryan X. Charles
3cbf2e07c4 use decorate on gt and lt 2014-07-10 18:45:27 -07:00
Ryan X. Charles
80bba1cf81 use a decorate function to optimize bundle filesize 2014-07-10 18:27:15 -07:00
Ryan X. Charles
af1d754bd8 make bignum interface backwards compatible
- fix cmp, mul, div, add, mod, sub functions to take numbers and strings
- fix Point class to use common folder correctly
2014-07-10 18:14:13 -07:00
Ryan X. Charles
e4cb7d2014 remoe unimplemented bignum.pow() 2014-07-10 16:47:05 -07:00
Ryan X. Charles
c8f11b9c0a require Point ... woops 2014-07-10 16:22:42 -07:00
Ryan X. Charles
204d8563c8 remove cryptojs dependency from Key 2014-07-10 16:22:42 -07:00
Ryan X. Charles
ac4d3186bf update sign function to use elliptic 2014-07-10 16:22:42 -07:00
Ryan X. Charles
8fb6ccaf01 use elliptic for Point.multiply and key regeneration 2014-07-10 16:22:42 -07:00
Ryan X. Charles
15d4328b35 use elliptic in Point in the browser instead of cryptojs 2014-07-10 16:21:08 -07:00
Ryan X. Charles
c8fe404402 replace bignumber.js with bn.js 2014-07-10 16:20:13 -07:00
Manuel Araoz
0e2df698cd fix SIN and add tests 2014-07-10 17:17:24 -03:00
Manuel Araoz
87b818badf remove soop exports 2014-07-10 16:08:42 -03:00
Manuel Araoz
557e9ae2a4 use node util.inherits 2014-07-10 15:55:32 -03:00
Manuel Araoz
6e346d067c remove soop imports 2014-07-10 12:39:09 -03:00
Manuel Araoz
b0924978e4 oops 2014-07-10 11:56:17 -03:00
Manuel Araoz
cd7eae8359 remove soop inheritance system 2014-07-10 11:46:44 -03:00
Ryan X. Charles
65ab3a663a fix string/buffer sjcl issue
...by using sjcl.mode.cbc.encrypt/decrypt rather than sjcl.encrypt/decrypt. The
difference is that the sjcl.encrypt/decrypt functions are really convenience
methods designed to encrypt and decrypt strings, but don't play nice with
binary data, as revealed in the tests in this commit and the previous commit.
Basically, if you use them to encrypt and decrypt binary data as a string, it
will return the wrong result or an error.

The solution is to use the block cipher directly, in this case sjcl.mode.cbc.
This also has the advantage of fewer format conversions - no converting to
base64 and JSON strings. This makes things faster. Also, it is actually correct
unlike the previous method.
2014-07-09 16:25:48 -07:00
Ryan X. Charles
5cdc160dea Merge branch 'feature/bip70-signing' 2014-07-07 16:58:07 -07:00
Ryan X. Charles
f3f94fc9d5 Merge remote-tracking branch 'devrandom/bip39a' 2014-07-07 16:51:46 -07:00
Ryan X. Charles
e48561302b Merge pull request #401 from ryanxcharles/feature/bip70-protobuf
add BIP70 protobuf features in new PayPro lib file
2014-07-03 15:35:41 -07:00
Ryan X. Charles
39889476fb add sign/verify with pki_type SIN
...which is much easier to implement than X.509 certificates.
2014-07-03 15:35:32 -07:00
Ryan X. Charles
71e226b782 serialize payment request for signature 2014-07-03 15:35:32 -07:00
Ryan X. Charles
76804bef45 Fix checksum comparison error. Closes #402 2014-07-03 09:17:54 -07:00
Ryan X. Charles
0bea06f785 add BIP70 protobuf features in new PayPro lib file
...and add to the "main" bundle, but not the "all" bundle, since it adds
hundreds of kilobytes to the bundle.
2014-07-02 11:39:21 -07:00
Petros Angelatos
d2ce401f84 remove dead code 2014-07-02 01:22:18 +01:00
Devrandom
efb62b08b7 add check function for BIP39
fixes #393
2014-07-01 14:00:08 -07:00
Ryan X. Charles
ca67786a77 ran js-beautify on all bitcore source
js-beautify -s 2 -r *.js

...did not run on bundles, only on source.
2014-06-23 10:57:02 -07:00
Ryan X. Charles
ad5e83f9ff Merge branch 'bip39'
Conflicts:
	browser/bundle.js
2014-06-20 19:35:24 -07:00
Ryan X. Charles
266759ff60 Merge remote-tracking branch 'devrandom/bip39'
Conflicts:
	test/index.html
2014-06-20 19:34:21 -07:00
Ryan X. Charles
54c8e04738 remove unbuilding c code, and ...
* Remove c code that didn't compile on my machine
* Replace with sjcl code
* Minor modifications to mnemonic interface more bitcoreish
2014-06-20 19:09:21 -07:00
Ryan X. Charles
a7270282d3 Merge pull request #384 from manan19/move-scriptForAddress
Move TransactionBuilder.scriptForAddress to Address.getScriptPubKey. Resolves #373
2014-06-19 20:33:36 -07:00
rxl
1170923f86 fix grammar in 'not enough unspent tx outputs' error in tx builder 2014-06-19 17:52:54 -07:00
Manan Patel
d83fc6e4b5 Resolves #373
Move TransactionBuilder.scriptForAddress to Address#getScriptPubKey (instance method)
2014-06-19 08:40:30 -07:00
Ryan X. Charles
83aada8648 Merge pull request #379 from ryanxcharles/feature/address-throw-error
throw error when using invalid length hash in Address constructor
2014-06-13 08:17:18 -07:00
Manuel Araoz
0d670ff979 suggestions by ryan 2014-06-12 16:54:59 -03:00
Manuel Araoz
b402bbfa6c fixing copay problems 2014-06-12 16:28:00 -03:00
Manuel Araoz
5c11ac3e87 malloc -> calloc, to fix linux version 2014-06-12 13:56:29 -03:00
Manuel Araoz
d313ed037e trying to fix 2014-06-12 12:29:51 -03:00
Manuel Araoz
2c7c2d85b3 breaking 2014-06-12 12:29:51 -03:00
Manuel Araoz
a15962da88 fixing 2014-06-12 12:29:51 -03:00
Manuel Araoz
a57191c66f working on fixing the wierd test 2014-06-12 12:29:51 -03:00
Manuel Araoz
a2b8bb0f51 even weirder fix 2014-06-12 12:29:51 -03:00
Manuel Araoz
7b3c6d5bcd remove console.log 2014-06-12 12:29:51 -03:00
Manuel Araoz
9e46334d27 wierdest way of fixing the problem 2014-06-12 12:29:51 -03:00
Ryan X. Charles
c2e5a14eed throw error when using invalid length hash in Address
I have often made the error of using a public key rather than the hash of the
public key when creating an address, leading to invalid addresses. I'm sure I'm
not the only one. This commit follows the principle of "fail early, fail often"
and simply throws an error if you try to insert something other than 20 bytes
long when creating an address, which would be the case when using a public key.
This way that common mistake should be reduced.
2014-06-11 18:13:39 -07:00
Ryan X. Charles
772b12e471 Merge pull request #377 from cmgustavo/feature/fee-constant
Exporting a constant on TransactionBuilder for use on Copay
2014-06-11 15:38:50 -07:00
Gustavo Cortez
1d957b24d9 Exporting a constant on TransactionBuilder for use on Copay (to check available funds to spend). A simple test for this. 2014-06-11 19:00:11 -03:00
Devrandom
b523eee812 Switch BIP-0039 to sjcl in browser 2014-06-08 13:30:47 -07:00
Devrandom
79d50e92d4 BIP39 in browser 2014-06-08 12:43:05 -07:00
Devrandom
f2472e691b Separate out BIP39 2014-06-08 12:41:37 -07:00
Devrandom
63f7e3d062 BIP39 implementation 2014-06-08 12:40:28 -07:00
Ryan X. Charles
338158ca46 fix sjcl issue on npm install
...by including sjcl locally
2014-06-06 11:49:58 -07:00
Ryan X. Charles
2dac2b1f47 Merge pull request #362 from ryanxcharles/feature/ECIES
add ECIES support
2014-06-05 20:31:08 -07:00
Ryan X. Charles
80ccaa8396 rename "rand" to more explanatory "getRandomSeed" 2014-06-05 16:41:47 -07:00
Ryan X. Charles
b8986ed0e1 Merge pull request #357 from ionux/master
Fix to check for zero s value in sign function
2014-06-05 12:24:19 -07:00
Ryan X. Charles
117eaa4288 remove underscore dependency to decrease bundle size 2014-06-04 18:43:00 -07:00
Gabe
8e96d1439d check if seed is greater than 512 bits 2014-06-04 13:42:06 -04:00
Ryan X. Charles
af9fdff3a9 use SJCL AES to get ECIES working in the browser 2014-06-03 19:03:50 -07:00
Ryan X. Charles
e963ff3c45 add ECIES support in node - not browser 2014-06-02 20:15:58 -07:00
Rich Morgan
eab5c2896e Fix to check for zero s value in sign function
If r OR s are zero then recalculate both r and s until they are both non-zero values.
2014-05-28 11:34:18 -04:00
Ryan X. Charles
bc84d1e82b Merge pull request #351 from matiu/bug/minor-bug-in-address-FromScript
fix .fromScriptPubKey parsing in some strange Txs
2014-05-26 08:43:43 -07:00
Matias Alejo Garcia
e60e389e43 add more strict checking, plus tests 2014-05-25 23:46:20 -03:00
Matias Alejo Garcia
349143ba02 change log in checkStatus to .debug 2014-05-25 23:06:52 -03:00
Matias Alejo Garcia
56e7739a46 reverse changes in address 2014-05-25 23:01:59 -03:00
Matias Alejo Garcia
be02d41ac2 fix isMultiSig 2014-05-25 23:00:49 -03:00
Matias Alejo Garcia
ddd1476a39 fix buffer 2014-05-25 22:25:12 -03:00
Matias Alejo Garcia
691fec5342 fix .fromScriptPubKey parsing in some strange Txs 2014-05-25 22:25:12 -03:00
Gordon Hall
92e89d307e fix #346 2014-05-13 13:26:48 -04:00
Ryan X. Charles
c038abc8e7 rename BIP32 -> HierarchicalKey, deprecate BIP32
Sounds better.
2014-05-11 13:09:57 -04:00
Rich Apodaca
8489b50c32 Fixed TransactionBuilder docs 2014-05-08 14:53:18 -07:00
Manuel Aráoz
27b60c9e3f Merge pull request #338 from matiu/bug/snippet
fix snippet
2014-05-08 17:08:11 -03:00
Matias Alejo Garcia
bd91d17f57 fix snippet 2014-05-08 16:39:56 -03:00
olalonde
0c6a0c61d3 Armory: removed unused buffertools dependency 2014-05-08 08:46:09 +08:00
olalonde
e06e556ca3 Eckey: renamed multiply to multiplyUncompressed for consistency 2014-05-08 08:10:07 +08:00
olalonde
59ee476b96 Armory: use native multiplication in node and javascript implementation in browser 2014-05-08 07:54:12 +08:00
olalonde
b5c1a7d387 Eckey: implemented point multiplication 2014-05-08 07:54:12 +08:00
olalonde
af942f9b06 Armory: added tests 2014-05-08 07:54:12 +08:00
olalonde
7800128b9b Armory: from master public key 2014-05-08 07:54:11 +08:00
olalonde
708b59eb3e Armory: fixed bug.. extra lines considered as real input 2014-05-08 07:54:11 +08:00
olalonde
f647af50b7 Fixed browser exception caused by lib/Curve.js 2014-05-08 07:54:11 +08:00
olalonde
fa211f98bb Armory: cleaned up example 2014-05-08 07:54:11 +08:00
olalonde
468ebddc1e Implemented Armory initializing from seed 2014-05-08 07:54:11 +08:00
olalonde
e2655f553d Added EC Point multiplication to browser/Point.js 2014-05-08 07:54:11 +08:00
olalonde
78ae388553 Replace process.versions tests by browserify's package.json browser field. Fixes #329 2014-05-07 14:14:10 +08:00
Ryan X. Charles
527c49a11d remove unused chai dependency 2014-05-05 11:04:24 -04:00