diff options
| author | Andrew Chow <[email protected]> | 2018-07-14 19:19:44 -0700 |
|---|---|---|
| committer | Andrew Chow <[email protected]> | 2018-08-09 18:39:56 -0700 |
| commit | 48b1473c898129a99212e2db36c61cf93625ea17 (patch) | |
| tree | 5450731f5b800cec8548802e28deccfd45cc946a /src | |
| parent | Always create 70 byte signatures with low R values (diff) | |
| download | discoin-48b1473c898129a99212e2db36c61cf93625ea17.tar.xz discoin-48b1473c898129a99212e2db36c61cf93625ea17.zip | |
Use 71 byte signature for DUMMY_SIGNATURE_CREATOR
Changes DUMMY_SIGNATURE_CREATOR to create 71 byte dummy signatures.
Update comments to reflect this change
Diffstat (limited to 'src')
| -rw-r--r-- | src/script/sign.cpp | 14 | ||||
| -rw-r--r-- | src/wallet/wallet.cpp | 4 | ||||
| -rw-r--r-- | src/wallet/wallet.h | 2 |
3 files changed, 10 insertions, 10 deletions
diff --git a/src/script/sign.cpp b/src/script/sign.cpp index fa09adbaf..c103e3c2f 100644 --- a/src/script/sign.cpp +++ b/src/script/sign.cpp @@ -423,16 +423,16 @@ public: bool CreateSig(const SigningProvider& provider, std::vector<unsigned char>& vchSig, const CKeyID& keyid, const CScript& scriptCode, SigVersion sigversion) const override { // Create a dummy signature that is a valid DER-encoding - vchSig.assign(72, '\000'); + vchSig.assign(71, '\000'); vchSig[0] = 0x30; - vchSig[1] = 69; + vchSig[1] = 68; vchSig[2] = 0x02; - vchSig[3] = 33; + vchSig[3] = 32; vchSig[4] = 0x01; - vchSig[4 + 33] = 0x02; - vchSig[5 + 33] = 32; - vchSig[6 + 33] = 0x01; - vchSig[6 + 33 + 32] = SIGHASH_ALL; + vchSig[4 + 32] = 0x02; + vchSig[5 + 32] = 32; + vchSig[6 + 32] = 0x01; + vchSig[6 + 32 + 32] = SIGHASH_ALL; return true; } }; diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 16568d0e0..173f1b786 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -1540,7 +1540,7 @@ int64_t CWalletTx::GetTxTime() const return n ? n : nTimeReceived; } -// Helper for producing a max-sized low-S signature (eg 72 bytes) +// Helper for producing a max-sized low-S low-R signature (eg 71 bytes) bool CWallet::DummySignInput(CTxIn &tx_in, const CTxOut &txout) const { // Fill in dummy signatures for fee calculation. @@ -1556,7 +1556,7 @@ bool CWallet::DummySignInput(CTxIn &tx_in, const CTxOut &txout) const return true; } -// Helper for producing a bunch of max-sized low-S signatures (eg 72 bytes) +// Helper for producing a bunch of max-sized low-S low-R signatures (eg 71 bytes) bool CWallet::DummySignTx(CMutableTransaction &txNew, const std::vector<CTxOut> &txouts) const { // Fill in dummy signatures for fee calculation. diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h index 06a7c0a75..8054cfadf 100644 --- a/src/wallet/wallet.h +++ b/src/wallet/wallet.h @@ -1308,7 +1308,7 @@ public: }; // Calculate the size of the transaction assuming all signatures are max size -// Use DummySignatureCreator, which inserts 72 byte signatures everywhere. +// Use DummySignatureCreator, which inserts 71 byte signatures everywhere. // NOTE: this requires that all inputs must be in mapWallet (eg the tx should // be IsAllFromMe). int64_t CalculateMaximumSignedTxSize(const CTransaction &tx, const CWallet *wallet); |