aboutsummaryrefslogtreecommitdiff
path: root/src/script/sign.cpp
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2015-06-22 17:10:09 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2015-06-23 12:40:00 +0200
commit91389e51c78ae3565b037e31dd5382b52bd75136 (patch)
treee38a1457340ce17036b9e257d75fb46958fa6699 /src/script/sign.cpp
parentb77fbe095f44e182c484625a47940148d7c3b1e4 (diff)
parent208589514cdc344c2d33228dba7f00b305d0174b (diff)
downloadbitcoin-91389e51c78ae3565b037e31dd5382b52bd75136.tar.xz
Merge pull request #6088
2085895 fundrawtransaction tests (Jonas Schnelli) 21bbd92 Add fundrawtransaction RPC method (Matt Corallo) 1e0d1a2 Add FundTransaction method to wallet (Matt Corallo) 2d84e22 Small tweaks to CCoinControl for fundrawtransaction (Matt Corallo) 9b4e7d9 Add DummySignatureCreator which just creates zeroed sigs (Pieter Wuille)
Diffstat (limited to 'src/script/sign.cpp')
-rw-r--r--src/script/sign.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/script/sign.cpp b/src/script/sign.cpp
index eab629cd91..4543ca303f 100644
--- a/src/script/sign.cpp
+++ b/src/script/sign.cpp
@@ -275,3 +275,39 @@ CScript CombineSignatures(const CScript& scriptPubKey, const BaseSignatureChecke
return CombineSignatures(scriptPubKey, checker, txType, vSolutions, stack1, stack2);
}
+
+namespace {
+/** Dummy signature checker which accepts all signatures. */
+class DummySignatureChecker : public BaseSignatureChecker
+{
+public:
+ DummySignatureChecker() {}
+
+ bool CheckSig(const std::vector<unsigned char>& scriptSig, const std::vector<unsigned char>& vchPubKey, const CScript& scriptCode) const
+ {
+ return true;
+ }
+};
+const DummySignatureChecker dummyChecker;
+}
+
+const BaseSignatureChecker& DummySignatureCreator::Checker() const
+{
+ return dummyChecker;
+}
+
+bool DummySignatureCreator::CreateSig(std::vector<unsigned char>& vchSig, const CKeyID& keyid, const CScript& scriptCode) const
+{
+ // Create a dummy signature that is a valid DER-encoding
+ vchSig.assign(72, '\000');
+ vchSig[0] = 0x30;
+ vchSig[1] = 69;
+ vchSig[2] = 0x02;
+ vchSig[3] = 33;
+ vchSig[4] = 0x01;
+ vchSig[4 + 33] = 0x02;
+ vchSig[5 + 33] = 32;
+ vchSig[6 + 33] = 0x01;
+ vchSig[6 + 33 + 32] = SIGHASH_ALL;
+ return true;
+}