diff options
| author | Pieter Wuille <[email protected]> | 2014-10-08 15:46:54 -0700 |
|---|---|---|
| committer | Pieter Wuille <[email protected]> | 2014-10-08 15:48:57 -0700 |
| commit | bf7b4fc6d3bdfd9283a633da7833a5ec6fa3cd85 (patch) | |
| tree | afb1a13bbabe88337c1f7ebe7acc86cea4286535 /src/script/interpreter.h | |
| parent | Merge pull request #4834 (diff) | |
| parent | Make SCRIPT_VERIFY_STRICTENC compatible with BIP62 (diff) | |
| download | discoin-bf7b4fc6d3bdfd9283a633da7833a5ec6fa3cd85.tar.xz discoin-bf7b4fc6d3bdfd9283a633da7833a5ec6fa3cd85.zip | |
Merge pull request #5004
9df9cf5 Make SCRIPT_VERIFY_STRICTENC compatible with BIP62 (Pieter Wuille)
Diffstat (limited to 'src/script/interpreter.h')
| -rw-r--r-- | src/script/interpreter.h | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/src/script/interpreter.h b/src/script/interpreter.h index 0ff73964b..de5ce2ced 100644 --- a/src/script/interpreter.h +++ b/src/script/interpreter.h @@ -28,14 +28,25 @@ enum enum { SCRIPT_VERIFY_NONE = 0, - SCRIPT_VERIFY_P2SH = (1U << 0), // evaluate P2SH (BIP16) subscripts - SCRIPT_VERIFY_STRICTENC = (1U << 1), // enforce strict conformance to DER and SEC2 for signatures and pubkeys - SCRIPT_VERIFY_LOW_S = (1U << 2), // enforce low S values (<n/2) in signatures (depends on STRICTENC) - SCRIPT_VERIFY_NULLDUMMY = (1U << 3), // verify dummy stack item consumed by CHECKMULTISIG is of zero-length -}; -bool IsCanonicalPubKey(const std::vector<unsigned char> &vchPubKey, unsigned int flags); -bool IsCanonicalSignature(const std::vector<unsigned char> &vchSig, unsigned int flags); + // Evaluate P2SH subscripts (softfork safe, BIP16). + SCRIPT_VERIFY_P2SH = (1U << 0), + + // Passing a non-strict-DER signature or one with undefined hashtype to a checksig operation causes script failure. + // Passing a pubkey that is not (0x04 + 64 bytes) or (0x02 or 0x03 + 32 bytes) to checksig causes that pubkey to be + // skipped (not softfork safe: this flag can widen the validity of OP_CHECKSIG OP_NOT). + SCRIPT_VERIFY_STRICTENC = (1U << 1), + + // Passing a non-strict-DER signature to a checksig operation causes script failure (softfork safe, BIP62 rule 1) + SCRIPT_VERIFY_DERSIG = (1U << 2), + + // Passing a non-strict-DER signature or one with S > order/2 to a checksig operation causes script failure + // (softfork safe, BIP62 rule 5). + SCRIPT_VERIFY_LOW_S = (1U << 3), + + // verify dummy stack item consumed by CHECKMULTISIG is of zero-length (softfork safe, BIP62 rule 7). + SCRIPT_VERIFY_NULLDUMMY = (1U << 4), +}; uint256 SignatureHash(const CScript &scriptCode, const CTransaction& txTo, unsigned int nIn, int nHashType); |