Browse Source

Randomize signature for txpow

pull/4/head
jl777 6 years ago
parent
commit
607133377c
  1. 1
      src/rpcrawtransaction.cpp
  2. 13
      src/script/sign.cpp

1
src/rpcrawtransaction.cpp

@ -1111,6 +1111,7 @@ UniValue signrawtransaction(const UniValue& params, bool fHelp)
uint256 txid = mergedTx.GetHash();
if ( ((uint8_t *)&txid)[0] == 0 && ((uint8_t *)&txid)[31] == 0 )
break;
fprintf(stderr,"%d: tmp txid.%s\n",numiters,txid.GetHex().c_str());
} else break;
numiters++;
}

13
src/script/sign.cpp

@ -16,6 +16,7 @@
using namespace std;
typedef vector<unsigned char> valtype;
extern uint8_t ASSETCHAINS_TXPOW;
TransactionSignatureCreator::TransactionSignatureCreator(const CKeyStore* keystoreIn, const CTransaction* txToIn, unsigned int nInIn, const CAmount& amountIn, int nHashTypeIn) : BaseSignatureCreator(keystoreIn), txTo(txToIn), nIn(nInIn), nHashType(nHashTypeIn), amount(amountIn), checker(txTo, nIn, amountIn) {}
@ -32,8 +33,16 @@ bool TransactionSignatureCreator::CreateSig(std::vector<unsigned char>& vchSig,
return false;
}
if (!key.Sign(hash, vchSig))
return false;
if ( ASSETCHAINS_TXPOW == 0 )
{
if (!key.Sign(hash, vchSig))
return false;
}
else
{
if (!key.Sign(hash, vchSig, rand()))
return false;
}
vchSig.push_back((unsigned char)nHashType);
return true;
}

Loading…
Cancel
Save