diff options
| author | Jack Grigg <[email protected]> | 2017-06-06 17:44:17 +1200 |
|---|---|---|
| committer | Jack Grigg <[email protected]> | 2017-07-17 11:55:05 -0500 |
| commit | e181dbe7482424d2658df08e7a0c3cd832839edf (patch) | |
| tree | a1d11ce3534df7213f170cc371da96d79a157e48 /src/script/interpreter.cpp | |
| parent | Fix potential overflows in ECDSA DER parsers (diff) | |
| download | discoin-e181dbe7482424d2658df08e7a0c3cd832839edf.tar.xz discoin-e181dbe7482424d2658df08e7a0c3cd832839edf.zip | |
Add comments
Diffstat (limited to 'src/script/interpreter.cpp')
| -rw-r--r-- | src/script/interpreter.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/script/interpreter.cpp b/src/script/interpreter.cpp index 8a121774a..39e06f4a5 100644 --- a/src/script/interpreter.cpp +++ b/src/script/interpreter.cpp @@ -174,7 +174,13 @@ bool static IsLowDERSignature(const valtype &vchSig, ScriptError* serror) { if (!IsValidSignatureEncoding(vchSig)) { return set_error(serror, SCRIPT_ERR_SIG_DER); } + // https://bitcoin.stackexchange.com/a/12556: + // Also note that inside transaction signatures, an extra hashtype byte + // follows the actual signature data. std::vector<unsigned char> vchSigCopy(vchSig.begin(), vchSig.begin() + vchSig.size() - 1); + // If the S value is above the order of the curve divided by two, its + // complement modulo the order could have been used instead, which is + // one byte shorter when encoded correctly. if (!CPubKey::CheckLowS(vchSigCopy)) { return set_error(serror, SCRIPT_ERR_SIG_HIGH_S); } |