Commit Graph

285 Commits

Author SHA1 Message Date
Ryan X. Charles
b9f3479b12 Merge pull request #455 from chjj/root-certs
Root certs
2014-07-25 19:19:47 -04:00
Ryan X. Charles
f87da3b5ba add support for signing messages in compressed format
...this is the standard way to sign messages in bitcoin-qt. Note that the
format of a compressed signature, for messages, is quite distinct from DER
format, which is used in transactions. This commit also adds support for
recovering the public key from a signature, which is necessary for this. The
code for public key recover is taken from bitcoinjs-lib.
2014-07-25 14:07:03 -07:00
Ryan X. Charles
9937ec6312 Merge pull request #458 from matiu/feature/builder03
Fix loosing signatures after from-toObj roundtrip
2014-07-25 16:29:53 -04:00
Matias Alejo Garcia
1c6ec69c48 fix lossing signatured after from-toObj roundtrip 2014-07-25 16:43:18 -03:00
Christopher Jeffrey
8a84092be9 root-certs: use hasOwnProperty check instead of __proto__=null. 2014-07-25 10:53:21 -07:00
Christopher Jeffrey
c533db4f42 minor: remove redundant toUpperCase calls. 2014-07-24 23:07:52 -07:00
Christopher Jeffrey
dd165ecf63 paypro: root certs - do not inherit from Object. 2014-07-24 23:07:52 -07:00
Christopher Jeffrey
5b4c4f3894 paypro: get root cert names. 2014-07-24 23:07:52 -07:00
Christopher Jeffrey
0020e289d8 paypro: allow identification of root certs. 2014-07-24 23:07:52 -07:00
Matias Alejo Garcia
1b37d88e9a accept amount a strings in setOutput 2014-07-24 20:02:41 -03:00
Manuel Aráoz
cbfd30af16 Merge pull request #453 from matiu/feature/builder01
fix checkMerge, and tests
2014-07-24 18:50:55 -03:00
Matias Alejo Garcia
8660120add fix checkMerge, and tests 2014-07-24 18:46:12 -03:00
Manuel Araoz
0cfd5e43a8 fix merge 2014-07-24 18:02:42 -03:00
Manuel Araoz
c0d51916df add support code for copay's new tx proposal check 2014-07-24 18:01:14 -03:00
Manuel Araoz
b222550dd0 add Transaction#getReceivingAddresses and send 2014-07-24 18:01:14 -03:00
Ryan X. Charles
552a18b760 Merge pull request #452 from matiu/feature/txproposal10
TransactionBuilder .fromObj .toObj rewrite
2014-07-24 16:57:36 -04:00
Manuel Araoz
f1d7662a70 fix browser tests 2014-07-24 17:44:57 -03:00
Manuel Araoz
8a88c3ccd0 finish basic tests 2014-07-24 17:44:57 -03:00
Manuel Araoz
2fb5d7d3a5 change test to use sinon 2014-07-24 17:44:57 -03:00
Manuel Araoz
837658034a one test passes 2014-07-24 17:44:57 -03:00
Manuel Araoz
f8d7d1da9d add Transaction#getReceivingAddresses and send 2014-07-24 17:44:56 -03:00
Manuel Araoz
486f2ae1dc starting NetworkMonitor implementation 2014-07-24 17:42:51 -03:00
Matias Alejo Garcia
68b1211c4c formated using js-beautify 2014-07-24 17:35:21 -03:00
Matias Alejo Garcia
8e1de31797 test passing. 2014-07-24 17:33:40 -03:00
Ryan X. Charles
0f737b4f00 Merge pull request #450 from matiu/feature/sin03
Feature/sin03
2014-07-24 16:25:02 -04:00
Matias Alejo Garcia
2f97390849 formatted with js-beautify 2014-07-24 16:48:45 -03:00
Matias Alejo Garcia
397fc8607f new to/from Obj. WIP 2014-07-24 16:34:57 -03:00
Matias Alejo Garcia
71f992138b add check in constructor of Address 2014-07-24 01:40:56 -03:00
Matias Alejo Garcia
19584e1f26 add check in constructor 2014-07-24 01:40:13 -03:00
Ryan X. Charles
cd1d667fe1 Merge pull request #448 from matiu/feature/sin02
Feature/sin02
2014-07-23 20:48:33 -04:00
Matias Alejo Garcia
15c55e560a support uncompressed pub keys also 2014-07-23 19:49:42 -03:00
Christopher Jeffrey
11c977ba70 fix: typo - s/Payment/PaymentACK/ 2014-07-23 15:02:19 -07:00
Matias Alejo Garcia
14d3165a73 add fromPubKey to SIN 2014-07-23 18:53:57 -03:00
Ryan X. Charles
1936bfd374 Merge pull request #446 from chjj/paypro
PayPro: Fix payment protocol with regards to pki_data DER certs
2014-07-23 17:30:16 -04:00
Christopher Jeffrey
2f6938bad0 paypro: fix handling of pki_data - cert arrays. 2014-07-23 14:22:56 -07:00
Matias Alejo Garcia
733835dc7c removes unused / obsolete class "Sign.js" 2014-07-23 18:11:27 -03:00
Christopher Jeffrey
017f044b53 paypro: fix browser signatures with KJUR. move pem/der functions to common. 2014-07-21 19:52:43 -07:00
Christopher Jeffrey
604ac04f47 paypro: split up paypro into node/browser/common. 2014-07-21 18:15:52 -07:00
Christopher Jeffrey
cec71a51fd paypro: add isTrusted function to RootCerts. 2014-07-21 14:56:48 -07:00
Christopher Jeffrey
672e667e9c paypro: remove x509.js 2014-07-21 14:56:48 -07:00
Christopher Jeffrey
85d5e69fc1 paypro: move root certs to common. 2014-07-21 14:56:48 -07:00
Christopher Jeffrey
86efcbed1b paypro: remove all references of KJUR. 2014-07-21 14:56:48 -07:00
Christopher Jeffrey
92b7fad243 paypro: start using our own DERtoPEM functions so we don't have to require jsrsasign. 2014-07-21 14:56:48 -07:00
Christopher Jeffrey
ec5a948400 paypro: fix pem/der functions. 2014-07-21 14:56:48 -07:00
Christopher Jeffrey
02f9ce8dfd paypro: temporarily fix tests. 2014-07-21 14:56:47 -07:00
Christopher Jeffrey
aafbca46d9 paypro: move x509 sign and verify to their own methods. 2014-07-21 14:56:47 -07:00
Christopher Jeffrey
575352dd03 paypro: port root certs script to node for portability. 2014-07-21 14:55:10 -07:00
Christopher Jeffrey
a68c112371 paypro: fix DERtoPEM. 2014-07-21 14:55:10 -07:00
Christopher Jeffrey
271ac2e9a5 minor: fix typo. 2014-07-21 14:55:10 -07:00
Christopher Jeffrey
eb9fd652d2 paypro: potentially stop using jsrsasign in node. 2014-07-21 14:55:10 -07:00
Christopher Jeffrey
0db74604db paypro: update root certs and fix tests. 2014-07-21 14:55:10 -07:00
Christopher Jeffrey
8725516afb paypro: convert root certs to hash table in build file. 2014-07-21 14:55:10 -07:00
Christopher Jeffrey
cc7657d843 paypro: treat pki_data as an array. 2014-07-21 14:55:10 -07:00
Christopher Jeffrey
47e1ca5f1e minor: remove unused code. 2014-07-21 14:55:10 -07:00
Christopher Jeffrey
4dcdd3c091 paypro: temporarily disable untrusted cert error for tests. typo fix. 2014-07-21 14:55:10 -07:00
Christopher Jeffrey
f7e89b6a58 paypro: handle untrusted certs on browser and node. 2014-07-21 14:55:10 -07:00
Christopher Jeffrey
f79a31ff3c paypro: get single DER certs working. 2014-07-21 14:55:10 -07:00
Christopher Jeffrey
4ec9a247aa paypro: multiple fixes. 2014-07-21 14:55:10 -07:00
Christopher Jeffrey
24ae03247f paypro: stat using jsrsasign to convert DER to PEM and derive public keys for sig verification. 2014-07-21 14:55:10 -07:00
Christopher Jeffrey
37f20f3268 paypro: fix browser paypro. TODO: fix parsing DER certs. 2014-07-21 14:55:10 -07:00
Christopher Jeffrey
4e606c7ed2 paypro: move root certs to non-browser. 2014-07-21 14:55:10 -07:00
Christopher Jeffrey
2e422c001e paypro: fix payment protocol for DER certs. 2014-07-21 14:55:10 -07:00
Christopher Jeffrey
119ef0d611 paypro: begin checking trusted certs. 2014-07-21 14:55:10 -07:00
Christopher Jeffrey
29b067ab73 paypro: add createTrusted to browser build script. 2014-07-21 14:55:10 -07:00
Christopher Jeffrey
d4d1a11252 paypro: generate Trusted.js. 2014-07-21 14:54:38 -07:00
Christopher Jeffrey
0d68e429fc paypro: add trusted x509 certs in Trusted.js for now. 2014-07-21 14:54:38 -07:00
Christopher Jeffrey
722a10f965 paypro: fix encodings with jsrsasign. 2014-07-21 14:54:38 -07:00
Christopher Jeffrey
059b23f899 paypro: clientside. start using jsrsasign api correctly. 2014-07-21 14:54:38 -07:00
Christopher Jeffrey
538c6c32de paypro: figure out clientside jsrasign more. 2014-07-21 14:54:38 -07:00
Christopher Jeffrey
1ad3392184 paypro: add lib/browser/x509. 2014-07-21 14:54:38 -07:00
Christopher Jeffrey
4632caf542 paypro: try to figure out differences between browser and npm jsrsasign. 2014-07-21 14:54:38 -07:00
Christopher Jeffrey
11b67a6404 paypro: use jsrsasign for browser. 2014-07-21 14:54:38 -07:00
Christopher Jeffrey
12bfe8268d paypro: first pass at clientside x509. 2014-07-21 14:54:03 -07:00
Christopher Jeffrey
14bf79cc80 fix: fix variable typo for paypro. 2014-07-21 14:54:03 -07:00
Christopher Jeffrey
e4c4101b5f paypro: fix rsa+sha256 vs rsa+sha1. 2014-07-21 14:54:03 -07:00
Christopher Jeffrey
3dc7a4ab84 test: fix x509 tests for PayPro. 2014-07-21 14:54:03 -07:00
Christopher Jeffrey
c209e3172d paypro: x509 nonsense. 2014-07-21 14:54:03 -07:00
Christopher Jeffrey
1d0f01c133 paypro: first pass at implementing payment protocol for x509. 2014-07-21 14:54:03 -07:00
Ryan X. Charles
4523012867 set .converters and ._encoding by hand
...revert to previous change, since always calling the constructor of
VersionedData may have unintended consequences. Instead, just set .converts and
._encoding, since they are no longer in the prototype and must be set on the
object itself.
2014-07-18 11:40:13 -07:00
Ryan X. Charles
098c613cb0 SIN should call EncodedData constructor
Creating SINs was broken due to not calling the parent constructor, shich sets
"converts" and "_encoding". I've fixed the problem and added tests that reveal
the error.
2014-07-18 09:24:57 -07:00
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