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
Daniel Cousens
708aa03390
Transaction/Script: bitcoin network no longer implied
...
A Transaction (and its subsequent scripts) do not carry any network
specific information in the Bitcoin protocol.
Therefore they can not (without further context) produce the network
specific constants for the generation of the base58 Addresses.
As TransactionOut.address is used heavily throughout Wallet and other
areas of the library, this could not be entirely removed without a large
number of changes.
For now, TransactionOut.address is only defined in the case of
Tx.addOutput being used directly:
Transaction.addOutput(address, value)
2014-05-08 10:59:58 +10:00
Daniel Cousens
4207a0df99
Address: use Address.Error instead
...
This change is necessary for instanceof comparison when attempting to
rethrow. Callbacks may be a better solution to introduce later.
2014-05-08 10:59:58 +10:00