Chris Stewart
|
2a1f8742ce
|
Changing SIGHASH_ALL to be a case class so it can hold the byte of whatever the last byte in a signature is. This is needed because if the last byte does not match any other hash types it is classified as a SIGHASH_ALL
|
2016-03-27 12:05:41 -05:00 |
|
Chris Stewart
|
89b9c7f29f
|
Factoring out TransactionSignatureCheckerResult into it's own file
|
2016-03-27 10:48:42 -05:00 |
|
Chris Stewart
|
0af48b52f6
|
Changing hash type factory to default to SIGHASH_ALL if the input does not match any other SIGHASH types
|
2016-03-27 10:35:45 -05:00 |
|
Chris Stewart
|
2b1395ce1d
|
Adding three result types for transaction signature checker - can succeeed, can fail because of der encoding, and can fail because of incorrect signatures. This takes care of issues of BIP66 examples
|
2016-03-26 15:01:18 -05:00 |
|
Chris Stewart
|
46eb3eb7ea
|
Fixing bug of finding hash type of the empty digital signature
|
2016-03-26 14:34:02 -05:00 |
|
Chris Stewart
|
932705595b
|
Fixing more bugs with calculating maxSigs & requiredSigs inside of multisignatureScriptPubKey
|
2016-03-25 17:58:19 -05:00 |
|
Chris Stewart
|
e075a239a4
|
Adding restrictions inside of ScriptPubKeyFactory for MultiSignaturePubKeys, now need to have atleast 2 ScriptNumberOperations
|
2016-03-25 14:22:23 -05:00 |
|
Chris Stewart
|
c891d220ac
|
Refactoring functionality inside of TranasctionSignatureChecker to reuse the same code for both p2sh multisig redeem scripts & regular multisig scripts. Also redoing how maxSigs is calculated for MultiSignatureScriptPubKeys
|
2016-03-25 13:48:03 -05:00 |
|
Chris Stewart
|
c495261f3a
|
Adding empty signature to ECDigitalSignature, adding unit tests for empty signature. Factoring DER signature encoding out of TransactionSignatureChecker
|
2016-03-25 12:03:47 -05:00 |
|
Chris Stewart
|
c141bbda7d
|
Putting band aid on bip66 example 6 right now using a Try type if public key verification fails inside of bitcoinj
|
2016-03-24 21:02:14 -05:00 |
|
Chris Stewart
|
b2332596e2
|
Fixing bug where isStrictDerEncoding was not working for the empty signature
|
2016-03-24 20:20:55 -05:00 |
|
Chris Stewart
|
4b7eb99836
|
Adding functionality inside of OP_CHECKSIG to see if the DERSIG flag is set
|
2016-03-24 19:35:16 -05:00 |
|
Chris Stewart
|
215cdddf20
|
Adding function to detect if a signature is strictly der encoded according to BIP66
|
2016-03-24 17:43:18 -05:00 |
|
Chris Stewart
|
7d8699e822
|
Adding ScriptVerifyFlag to indicate if CLTV is enforced or not
|
2016-03-24 11:23:19 -05:00 |
|
Chris Stewart
|
91feb92709
|
Creating ScriptFlagFactory to parse script flags and create them from strings
|
2016-03-23 15:25:57 -05:00 |
|
Chris Stewart
|
be8ae500c7
|
Adding ScriptVerify flags for script evaluation
|
2016-03-23 13:40:54 -05:00 |
|
Chris Stewart
|
07c2ed3669
|
Decoding (r,s) from DER signatures
|
2016-03-23 11:25:48 -05:00 |
|
Chris Stewart
|
72657b898f
|
Adding functionality to check if a signature isDEREncoded'
|
2016-03-22 20:05:45 -05:00 |
|
Chris Stewart
|
b9197a8613
|
Adding spongycastle as a dependency, cleaning up more usages of ScalacoinUtil
|
2016-03-22 08:15:16 -05:00 |
|
Chris Stewart
|
82d5713549
|
Fixing bug where single OP_0 was being classified as a MultiSignatureScriptSig
|
2016-03-21 15:41:15 -05:00 |
|
Chris Stewart
|
df085162a4
|
Switching to explicitly parsing redeemScripts now instead of parsing them while they are running through ScriptParser - this is how bitcoin core treats redeemScripts. This will make it easier for evaluating scriptSigs with redeemScripts in them
|
2016-03-21 14:02:04 -05:00 |
|
Chris Stewart
|
26ba8d956e
|
Slightly modifying line in script_valid.json to separate an OP_PUSHDATA op from the size of the data being pushed
|
2016-03-21 09:39:24 -05:00 |
|
Chris Stewart
|
55ae249f52
|
Adding new hash types to the available hashtypes inside of HashTypeFactory
|
2016-03-20 13:04:12 -05:00 |
|
Chris Stewart
|
e3f96968b2
|
Successfully building crediting tx and spending tx for bitcoin core tests inside of script_valid.json
|
2016-03-19 21:12:40 -05:00 |
|
Chris Stewart
|
cbac956ba7
|
adding requirement to buildSpendingTransaction to make sure it is the same as bitcoin core's buildSpendingTransaction
|
2016-03-19 15:12:32 -05:00 |
|
Chris Stewart
|
a9c52728f3
|
Adding code to mimic how transactions are built for script_valid.json inside of bitcoin core
|
2016-03-18 13:12:42 -05:00 |
|
Chris Stewart
|
86c7841cac
|
Fixing bug in how p2pk are evaluated in opCheckSig
|
2016-03-17 11:26:59 -05:00 |
|
Chris Stewart
|
f90b5d15d5
|
Fixing bug where p2pk scriptPubKeys were not being assigned the correct case class
|
2016-03-16 13:14:56 -05:00 |
|
Chris Stewart
|
f2f849f23b
|
Adding functionality to parse a p2pk scriptSig into the correct case class
|
2016-03-16 13:01:33 -05:00 |
|
Chris Stewart
|
82eac5ea15
|
Refactoring codebase back to use explicit ScriptPubKeyFactory & ScriptSignatureFactory - I think this will be better for long term maintainability
|
2016-03-16 09:46:34 -05:00 |
|
Chris Stewart
|
207674c6f9
|
Fixing bug in finding requiredSigs for MultiSignatureScriptPubKey - the number of sigs always follows the OP_0 that has to be placed in the scriptPubKey
|
2016-03-15 13:05:29 -05:00 |
|
Chris Stewart
|
c8ed1662d7
|
Addign case object to represent the empty script sig
|
2016-03-15 12:07:23 -05:00 |
|
Chris Stewart
|
0efe9d970b
|
Adding case inside of ECDigitalSignature for empty digital signatures - these are used inside of Bitcoin Core's script_valid.json test cases
|
2016-03-15 10:09:12 -05:00 |
|
Chris Stewart
|
00fde6fe56
|
Refactoring interface for script interpreter - now clients are responsible for building ScriptPrograms. Also adding another parameter for scriptSigs/scriptPubKeys to pass in the parsed asm representation along with the hexadecimal representation
|
2016-03-14 15:56:28 -05:00 |
|
Chris Stewart
|
4843ee5c5e
|
Adding a wrapper scriptSig/scriptPubKey from core test cases
|
2016-03-14 12:52:23 -05:00 |
|
Chris Stewart
|
26d827cde9
|
Merge pull request #2 from Christewart/checksig_implementation
Checksig implementation
|
2016-03-14 10:13:14 -05:00 |
|
Chris Stewart
|
a4a4b0bea4
|
Cleaning up some compiler warnings
|
2016-03-14 10:08:48 -05:00 |
|
Chris Stewart
|
2e9d362a83
|
Validating 2/3 p2sh scriptSig and making sure it fails to validate a 2/3 scriptSig that doesn't have enough sigs
|
2016-03-14 09:46:52 -05:00 |
|
Chris Stewart
|
aa25c4d199
|
Adding scaladocs for traits
|
2016-03-13 19:37:00 -05:00 |
|
Chris Stewart
|
df73627ae5
|
Removing ScriptSignatureFactory companion object - creating dependency inside of ScriptSignatureFactory to be injected with a ScriptSignature
|
2016-03-12 07:02:32 -06:00 |
|
Chris Stewart
|
57920765dc
|
Fixing compiler warnings about matching exhaustiveness inside of TransactionSignatureChecker - adding BitcoinSLogger trait for common logging across the implementation
|
2016-03-11 10:24:58 -06:00 |
|
Chris Stewart
|
588737eec8
|
Removing ScriptPubKeyFactory companion objecting - creating dependency of ScriptPubKeyFactory to be injected with a ScriptPubKey
|
2016-03-11 09:44:39 -06:00 |
|
Chris Stewart
|
23dfba3788
|
Adding case to handle p2pk scriptSignature type inside of TransactionSignatureChecker
|
2016-03-10 07:08:10 -06:00 |
|
Chris Stewart
|
db0355a453
|
Successfully verifying a 2 of 2 p2sh scriptSig against its scriptPubKey - next is validating m/n where m != n
|
2016-03-09 19:12:40 -06:00 |
|
Chris Stewart
|
c800777981
|
Fixing bug in SIGHASH_SINGLE implementation - now added a regression test in the translated bitcoinj hashForSignature & my home grown translated version to make sure the hashes are identical
|
2016-03-09 18:19:12 -06:00 |
|
Chris Stewart
|
22fa7af6dc
|
Changing type of redeemScript inside of P2SHScriptSignature from Seq[ScriptToken] to ScriptPubKey
|
2016-03-08 19:51:06 -06:00 |
|
Chris Stewart
|
629c65cd7b
|
Refactoring test cases from scriptPubkeys/scriptSigs into their own files
|
2016-03-08 09:53:24 -06:00 |
|
Chris Stewart
|
dbfb367fac
|
Successfully validating a multisignature script signature is spending a multi signature scriptPubKey correctly
|
2016-03-07 15:59:17 -06:00 |
|
Chris Stewart
|
f5063bc8c2
|
Implementing function to find public keys, required sigs, and maximum signatures inside a multisignature scriptPubKey output
|
2016-03-07 15:28:58 -06:00 |
|
Chris Stewart
|
002d1111f3
|
Creating product types for scriptPubKeys
|
2016-03-07 14:49:05 -06:00 |
|