Commit Graph

287 Commits

Author SHA1 Message Date
Ryan X. Charles
fb3cc38046 make bignum tests run in node, not just browser 2014-07-10 18:17:11 -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
9ca869b95b add "ECKey" to Key test so grepping is easier 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
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
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
dfc129b766 test vector that passes in node, but fails in browser/sjcl
There is some kind of problem either in bitcore or sjcl involving the
decodeURIComponent function. I discovered this issue while working on the
network protocol for Copay.  Decrypting binary data in sjcl produces problems
due to the way sjcl is interpreting data as strings. I will have to investigate
further tomorrow. For now I am producing this test vector to demonstrate the
issue.
2014-07-09 01:05:16 -07:00
Ryan X. Charles
153cb7ad50 add "real" 0.1.24 and 0.1.25, and...
In this commit I have added the 'official' versions 0.1.24 and 0.1.25 to the
repo, and also created a new bitcore-dev.js that is not included in the repo.
bitcoin-dev.js is what we will use for development. When we define a new
version, we create a new bitcore-x.x.x.js file, and point bitcore-latest.js to
that. Note that the bitcore-x.x.x.js files should always be the "main" bundle,
which does not include BIP39 or BIP70, or other large packages.
2014-07-07 19:50:57 -07:00
Ryan X. Charles
4e3b258f07 Merge remote-tracking branch 'maraoz/feature/bundle-name'
Conflicts:
	browser/bitcore-0.1.24.js
2014-07-07 19:00:26 -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
Manuel Araoz
fcde4e84ad add new bundles and symbolic link 2014-07-04 15:15:35 -03: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
e69d71924d add test for setObj 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
Devrandom
efb62b08b7 add check function for BIP39
fixes #393
2014-07-01 14:00:08 -07:00
Ryan X. Charles
15d0d1a333 add tests that confirm Message works with buffers 2014-06-25 14:30:28 -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
Manan Patel
d83fc6e4b5 Resolves #373
Move TransactionBuilder.scriptForAddress to Address#getScriptPubKey (instance method)
2014-06-19 08:40:30 -07:00
Manan Patel
0d9317e2d4 adding few tests for Peer.js 2014-06-19 01:07:45 -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
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
a15962da88 fixing 2014-06-12 12:29:51 -03:00
Manuel Araoz
d9a91e89c3 attempt to fix in linux 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
Manuel Araoz
5428b1109e add problematic test 2014-06-12 12:29:50 -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
Ryan X. Charles
895a512e55 run HierarchicalKey tests in the browser
...not BIP32, which is the old name for HierarchicalKey
2014-06-11 14:28:30 -07: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
261a94d806 add ECIES example 2014-06-06 14:34:42 -07:00
Ryan X. Charles
80ccaa8396 rename "rand" to more explanatory "getRandomSeed" 2014-06-05 16:41:47 -07:00
Ryan X. Charles
5172b3160b add test to confirm correctness of sha512hmac 2014-06-04 18:57:26 -07: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
Matias Alejo Garcia
c9694c5768 rm console.log 2014-05-26 12:40:07 -03:00
Matias Alejo Garcia
e60e389e43 add more strict checking, plus tests 2014-05-25 23:46:20 -03:00