tree checksum vpatch file split hunks

all signers: mod6

antecedents: genesis programmable-versionstring

press order:

genesismod6
bitcoin-asciilifeform.1mod6
rm_rf_upnpmod6
bitcoin-asciilifeform.3-turdmeister-alert-snipmod6
asciilifeform_orphanage_thermonukemod6
bitcoin-asciilifeform.2-https_snipsnipmod6
bitcoin-v0_5_3_1-static_makefile_v002.8mod6
bitcoin-asciilifeform.4-goodbye-win32mod6
bitcoin-v0_5_3_1-rev_bump.7mod6
asciilifeform_tx-orphanage_amputationmod6
asciilifeform_dnsseed_snipsnipmod6
asciilifeform_zap_hardcoded_seedsmod6
asciilifeform_zap_showmyip_crudmod6
asciilifeform_dns_thermonyukyoolar_kleansingmod6
asciilifeform_ver_now_5_4_and_irc_is_gone_and_now_must_give_ipmod6
asciilifeform-kills-integer-retardationmod6
asciilifeform_and_now_we_have_block_dumper_correctedmod6
mod6_fix_dumpblock_paramsmod6
asciilifeform_and_now_we_have_eatblockmod6
asciilifeform_lets_lose_testnetmod6
asciilifeform_add_verifyall_optionmod6
programmable-versionstringmod6
mod6_der_high_low_smod6

patch:

- 904AD14979BE418243C4AE79867FE1068A05ED2AD5E237A14ED457408ABF756D0B6F7AC73F63C4A31A815A717BC2CDE3B614B4A716603F85B50C8D98EA43D500
+ 7804879949F916B7E9BB1E1A3FE4E2454EDF7B4C91A0F188624474EA0F3F83A8BE7DA8C23BF5D2C32CCB35BB359193D34D42338DA5317DB128D7AA98AD675F1D
bitcoin/src/init.cpp
(177 . 6)(177 . 8)
5 " -verifyall \t\t " + _("Forbid the skipping of ECDSA signature verification between checkpoints.\n") +
6 " -setverstring \t\t " + _("Set a custom version string.\n") +
7 " -setvernum \t\t " + _("Set a custom version number.\n") +
8 " -highs \t\t " + _("Set all transactions to have DER 'S' Value set to 'high'.\n") +
9 " -lows \t\t " + _("Set all transactions to have DER 'S' Value set to 'low'.\n") +
10 " -logtimestamps \t " + _("Prepend debug output with timestamp\n") +
11 " -printtoconsole \t " + _("Send trace/debug info to console instead of debug.log file\n") +
12 " -rpcuser=<user> \t " + _("Username for JSON-RPC connections\n") +
(200 . 6)(202 . 14)
14 fDaemon = GetBoolArg("-daemon");
15 fCanEat = GetBoolArg("-caneat");
16 fVerifyAll = GetBoolArg("-verifyall");
17 fHighS = GetBoolArg("-highs");
18 fLowS = GetBoolArg("-lows");
19
20 if (fHighS && fLowS)
21 {
22 printf("Error: '-highs' and '-lows' can not be set at the same time.\n");
23 return false;
24 }
25
26 if (mapArgs.count("-setverstring"))
27 {
- 07093A81B0656609E0FA8066A5743D874C5DBDF148309DD6E9ED2050AC0CAC2B07D5AA64983E6BC71BD2BE2FD1D93DD581E66C32A0DA81904AA730E32D43CDD1
+ 36DDD67BA47C3860BA5747A2388B11E4CB3ED91AE1BC54A051F773E7958D3EC08CBD029607D1878661D644D34910098027600CD7E1BD08ACA059452CF03FD0E8
bitcoin/src/key.h
(291 . 12)(291 . 46)
32 bool Sign(uint256 hash, std::vector<unsigned char>& vchSig)
33 {
34 vchSig.clear();
35 unsigned char pchSig[10000];
36 unsigned int nSize = 0;
37 if (!ECDSA_sign(0, (unsigned char*)&hash, sizeof(hash), pchSig, &nSize, pkey))
38 ECDSA_SIG *sig = ECDSA_do_sign((unsigned char *) &hash, sizeof(hash), pkey);
39
40 if (sig == NULL)
41 {
42 printf("ERROR, ECDSA_sign failed in key.h:Sign()\n");
43 return false;
44 vchSig.resize(nSize);
45 memcpy(&vchSig[0], pchSig, nSize);
46 }
47
48 BN_CTX *ctx = BN_CTX_new();
49 BN_CTX_start(ctx);
50 const EC_GROUP *group = EC_KEY_get0_group(pkey);
51 BIGNUM *order = BN_CTX_get(ctx);
52 BIGNUM *halforder = BN_CTX_get(ctx);
53 EC_GROUP_get_order(group, order, ctx);
54 BN_rshift1(halforder, order);
55
56 if (fHighS && (BN_cmp(sig->s, halforder) < 0))
57 {
58 // enforce high S values
59 BN_sub(sig->s, order, sig->s);
60 }
61
62 if (fLowS && (BN_cmp(sig->s, halforder) > 0))
63 {
64 // enforce low S values
65 BN_sub(sig->s, order, sig->s);
66 }
67
68 BN_CTX_end(ctx);
69 BN_CTX_free(ctx);
70 unsigned int nSize = ECDSA_size(pkey);
71 vchSig.resize(nSize); // Make sure it is big enough
72 unsigned char *pos = &vchSig[0];
73 nSize = i2d_ECDSA_SIG(sig, &pos);
74 //printf("DEBUG DER R: 0x%s\n", BN_bn2hex(sig->r));
75 //printf("DEBUG DER R: %s\n", BN_bn2dec(sig->r));
76 //printf("DEBUG DER S: 0x%s\n", BN_bn2hex(sig->s));
77 //printf("DEBUG DER S: %s\n", BN_bn2dec(sig->s));
78 ECDSA_SIG_free(sig);
79 vchSig.resize(nSize); // Shrink to fit actual size
80 return true;
81 }
82
- E74ABD10E4E001CA9C202672E2D2678C131F0AD06200E0D8C477728F92B1710644CC15ABB7E5773B277F38A00E004A4EC4C7CEE799A7E9C82C39297B94D540DA
+ A7A5D3D37B0C59B10BB5D2F6A1E32FCFC3D6C7DC40A819C4DFAC72E5B03D345509BEA696EC0099CB927B10253A678C3D650635B8116ED8A0F0432832B13EAF5E
bitcoin/src/util.cpp
(32 . 6)(32 . 8)
87 string strMiscWarning;
88 bool fNoListen = false;
89 bool fLogTimestamps = false;
90 bool fLowS = false;
91 bool fHighS = false;
92
93 std::string CLIENT_NAME(DEFAULT_CLIENT_NAME);
94
- 99AA3DF7DC2E63380BA9916DAE9DFE69D6DE7BCBF2BD39809CC528DEA2699E3B664294175697D4B6ADE7FE39DC42420573F59503653D3C22352270C27CD3C1CC
+ BB0BD8F585BF9D34EDD89EA93710120105213EB931A48DFB0452055978B31444D988A14C6A9F82A4F9192C230579EE4BA607B867CF2A1A41D57FCAD1B3A286AC
bitcoin/src/util.h
(122 . 6)(122 . 8)
99 extern bool fNoListen;
100 extern bool fLogTimestamps;
101 extern std::string CLIENT_NAME;
102 extern bool fLowS;
103 extern bool fHighS;
104
105 void RandAddSeed();
106 void RandAddSeedPerfmon();