Changeset View
Changeset View
Standalone View
Standalone View
src/test/checkdatasig_tests.cpp
Show First 20 Lines • Show All 151 Lines • ▼ Show 20 Lines | for (int i = 0; i < 4096; i++) { | ||||
uint32_t flags = lcg.next(); | uint32_t flags = lcg.next(); | ||||
if (flags & SCRIPT_VERIFY_STRICTENC) { | if (flags & SCRIPT_VERIFY_STRICTENC) { | ||||
// When strict encoding is enforced, hybrid keys are invalid. | // When strict encoding is enforced, hybrid keys are invalid. | ||||
CheckError(flags, {{}, message, pubkeyH}, script, | CheckError(flags, {{}, message, pubkeyH}, script, | ||||
ScriptError::PUBKEYTYPE); | ScriptError::PUBKEYTYPE); | ||||
CheckError(flags, {{}, message, pubkeyH}, scriptverify, | CheckError(flags, {{}, message, pubkeyH}, scriptverify, | ||||
ScriptError::PUBKEYTYPE); | ScriptError::PUBKEYTYPE); | ||||
} else if (flags & SCRIPT_VERIFY_COMPRESSED_PUBKEYTYPE) { | |||||
// When compressed-only is enforced, hybrid keys are invalid. | |||||
CheckError(flags, {{}, message, pubkeyH}, script, | |||||
ScriptError::NONCOMPRESSED_PUBKEY); | |||||
CheckError(flags, {{}, message, pubkeyH}, scriptverify, | |||||
ScriptError::NONCOMPRESSED_PUBKEY); | |||||
} else { | } else { | ||||
// Otherwise, hybrid keys are valid. | // Otherwise, hybrid keys are valid. | ||||
CheckPass(flags, {{}, message, pubkeyH}, script, {}); | CheckPass(flags, {{}, message, pubkeyH}, script, {}); | ||||
CheckError(flags, {{}, message, pubkeyH}, scriptverify, | CheckError(flags, {{}, message, pubkeyH}, scriptverify, | ||||
ScriptError::CHECKDATASIGVERIFY); | ScriptError::CHECKDATASIGVERIFY); | ||||
} | } | ||||
if (flags & SCRIPT_VERIFY_COMPRESSED_PUBKEYTYPE) { | // Uncompressed keys are valid. | ||||
// When compressed-only is enforced, uncompressed keys are invalid. | |||||
CheckError(flags, {{}, message, pubkey}, script, | |||||
ScriptError::NONCOMPRESSED_PUBKEY); | |||||
CheckError(flags, {{}, message, pubkey}, scriptverify, | |||||
ScriptError::NONCOMPRESSED_PUBKEY); | |||||
} else { | |||||
// Otherwise, uncompressed keys are valid. | |||||
CheckPass(flags, {{}, message, pubkey}, script, {}); | CheckPass(flags, {{}, message, pubkey}, script, {}); | ||||
CheckError(flags, {{}, message, pubkey}, scriptverify, | CheckError(flags, {{}, message, pubkey}, scriptverify, | ||||
ScriptError::CHECKDATASIGVERIFY); | ScriptError::CHECKDATASIGVERIFY); | ||||
} | |||||
if (flags & SCRIPT_VERIFY_NULLFAIL) { | if (flags & SCRIPT_VERIFY_NULLFAIL) { | ||||
// Invalid signature causes checkdatasig to fail. | // Invalid signature causes checkdatasig to fail. | ||||
CheckError(flags, {minimalsig, message, pubkeyC}, script, | CheckError(flags, {minimalsig, message, pubkeyC}, script, | ||||
ScriptError::SIG_NULLFAIL); | ScriptError::SIG_NULLFAIL); | ||||
CheckError(flags, {minimalsig, message, pubkeyC}, scriptverify, | CheckError(flags, {minimalsig, message, pubkeyC}, scriptverify, | ||||
ScriptError::SIG_NULLFAIL); | ScriptError::SIG_NULLFAIL); | ||||
▲ Show 20 Lines • Show All 65 Lines • Show Last 20 Lines |