diff options
Diffstat (limited to 'src/script.cpp')
| -rw-r--r-- | src/script.cpp | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/script.cpp b/src/script.cpp index ec9e9d61d..2b66bc73d 100644 --- a/src/script.cpp +++ b/src/script.cpp @@ -2,24 +2,25 @@ // Copyright (c) 2009-2013 The Bitcoin developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. + #include "script.h" -#include "core.h" -#include "keystore.h" + #include "bignum.h" +#include "core.h" +#include "hash.h" #include "key.h" +#include "keystore.h" #include "sync.h" +#include "uint256.h" #include "util.h" #include <boost/foreach.hpp> #include <boost/tuple/tuple.hpp> +#include <boost/tuple/tuple_comparison.hpp> using namespace std; using namespace boost; -bool CheckSig(vector<unsigned char> vchSig, const vector<unsigned char> &vchPubKey, const CScript &scriptCode, const CTransaction& txTo, unsigned int nIn, int nHashType, int flags); - - - typedef vector<unsigned char> valtype; static const valtype vchFalse(0); static const valtype vchZero(0); @@ -30,6 +31,7 @@ static const CBigNum bnFalse(0); static const CBigNum bnTrue(1); static const size_t nMaxNumSize = 4; +bool CheckSig(vector<unsigned char> vchSig, const vector<unsigned char> &vchPubKey, const CScript &scriptCode, const CTransaction& txTo, unsigned int nIn, int nHashType, int flags); CBigNum CastToBigNum(const valtype& vch) { @@ -1124,12 +1126,12 @@ public: // (~200 bytes per cache entry times 50,000 entries) // Since there are a maximum of 20,000 signature operations per block // 50,000 is a reasonable default. - int64 nMaxCacheSize = GetArg("-maxsigcachesize", 50000); + int64_t nMaxCacheSize = GetArg("-maxsigcachesize", 50000); if (nMaxCacheSize <= 0) return; boost::unique_lock<boost::shared_mutex> lock(cs_sigcache); - while (static_cast<int64>(setValid.size()) > nMaxCacheSize) + while (static_cast<int64_t>(setValid.size()) > nMaxCacheSize) { // Evict a random entry. Random because that helps // foil would-be DoS attackers who might try to pre-generate @@ -1903,7 +1905,7 @@ void CScript::SetMultisig(int nRequired, const std::vector<CPubKey>& keys) bool CScriptCompressor::IsToKeyID(CKeyID &hash) const { - if (script.size() == 25 && script[0] == OP_DUP && script[1] == OP_HASH160 + if (script.size() == 25 && script[0] == OP_DUP && script[1] == OP_HASH160 && script[2] == 20 && script[23] == OP_EQUALVERIFY && script[24] == OP_CHECKSIG) { memcpy(&hash, &script[3], 20); |