0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-03-09 15:37:00 -04:00
bitcoin-core/src
Wladimir J. van der Laan 5667b0d758
Merge #16792: Assert that the HRP is lowercase in Bech32::Encode
2457aea83c Assert that the HRP is lowercase in Bech32::Encode (Samuel Dobson)

Pull request description:

  From BIP-173:
  > The lowercase form is used when determining a character's value for checksum purposes.
  > Encoders MUST always output an all lowercase Bech32 string. If an uppercase version of the encoding result is desired, (e.g.- for presentation purposes, or QR code use), then an uppercasing procedure can be performed external to the encoding process.

  Currently if HRP contains uppercase characters, the checksum will be generated over these uppercase characters resulting in mixed-case output that will always be invalid even if the case is changed manually after encoding. This shouldn't happen because both prefix's `bc` and `tb` are lowercase currently, but we assert this condition anyway.

  This is consistent also with the [C reference implementation](2b0aac650c/ref/c/segwit_addr.c (L59))

ACKs for top commit:
  laanwj:
    ACK 2457aea83c

Tree-SHA512: 24fcbbc2f315c72c550cc3d82b4332443eea6378fc73d571f98b87492604d023378dd102377c9e05467192cae6049606dee98e4c5688c8d5e4caac50c970284b
2019-09-05 13:31:14 +02:00
..
bench scripted-diff: Use ArgsManager::DEBUG_ONLY flag 2019-07-27 15:05:14 +03:00
compat Document assumptions about C++ compiler 2019-03-05 11:19:32 +01:00
config
consensus [Consensus] Bury segwit deployment 2019-08-14 15:52:52 -04:00
crypto Add ChaCha20Poly1305@Bitcoin AEAD implementation 2019-06-25 15:13:02 +02:00
index scripted-diff: Make translation bilingual 2019-07-24 16:33:20 +03:00
interfaces Merge #16443: refactor: have CCoins* data managed under CChainState 2019-08-15 12:47:15 -04:00
leveldb Pull leveldb subtree 2019-01-26 12:45:48 -05:00
node move-only: move coins statistics utils out of RPC 2019-08-27 11:51:56 -04:00
policy [wallet] abort when attempting to fund a transaction above maxtxfee 2019-06-28 22:44:38 -04:00
primitives Make reasoning about dependencies easier by not including unused dependencies 2019-06-02 17:15:23 +02:00
qt gui: Update English source translation 2019-09-02 13:42:01 +02:00
rpc gettransaction: add an argument to decode the transaction 2019-08-30 11:38:49 +02:00
script Give more errors for specific failure conditions 2019-08-16 19:34:01 -04:00
secp256k1 Update the secp256k1 subtree to the latest upstream version 2019-03-31 11:41:05 -07:00
support Improve documentation of memory_cleanse() 2019-07-01 12:59:44 +02:00
test Merge #13868: Remove unused fScriptChecks parameter from CheckInputs 2019-09-02 16:17:11 +08:00
univalue
util util: Make util/error bilingual_str (refactor) 2019-08-28 15:52:26 -04:00
wallet Merge #16745: wallet: Translate all initErrors in CreateWalletFromFile 2019-09-03 16:24:15 +02:00
zmq rpc: switch to using RPCHelpMan.Check() 2019-07-08 09:53:52 +09:00
.clang-format
addrdb.cpp addrdb: Remove temporary files created in SerializeFileDB. Fixes non-determinism in unit tests. 2019-06-14 08:30:43 +02:00
addrdb.h banman: Add, use CBanEntry ctor that takes ban reason 2019-01-16 13:54:18 -05:00
addrman.cpp Make reasoning about dependencies easier by not including unused dependencies 2019-06-02 17:15:23 +02:00
addrman.h [addrman] Ensure collisions eventually get resolved 2019-02-27 16:53:44 -05:00
amount.h Update copyright headers to 2018 2018-12-29 10:15:01 +01:00
arith_uint256.cpp Make reasoning about dependencies easier by not including unused dependencies 2019-06-02 17:15:23 +02:00
arith_uint256.h Use std::numeric_limits<UNSIGNED>::max()) instead of (UNSIGNED)-1 2018-12-04 19:55:04 +02:00
attributes.h Add NODISCARD to all {Decode,Parse}[...](...) functions returning bool. Sort includes. 2018-11-05 17:03:11 +01:00
banman.cpp scripted-diff: Make translation bilingual 2019-07-24 16:33:20 +03:00
banman.h Allow connections from misbehavior banned peers. 2019-01-22 21:10:48 +00:00
base58.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
base58.h Add NODISCARD to all {Decode,Parse}[...](...) functions returning bool. Sort includes. 2018-11-05 17:03:11 +01:00
bech32.cpp Assert that the HRP is lowercase in Bech32::Encode 2019-09-05 13:25:11 +12:00
bech32.h Assert that the HRP is lowercase in Bech32::Encode 2019-09-05 13:25:11 +12:00
bitcoin-cli-res.rc
bitcoin-cli.cpp Merge #15864: Fix datadir handling 2019-08-19 10:01:30 -04:00
bitcoin-tx-res.rc
bitcoin-tx.cpp scripted-diff: Use ArgsManager::DEBUG_ONLY flag 2019-07-27 15:05:14 +03:00
bitcoin-wallet-res.rc [tools] Add wallet inspection and modification tool 2019-01-30 16:26:52 -05:00
bitcoin-wallet.cpp Merge #15864: Fix datadir handling 2019-08-19 10:01:30 -04:00
bitcoind-res.rc
bitcoind.cpp Merge #15864: Fix datadir handling 2019-08-19 10:01:30 -04:00
blockencodings.cpp CorruptionPossible -> BLOCK_MUTATED 2019-05-02 15:14:12 -04:00
blockencodings.h disallow oversized CBlockHeaderAndShortTxIDs 2018-11-13 12:41:41 -08:00
blockfilter.cpp init: Add CLI option to enable block filter index. 2019-04-06 12:10:55 -07:00
blockfilter.h init: Add CLI option to enable block filter index. 2019-04-06 12:10:55 -07:00
bloom.cpp refactor: Improve CRollingBloomFilter::reset by using std::fill 2019-05-22 15:55:50 +01:00
bloom.h
chain.cpp refactor: combine Chain::findFirstBlockWithTime/findFirstBlockWithTimeAndHeight 2019-03-27 18:29:48 -04:00
chain.h [doc] chain: Declare BLOCK_VALID_HEADER reserved 2019-08-05 07:58:58 -04:00
chainparams.cpp [Consensus] Bury segwit deployment 2019-08-14 15:52:52 -04:00
chainparams.h Remove wallet settings from chainparams 2019-07-16 16:22:14 -04:00
chainparamsbase.cpp [Consensus] Bury segwit deployment 2019-08-14 15:52:52 -04:00
chainparamsbase.h Remove wallet settings from chainparams 2019-07-16 16:22:14 -04:00
chainparamsseeds.h
checkqueue.h
clientversion.cpp
clientversion.h
coins.cpp move-onlyish: move CCoinsViewErrorCatcher out of init.cpp 2019-07-21 21:00:31 -04:00
coins.h move-onlyish: move CCoinsViewErrorCatcher out of init.cpp 2019-07-21 21:00:31 -04:00
compat.h windows: Set _WIN32_WINNT to 0x0601 (Windows 7) 2019-01-23 16:28:27 +08:00
compressor.cpp
compressor.h
core_io.h Move PSBT decoding functions from core_io to psbt.cpp 2019-03-26 17:38:00 -07:00
core_memusage.h
core_read.cpp Include core_io.h from core_read.cpp 2019-06-06 08:00:33 +02:00
core_write.cpp Make reasoning about dependencies easier by not including unused dependencies 2019-06-02 17:15:23 +02:00
cuckoocache.h
dbwrapper.cpp Replace deprecated Boost Filesystem function 2019-04-30 10:05:54 +03:00
dbwrapper.h scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
dummywallet.cpp Bugfix: dummywallet: Add -ignorepartialspends to list of ignored wallet options 2019-04-28 04:42:38 +00:00
flatfile.cpp Style cleanup. 2019-02-22 17:38:45 -08:00
flatfile.h Style cleanup. 2019-02-22 17:38:45 -08:00
fs.cpp Avoid redefine warning 2019-04-10 12:16:52 +01:00
fs.h Replace deprecated Boost Filesystem function 2019-04-30 10:05:54 +03:00
hash.cpp Extract CSipHasher to it's own file in crypto/ directory. 2018-11-05 09:25:15 -08:00
hash.h Squashed 'src/secp256k1/' changes from 0b70241850..b19c000063 2019-03-31 11:41:05 -07:00
httprpc.cpp scripted-diff: Make translation bilingual 2019-07-24 16:33:20 +03:00
httprpc.h
httpserver.cpp Remove global symbols: Avoid using the global namespace if possible 2019-05-25 23:23:11 +02:00
httpserver.h [build] Add several util units 2019-04-09 17:53:08 -04:00
indirectmap.h
init.cpp util: Make util/error bilingual_str (refactor) 2019-08-28 15:52:26 -04:00
init.h Pass chain and client variables where needed 2018-11-06 11:44:40 -04:00
key.cpp Make reasoning about dependencies easier by not including unused dependencies 2019-06-02 17:15:23 +02:00
key.h CKey: add method to negate the key 2019-03-27 13:59:50 +01:00
key_io.cpp Replace CScriptID and CKeyID in CTxDestination with dedicated types 2019-04-29 10:15:23 -04:00
key_io.h
limitedmap.h
logging.cpp test: Log to debug.log in all tests 2019-06-20 12:12:24 -04:00
logging.h test: Log to debug.log in all tests 2019-06-20 12:12:24 -04:00
Makefile.am move-only: move coins statistics utils out of RPC 2019-08-27 11:51:56 -04:00
Makefile.bench.include Merge #15649: Add ChaCha20Poly1305@Bitcoin AEAD 2019-07-11 22:00:16 +02:00
Makefile.leveldb.include build: Remove WINVER pre define in Makefile.leveldb.inlcude 2019-01-26 09:28:48 +08:00
Makefile.qt.include qt: Remove menu icons 2019-08-15 13:05:10 +02:00
Makefile.qttest.include scripted-diff: Rename test_bitcoin to test/setup_common 2019-04-11 10:12:36 -04:00
Makefile.test.include Move ismine to wallet module 2019-06-19 18:06:30 -04:00
memusage.h
merkleblock.cpp Make reasoning about dependencies easier by not including unused dependencies 2019-06-02 17:15:23 +02:00
merkleblock.h
miner.cpp Make reasoning about dependencies easier by not including unused dependencies 2019-06-02 17:15:23 +02:00
miner.h [rpc] mining: Omit uninitialized currentblockweight, currentblocktx 2019-02-12 11:34:57 -05:00
net.cpp [Fix] The default whitelistrelay should be true 2019-08-17 00:43:22 +09:00
net.h [Fix] The default whitelistrelay should be true 2019-08-17 00:43:22 +09:00
net_permissions.cpp util: Move ResolveErrMsg to util/error 2019-08-15 10:05:32 -04:00
net_permissions.h Make whitebind/whitelist permissions more flexible 2019-08-11 11:33:27 +09:00
net_processing.cpp Merge #16443: refactor: have CCoins* data managed under CChainState 2019-08-15 12:47:15 -04:00
net_processing.h refactor : use RelayTransaction in BroadcastTransaction utility 2019-07-24 19:47:56 -04:00
netaddress.cpp Fix spelling errors identified by codespell 1.15.0 2019-06-11 17:18:16 +02:00
netaddress.h netaddress: Update CNetAddr for ORCHIDv2 2019-05-15 14:21:48 -04:00
netbase.cpp util: refactor upper/lowercase functions 2019-08-08 11:35:14 +09:00
netbase.h util: refactor upper/lowercase functions 2019-08-08 11:35:14 +09:00
netmessagemaker.h
noui.cpp Merge #16277: [Tests] Suppress output in test_bitcoin for expected errors 2019-08-01 15:17:10 +02:00
noui.h Suppress output in test_bitcoin for expected errors 2019-07-03 14:03:21 +02:00
optional.h Remove 'boost::optional'-related gcc warnings 2019-01-30 22:44:28 +02:00
outputtype.cpp Move various SigningProviders to signingprovider.{cpp,h} 2019-07-09 16:20:18 -04:00
outputtype.h Move various SigningProviders to signingprovider.{cpp,h} 2019-07-09 16:20:18 -04:00
pow.cpp
pow.h
prevector.h Merge #12324: speed up Unserialize_impl for prevector 2019-06-18 17:12:02 +02:00
protocol.cpp scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
protocol.h Remove unused bits from the service flags enum 2019-07-12 14:14:54 -04:00
psbt.cpp Merge #15427: Add support for descriptors to utxoupdatepsbt 2019-07-02 16:53:22 +02:00
psbt.h Move various SigningProviders to signingprovider.{cpp,h} 2019-07-09 16:20:18 -04:00
pubkey.cpp
pubkey.h
random.cpp net: Use mockable time for tx download 2019-06-17 14:12:32 -04:00
random.h net: Use mockable time for tx download 2019-06-17 14:12:32 -04:00
rest.cpp refactor: pcoinsTip -> CChainState::CoinsTip() 2019-08-06 13:13:06 -04:00
reverse_iterator.h
reverselock.h
scheduler.cpp Switch all RNG code to the built-in PRNG. 2019-01-16 16:34:56 -08:00
scheduler.h trivial: correct parameter name in comments 2019-02-10 17:17:32 -05:00
serialize.h Support serialization of std::vector<bool> 2019-08-26 11:36:33 -07:00
shutdown.cpp
shutdown.h
span.h
streams.h Trivial: Doxygenize existing CBufferedFile and VectorReader comments 2019-01-25 12:32:37 -08:00
sync.cpp Replace remaining fprintf with tfm::format manually 2019-06-13 11:46:38 -04:00
sync.h scripted-diff: Rename LockAnnotation to LockAssertion 2019-05-17 13:29:04 +02:00
threadinterrupt.cpp
threadinterrupt.h Update copyright headers to 2018 2018-12-29 10:15:01 +01:00
threadsafety.h Move LockAnnotation from threadsafety.h (imported code) to sync.h (our code) 2019-05-17 13:29:04 +02:00
timedata.cpp scripted-diff: Make translation bilingual 2019-07-24 16:33:20 +03:00
timedata.h
tinyformat.h tinyformat: Add doc to Bitcoin Core specific strprintf 2019-06-13 09:30:40 -04:00
torcontrol.cpp fix: tor: Call event_base_loopbreak from the event's callback 2019-07-17 15:32:38 +01:00
torcontrol.h
txdb.cpp refactor: have CCoins* data managed under CChainState 2019-08-15 11:04:10 -04:00
txdb.h refactor: have CCoins* data managed under CChainState 2019-08-15 11:04:10 -04:00
txmempool.cpp validation: Add missing mempool locks 2019-06-07 11:07:09 +02:00
txmempool.h refactor: pcoinsTip -> CChainState::CoinsTip() 2019-08-06 13:13:06 -04:00
ui_interface.cpp Merge #16092: Don't use global (external) symbols for symbols that are used in only one translation unit 2019-06-18 15:59:53 -04:00
ui_interface.h Add MSG_NOPREFIX flag for user messages 2019-06-19 19:22:34 +03:00
uint256.cpp Merge #14734: fix an undefined behavior in uint::SetHex 2019-07-03 14:18:29 +02:00
uint256.h uint256: Remove unnecessary crypto/common.h use 2018-09-18 14:27:05 +09:00
undo.h Extract CSipHasher to it's own file in crypto/ directory. 2018-11-05 09:25:15 -08:00
validation.cpp Merge #16774: Avoid unnecessary "Synchronizing blockheaders" log messages 2019-09-03 16:39:11 -04:00
validation.h [Fix] The default whitelistrelay should be true 2019-08-17 00:43:22 +09:00
validationinterface.cpp Make reasoning about dependencies easier by not including unused dependencies 2019-06-02 17:15:23 +02:00
validationinterface.h Remove extra CBlockIndex declaration 2019-06-25 15:02:34 -04:00
version.h
versionbits.cpp doc: Improve versionbits.h documentation 2019-08-15 11:02:55 -04:00
versionbits.h doc: Improve versionbits.h documentation 2019-08-15 11:02:55 -04:00
versionbitsinfo.cpp [Consensus] Bury segwit deployment 2019-08-14 15:52:52 -04:00
versionbitsinfo.h MOVEONLY: Move versionbits info out of versionbits.o 2018-09-23 22:55:11 +02:00
walletinitinterface.h Remove direct node->wallet calls in init.cpp 2018-11-06 11:44:40 -04:00
warnings.cpp scripted-diff: Make translation bilingual 2019-07-24 16:33:20 +03:00
warnings.h