Commit graph

411 commits

Author SHA1 Message Date
Daniel Cousens aca565239a ECKey: remove unnecessary slice 2014-05-24 00:51:56 +10:00
Daniel Cousens cd326921bc bigi: upgrade to 1.1.0 2014-05-24 00:51:56 +10:00
Daniel Cousens 1087ac07de sec: fix formatting 2014-05-24 00:51:56 +10:00
Daniel Cousens b8858c0bc9 sec: use BigInteger.fromHex directly 2014-05-24 00:51:56 +10:00
Daniel Cousens da48c988f6 sec: use a hashtable for lookup 2014-05-24 00:51:56 +10:00
Daniel Cousens 087ca551f5 ecdsa: fix indentation 2014-05-24 00:48:31 +10:00
Daniel Cousens d05d661aea ecdsa: use standard declarative notation for functions 2014-05-24 00:48:31 +10:00
Daniel Cousens bcfd62fdb5 ecdsa: remove implicit ecparams 2014-05-24 00:48:31 +10:00
Daniel Cousens 2dec1375a1 ecdsa: use (r, s) values directly 2014-05-24 00:48:31 +10:00
Daniel Cousens 8d7408202f ecdsa: consistent parameter ordering 2014-05-24 00:48:31 +10:00
Daniel Cousens abe65b8d4a ecdsa: use shamirs trick 2014-05-24 00:48:20 +10:00
Daniel Cousens a17a5b23d9 ec: fix point decoding for other curves 2014-05-22 12:33:47 +10:00
Daniel Cousens 5ec9504ed6 ecdsa: opt for shiftRight, pow and square
In the given situations, these offer better readability, or in the case
of shiftRight, a substantial performance increase.
2014-05-22 12:33:47 +10:00
Daniel Cousens 7d89ff427c ecdsa: comment cleanup 2014-05-22 12:33:47 +10:00
Daniel Cousens 0865f09d20 ec/dsa: extract P_OVER_FOUR as a curve specific constant
This actually resolves a possible bug if multiple ecparams were used
(aka different values for P_OVER_FOUR, but only the cached was used).
2014-05-22 12:33:47 +10:00
Daniel Cousens 1e54c521d5 ec: extract BigInteger constants 2014-05-22 12:33:47 +10:00
Daniel Cousens d9ce4bee6b ec: use signum() not equals(BigInteger.ZERO) 2014-05-22 12:33:47 +10:00
Daniel Cousens d14b08efd1 ec/dsa: recovery param now used consistently
Also added an assertion rather than massaging the input.
2014-05-22 12:32:28 +10:00
Daniel Cousens 24371425f9 ec: decodeFrom now uses Buffers and handles errors 2014-05-18 17:52:49 +10:00
Daniel Cousens a3f691bf7c ecdsa: parseSigCompact use Buffer API
parseSigCompact also now returns the correct recovert parameter without
the need to subtract the compression bit.
This makes it easier to use.
2014-05-18 17:52:49 +10:00
Daniel Cousens f7c7265d64 ecdsa: parseSig now uses buffer API 2014-05-18 17:52:49 +10:00
Daniel Cousens ccca6989b5 ec: getEncoded now uses Buffer API 2014-05-18 17:52:49 +10:00
Daniel Cousens db3ffe58d1 message: use serializeSigCompact 2014-05-18 17:52:49 +10:00
Daniel Cousens 4c7108d561 ecdsa: add serializeSigCompact and tests
This also adds tests for all other ECDSA serialize/parsing functions.
The k, r, s and D values were sourced from test vectors on
https://bitcointalk.org/index.php?topic=285142.40 .

The compact signatures (aka, i values) were generated from bitcoinjslib, but they
are straight forward anyway.
2014-05-18 17:52:49 +10:00
Daniel Cousens b208a6ab78 crypto/ecdsa: moves HmacSHA256 to crypto 2014-05-18 17:52:49 +10:00
Daniel Cousens 99a1b7274c Transaction: use the type embedded in the signature 2014-05-18 17:52:48 +10:00
Daniel Cousens 6b5990c6e2 message: support alternate networks 2014-05-18 17:51:36 +10:00
Daniel Cousens 10fe4474d1 ECKey: remove *Buffer/*Hex functions
An ECKey is a composition of a private key (D), a public key (Q) and its
compression flag.

These functions gave the impression of serialization of this
composition, when really they only serialized `D`.
They have therefore been removed in favour of always using a sane
serialization format (WIF) that matches the needed behaviour.

If a user needs the previous functionality, simply use `privKey.D.*`
instead of `privKey.*`, as BigInteger supports `*Buffer/*Hex` functions
as expected.
2014-05-18 17:50:10 +10:00
Daniel Cousens 0468c4710c Transaction: rename (de)serialize to [to/from]Buffer 2014-05-17 00:09:13 +10:00
Daniel Cousens e033a872c9 Transaction: rename hashTransactionForSignature to hashForSignature 2014-05-17 00:09:13 +10:00
Daniel Cousens 55681e7e5d Script: use PubKey objects not prebuilt Buffers 2014-05-17 00:09:13 +10:00
Daniel Cousens 54cc123d31 Address/Script: consistent function ordering 2014-05-17 00:09:13 +10:00
Daniel Cousens b99ed46796 opcodes: rename to opcodes 2014-05-13 23:14:07 +10:00
Daniel Cousens f9782b7c17 opcodes: remove unused reverseMap 2014-05-13 23:12:30 +10:00
Daniel Cousens 554ba250b9 opcode: less redundant indentation 2014-05-13 18:53:30 +10:00
Daniel Cousens 1fe8282eda Script: remove redundant opcode.map access 2014-05-13 18:53:30 +10:00
Daniel Cousens e27c97a791 ECPubKey/ECKey: separate to two files 2014-05-13 16:51:06 +10:00
Daniel Cousens 05e0d08098 BufferExt: rename to bufferutils 2014-05-13 16:46:12 +10:00
Daniel Cousens 276a339d60 crypto: HMACSHA512 into crypto and add tests 2014-05-12 10:18:39 +10:00
Daniel Cousens f70ccc9215 convert: remove hex functions 2014-05-12 10:17:38 +10:00
Daniel Cousens 614a213d44 Transaction: remove untested hash array support 2014-05-12 10:17:38 +10:00
Daniel Cousens 063643b4a1 HDWallet: show clearer BIP32 adherence for Master key 2014-05-12 09:56:00 +10:00
Daniel Cousens 3ed7d78e59 HDWallet: adhere to BIP32 for CKD 2014-05-10 09:57:16 +10:00
Daniel Cousens 25514d6ac1 HDWallet: remove HmacBytesToBytes 2014-05-10 09:57:16 +10:00
Daniel Cousens da36003d09 Script: remove sort requirement for multisig 2014-05-09 18:03:41 +10:00
Daniel Cousens de343b2093 Script: remove Address requirement 2014-05-09 18:03:22 +10:00
Daniel Cousens f18c5e4c1e Script: removes Script.createP2SHMultiSigScriptSig
It is favoured to compose the scriptSig manually using
Script.createP2SHScriptSig and Script.createMultisigScriptSig.

Added a test to verify that createMultisigScriptSig throws when not
enough signatures a provided and the redeemScript is given.
2014-05-09 16:26:35 +10:00
Daniel Cousens f8e662e495 Script: rename toScriptHash to getHash and add tests 2014-05-09 13:07:06 +10:00
Daniel Cousens 342c55c864 Address: remove circular dependency fix
This is no longer a problem.
2014-05-09 12:26:38 +10:00
Daniel Cousens 48e15b587a Address: remove redundant comments 2014-05-09 12:25:24 +10:00