Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Catch up with Core 0.18 #626

Merged
merged 984 commits into from May 31, 2019
Merged

Conversation

stevenroose
Copy link
Member

Catching up with upstream commit 519b0bc.

MarcoFalke and others added 30 commits February 2, 2019 17:45
fac3a05 test: Fix race in p2p_invalid_messages (MarcoFalke)

Pull request description:

  After we change our magic bytes, the node may or may not send us messages such as feefilter or sendheaders, which would be rejected by `_on_data`.

  Solve that by replacing `_on_data` with a noop.

Tree-SHA512: bd25a81f0c6e31f09155e00abab8062777d827b9210d6a9b85ef35cfe5069338f100fecf058842f41a1f134fdb3cf7ac1fe80db493e4dab7988acdacb33149df
The wallet controller instanced must be deleted after the window instance
since it is used there.
Move only change that makes unsubscribeFromCoreSignals public. It must be
called if the event loop is not running otherwise core signals handlers
can deadlock.
This change forwards the shutdown request on the GUI (close the
application for instace) to the node as soon as possible. This way the
GUI doesn't have to wait for long operations to complete (rescan the
wallet for instance), instead those operations detect the shutdown
request and abort/interrupt.
When a wallet is created it is registered in the validation interface (in
CWallet::CreateWalletFromFile) but it is not immediately added to the
wallets list. If a shutdown is requested before AddWallet (case more
evident when -rescan is set) then m_internals can be released (in
Shutdown -> UnregisterBackgroundSignalScheduler) before the wallet and
then ReleaseWallet would call UnregisterValidationInterface with
m_internals already released.
This introduces support for autodetecting and using the RdSeed instruction.

In addition:
* In SeedFast, only 64 bits of entropy are generated through RdRand (256 was relatively slow).
* In SeedStartup, 256 bits of entropy are generated, using RdSeed (preferably) or RdRand (otherwise).
0dd6a8c Check m_internals in UnregisterValidationInterface (João Barbosa)
fd6d499 gui: Fix m_node.startShutdown() order (João Barbosa)
07b9aad gui: Expose BitcoinGUI::unsubscribeFromCoreSignals (João Barbosa)
60e190c gui: Fix WalletController deletion (João Barbosa)

Pull request description:

  This PR consists in small fixes in order to have a clean shutdown from the GUI.

Tree-SHA512: a9c641f202bc810698c4a39d5c5a1f54e54bdab098c412d65418879e00764a9db9f38383813914d591e24e097e49f177942b2ae6c57bba05dcc095e8a1d0b8f4
fae169c test: Make bloom tests deterministic (MarcoFalke)

Pull request description:

  non-deterministic tests are useless, since a failing test could not be reproduced unless the seed is known.

Tree-SHA512: 4f634ff0c6adf663444f1ac504f6dbceaa46b78d697b840531977ba30006453ac559d5c21cc3eaef6d92b87d46008a34b0db6331ea3318001987fcfaec634acf
712d35b wallet: Add missing cs_db lock (João Barbosa)

Pull request description:

  Without this lock `BerkeleyEnvironment::~BerkeleyEnvironment` and `GetWalletEnv` would race for `g_dbenvs`. This wasn't detected before because thread safety analysis does not check constructors
  and destructors.

  Reference: http://releases.llvm.org/5.0.2/tools/clang/docs/ThreadSafetyAnalysis.html#no-checking-inside-constructors-and-destructors

Tree-SHA512: 350cb2b991ca699a6bca85f87c82c38f0814484c8ccb0d7d83cb3bff9afcf60dd32b2a9554a9e72eb5803bfad8b6970fe7da618b39be5889178b86faa1b74124
The error file db.log is opened by BerkeleyEnvironment instance and
should be closed after dbenv is closed.
Close .walletlock file when a BerkeleyEnvironment is deleted.
- Update transifex slug
- Mention update of MSVC build in `doc/translation_process.md`
- Do a `make translate` to update English translations
- Pull current translations from transifex
bef8fdd msvc: Fix silent merge conflict between #13926 and #14372 (ken2812221)

Pull request description:

  The bitcoin-wallet.exe would have to link with libsecp256k1 after we build libsecp256k1 in project.

Tree-SHA512: cb3fafa301f39121f5d26ac8ac6009c9665fcad1061dbf14ba013104870abe5413ac57c97c97df12b6ba2ad709b776c51aeec20d41f3ae01d3460a5e18f40eec
fa6b7b9 travis: Revert "Run extended tests once daily" (MarcoFalke)

Pull request description:

  Now that the extended tests are only pruning and dbcrash, both which are too long [1] to run on travis, we can revert this commit. All tests other than those two are still run for every travis pull request or cron run.

  [1] https://travis-ci.org/bitcoin/bitcoin/jobs/487615211#L2930

Tree-SHA512: dff293823336677380f6e804379125687869a4b547c968f0b6aae80daee1cbca2cfb845b63de7135f31fbe2383d8d7654694b6dc8a6a6b7d02d57ee8ff107527
df8a7d3 qt: Pre-0.18 split-off translations update (Wladimir J. van der Laan)

Pull request description:

  - Update transifex slug
  - Mention update of MSVC build in `doc/translation_process.md`
  - Do a `make translate` to update English translations
  - Pull current translations from transifex

Tree-SHA512: 2f3102ff64167d5feaf484b2c45cd6aa1d06ac4f370107f0db5575fde023b3dfaea07e7178978bfff111fa80dbe4e56bd05b5774fc7c111b5273d33b3dcd44ad
LOCAL_NONE is supposed to be an enum indicating the score of a
LocalServiceInfo rather than the count of an addr in mapLocalHost.
I should have split this into one commit copying the entire folder and
one where I fix the ELEMENTS-based things. However, grepping the diff
for "elements" case-insensitive makes you catch all differences.
The next commit will contain the more subtle differences.
@stevenroose stevenroose force-pushed the catchup branch 2 times, most recently from 125048f to 7b00e2f Compare May 25, 2019 00:54
@stevenroose stevenroose changed the title WIP: Catch up with Core 0.18 Catch up with Core 0.18 May 27, 2019
@stevenroose stevenroose force-pushed the catchup branch 3 times, most recently from 486d1f3 to de81c0d Compare May 27, 2019 16:35
I also moved some RPC methods that were not at the end of the file with
the other ELEMENTS RPC methods. This makes the diff on my machine look
crazy. Let's hope GitHub has more intelligent diffs..
@stevenroose stevenroose force-pushed the catchup branch 3 times, most recently from 739e0ed to 45c06d2 Compare May 28, 2019 15:55
@stevenroose stevenroose merged commit 770d0f6 into ElementsProject:master May 31, 2019
stevenroose added a commit that referenced this pull request May 31, 2019
770d0f6 travis: Properly cache and error on timeout (MarcoFalke)
1630bac travis: Switch to ubuntu keyserver to avoid timeouts (MarcoFalke)
3c0f3d7 Disable feature_notifications functional test (Steven Roose)
20f3b1d Fix more Travis builds (Steven Roose)
ee90019 Fixup after merge with master (Steven Roose)
45c06d2 Fix Travis builds (Steven Roose)
738a3c9 MERGE-FIX: Fix bitcoin-tx duplicate -h argument (Steven Roose)
de81c0d MERGE-FIX: Fix linter (mostly RPC help) (Steven Roose)
efe4e8f MERGE-FIX: Fix functional tests (Steven Roose)
473e1e9 MERGE-FIX: Fix compatibility functional tests (Steven Roose)
420e38a MERGE-FIX: Update compatibility functional tests (Steven Roose)
3a01200 MERGE-FIX: Fix unit tests (Steven Roose)
a39bad4 MERGE-FIX: manpage fixes (Steven Roose)
52f6f69 WIP: Fix compilation after merge (Steven Roose)
de5dc03 MERGE-FIX: Rebrand bitcoin-wallet to elements-wallet (Steven Roose)
39c2906 MERGE-FIX: Update src/primitives/bitcoin/ (Steven Roose)
519b0bc Make last disconnected block BLOCK_FAILED_VALID, even when aborted (Pieter Wuille)
8d22041 Optimization: don't add txn back to mempool after 10 invalidates (Pieter Wuille)
9ce9c37 Prevent callback overruns in InvalidateBlock and RewindBlockIndex (Pieter Wuille)
9bb32eb Release cs_main during InvalidateBlock iterations (Pieter Wuille)
9b1ff5c Call InvalidateBlock without cs_main held (Pieter Wuille)
241b2c7 Make RewindBlockIndex interruptible (Pieter Wuille)
880ce7d Call RewindBlockIndex without cs_main held (Pieter Wuille)
436f7d7 Release cs_main during RewindBlockIndex operation (Pieter Wuille)
1d34287 Merge the disconnection and erasing loops in RewindBlockIndex (Pieter Wuille)
32b2696 Move erasure of non-active blocks to a separate loop in RewindBlockIndex (Pieter Wuille)
9d6dcc5 Abstract EraseBlockData out of RewindBlockIndex (Pieter Wuille)
39e20fc Add missing #include. (Daniel Kraft)
fa9b60c Remove unused TransactionError constants (MarcoFalke)
53b3103 refactor: Drop redundant wallet reference (João Barbosa)
a786c3b Slight tweak to the verify-commits script directions (Douglas Roark)
7cb1a14 Explain that unused mempool memory is added to -dbcache (Sjors Provoost)
55e05a8 Added some factors that affect the dependency list (Martin Erlandsson)
901baf2 doc: update FreeBSD build guide for 12.0 (fanquake)
3782075 Move all PID file stuff to init.cpp (Hennadii Stepanov)
561e375 Make PID file creating errors fatal (Hennadii Stepanov)
745a2ac Improve PID file removing errors logging (Hennadii Stepanov)
1a062b8 tests: remove byte.hex() to keep compatibility (Akio Nakamura)
8e4b4f6 Address test todos by removing -txindex to nodes. Originally added when updating getrawtransaction to stop searching unspent utxos. (Amiti Uttarwar)
e3e1a56 [test] functional: set cwd of nodes to tmpdir (Sjors Provoost)
0bedcba Use a single wallet batch for UpgradeKeyMetadata (Jonas Schnelli)
5b76c31 doc: Add separate productivity notes document (Carl Dong)
6aaa0ab Remove manual byte editing in wallet_tx_clone func test (Gregory Sanders)
1435fab Use RdSeed when available, and reduce RdRand load (Pieter Wuille)
a083f75 Update assumevalid, minimumchainwork, and getchaintxstats to height 563378. (Gregory Maxwell)
3ec56be appveyor: Remove unused NDEBUG removal (Chun Kuan Lee)
8a1f0a3 scripted-diff: Remove NDEBUG pre-define (Chun Kuan Lee)
d3661a3 [Doc] add missing newline to witnessScript in listunspent help (David A. Harding)
a607c9a [Doc] importmulti: add missing description of keypool option (David A. Harding)
d067e81 msvc: add rapid check property tests (Chun Kuan Lee)
fd637be Add checksums to descriptors.md (Pieter Wuille)
be62903 Make descriptor checksums mandatory in deriveaddresses and importmulti (Pieter Wuille)
b52cb63 Add getdescriptorinfo to compute checksum (Pieter Wuille)
3b40bff Descriptor checksum (Pieter Wuille)
540729e Implement analyzepsbt RPC and tests (Andrew Chow)
77542cf Move PSBT UTXO fetching to a separate method (Andrew Chow)
cb40b3a Figure out what is missing during signing (Andrew Chow)
08f749c Implement joinpsbts RPC and tests (Andrew Chow)
7344a7b Implement utxoupdatepsbt RPC and tests (Andrew Chow)
fab6b07 test: txindex: interrupt threadGroup before calling destructor (MarcoFalke)
fab15ff fuzz: Script validation flags (MarcoFalke)
fabcfa5 fuzz: Move deserialize tests to test/fuzz/deserialize.cpp (MarcoFalke)
7cee858 Add compile time verification of assumptions we're currently making implicitly/tacitly (practicalswift)
fa178a6 [rpc] mining: Omit uninitialized currentblockweight, currentblocktx (MarcoFalke)
88a91e2 [build] AppVeyor: clean cache when build configuration changes (Sjors Provoost)
543ef7d tests: Add missing cs_main locks required when accessing pcoinsdbview, pcoinsTip or pblocktree (practicalswift)
f4b00b7 Import public keys in order (Andrew Chow)
9e1551b Test pubkey import to keypool (Andrew Chow)
513719c Add option to importmulti add an imported pubkey to the keypool (Andrew Chow)
9b81fd1 Fetch keys from keypool when private keys are disabled (Andrew Chow)
99cccb9 Add a method to add a pubkey to the keypool (Andrew Chow)
cb3511b Add release notes for importing key origin info change (Andrew Chow)
4c75a69 Test importing descriptors with key origin information (Andrew Chow)
02d6586 Import KeyOriginData when importing descriptors (Andrew Chow)
3d235df Implement a function to add KeyOriginInfo to a wallet (Andrew Chow)
eab63bc Store key origin info in key metadata (Andrew Chow)
345bff6 Remove hdmasterkeyid (Andrew Chow)
bac8c67 Add a method to CWallet to write just CKeyMetadata (Andrew Chow)
e7652d3 Add WriteHDKeypath function and move *HDKeypath to util/bip32.{h,cpp} (Andrew Chow)
c45415f Refactor keymetadata writing to a separate method (Andrew Chow)
0890339 build: prefer python3.4 even if newer versions are present on the system (Sjors Provoost)
fa535af fuzz: test_runner: Better error message when built with afl (MarcoFalke)
fa7ca8e qa: Add test/fuzz/test_runner.py (MarcoFalke)
eeeee58 travis: Combine --disable-bip70 into existing job (MarcoFalke)
6ca836a Add release note for listunspent P2WSH change (MeshCollider)
928beae Add test for P2SH-P2WSH in signrawtransactionwithkey and listunspent (MeshCollider)
314784a Make listunspent and signrawtransaction RPCs support witnessScript (MeshCollider)
7257353 Select orphan transaction uniformly for eviction (Pieter Wuille)
94086fb gui: Add close wallet action (João Barbosa)
f77ba34 gui: Add closeWallet to WalletController (João Barbosa)
f6122ab interfaces: Add remove to Wallet (João Barbosa)
fd46c4c Bump minimum Qt version to 5.5.1 (Sjors Provoost)
84f5315 Travis: Add test without BIP70 (but still full wallet + tests) (Luke Dashjr)
113f000 GUI: If BIP70 is disabled, give a proper error when trying to open a payment request file (Luke Dashjr)
9975282 GUI: If BIP70 is disabled, attempt to fall back to BIP21 parsing (Luke Dashjr)
4a43eb8 [build] Makefile.am: add rule for src/bitcoin-wallet (Sjors Provoost)
3c6ef03 msvc: Fix silent merge conflict between #13926 and #14372 part II (Chun Kuan Lee)
8c3fdd3 fixes m_assumed_blockchain_size variables values: (marcoagner)
102faad Factor out combine / finalize / extract PSBT helpers (Glenn Willen)
78b9893 Remove op== on PSBTs; check compatibility in Merge (Glenn Willen)
bd0dbe8 Switch away from exceptions in refactored tx code (Glenn Willen)
c6c3d42 Move PSBT definitions and code to separate files (Glenn Willen)
81cd958 Factor BroadcastTransaction out of sendrawtransaction (Glenn Willen)
c734aaa Split DecodePSBT into Base64 and Raw versions (Glenn Willen)
162ffef Add pf_invalid arg to std::string DecodeBase{32,64} (Glenn Willen)
a4b92e4 Log full paths for wallets (Hennadii Stepanov)
318b1f7 [wallet] Close bdb when flushing wallet. (John Newbery)
5039e4b Remove unnecessary const_cast (Julian Fleischer)
fa0ad4e RPCHelpMan: Check default values are given at compile-time (MarcoFalke)
b651ef7 submitheader: more directly test missing prev block header (Gregory Sanders)
1e7f741 remove some magic mining constants in functional tests (Gregory Sanders)
8c9b8a3 Replace script name with special parameter (Hennadii Stepanov)
dc3b2cc tests: Added missing tests for RPC wallet errors (Ben Carman)
1951ea4 gui: Show indeterminate progress dialog while opening walllet (João Barbosa)
8847cda gui: Add OpenWalletActivity (João Barbosa)
4c8982a interfaces: Avoid interface instance if wallet is null (João Barbosa)
be82dea gui: Add thread to run background activity in WalletController (João Barbosa)
6c49a55 gui: Add Open Wallet menu (João Barbosa)
32a8c6a gui: Add openWallet and getWalletsAvailableToOpen to WalletController (João Barbosa)
ab288b4 interfaces: Add loadWallet to Node (João Barbosa)
17abc0f wallet: Factor out LoadWallet (João Barbosa)
15b3103 appveyor: Remove outdated libraries (Chun Kuan Lee)
ae892ad tests: accept unicode characters on Windows (Chun Kuan Lee)
1cdb9bb minor p2p_sendheaders fix of height in coinbase (Gregory Sanders)
a99999c util: Add SetupHelpOptions() (MarcoFalke)
a94e470 A few textual improvements (Martin Erlandsson)
50e6472 Move ParseConfirmTarget from rpc/mining to rpc/util (Russell Yanofsky)
1a0139c trivial: correct parameter name in comments (andrewtoth)
30d0f7b rpc: Fix for segfault if combinepsbt called with empty inputs (benthecarman)
7687f78 [wallet] Support creating a blank wallet (Andrew Chow)
dfbf117 Move maxTxFee initialization to init.cpp (Jordan Baczuk)
5d35d43 Update release notes through to cb35f1d (David A. Harding)
9ad5ca1 Release notes: integrate detached & rm backports (David A. Harding)
fae8b8b qa: Add tool-prefix to functional test readme (MarcoFalke)
faf3d22 test_runner: Remove unused --force option (MarcoFalke)
faa4647 wallet: Add lock annotation for mapAddressBook (MarcoFalke)
eea02be Add locking annotation for vNodes. vNodes is guarded by cs_vNodes. (practicalswift)
d855e4c Avoid triggering undefined behaviour (std::memset(nullptr, 0, 0)) if an invalid string is passed to DecodeSecret(...) (practicalswift)
1cff3d6 Change in transaction pull scheduling to prevent InvBlock-related attacks (Gleb Naumenko)
b985e9c Add release notes for importmulti descriptor support (MeshCollider)
fbb5e93 Add test for importing via descriptor (MeshCollider)
9f48053 [wallet] Allow descriptor imports with importmulti (MeshCollider)
d2b381c [wallet] Refactor ProcessImport() to call ProcessImportLegacy() (John Newbery)
4cac0dd [wallet] Add ProcessImportLegacy() (John Newbery)
a1b25e1 [wallet] Refactor ProcessImport() (John Newbery)
5952838 [rpc] util: add deriveaddresses method (Sjors Provoost)
6440e61 qa: Drop RPC connection if --usecli (João Barbosa)
87aa0b4 netaddress: Make IPv4 loopback comment more descriptive (Carl Dong)
6180b5f netaddress: Fix indentation in IsLocal (Carl Dong)
fa2a69f doc: Add cs_main lock annotations for mapBlockIndex (practicalswift)
fa1e281 doc: Add missing wallet-tool manpages (MarcoFalke)
fa0fe3b contrib: Add missing wallet tool to gen-manpages.sh (MarcoFalke)
e8db6b8 Qt: Fix update headers-count (Jonas Schnelli)
7bb45e4 Qt: update header count regardless of update delay (Jonas Schnelli)
fa1db33 travis: Only exit early if compilation took longer than 30 min (MarcoFalke)
7fdb92e Update linearize-hashes.py (OverlordQ)
13782b8 docs: add perf section to developer docs (James O'Beirne)
58180b5 tests: add utility to easily profile node performance with perf (James O'Beirne)
4701239 [Docs] Small updates to getrawtransaction description (Amiti Uttarwar)
ef0b012 tests: Make updatecoins_simulation_test deterministic (practicalswift)
364cff1 Fix issue #9683 "gui, wallet: random abort (segmentation fault) running master/HEAD". (Chris Moore)
d3bf3b9 qa: Test .walletlock file is closed (João Barbosa)
2f8b8f4 wallet: Close wallet env lock file (João Barbosa)
8602a1e wallet: Close dbenv error file db.log (João Barbosa)
0164b0f build: Remove WINVER pre define in Makefile.leveldb.inlcude (Chun Kuan Lee)
d0522ec Drop defunct Windows compat fixes (Ben Woosley)
d8a2992 windows: Call SetProcessDEPPolicy directly (Chun Kuan Lee)
1bd9ffd windows: Set _WIN32_WINNT to 0x0601 (Windows 7) (Chun Kuan Lee)
851380c remove deprecated mentions of signrawtransaction from fundraw help (Gregory Sanders)
aebafd0 Rename Chain getLocator -> getTipLocator (Russell Yanofsky)
2c1fbaa Drop redundant get_value_or (Russell Yanofsky)
84adb20 Fix ScanForWalletTransactions start_block comment (Russell Yanofsky)
2efa66b Document rescanblockchain returned stop_height being null (Russell Yanofsky)
db2d093 Add suggested rescanblockchain comments (Russell Yanofsky)
a8d645c Update ScanForWalletTransactions result comment (Russell Yanofsky)
95a812b Rename ScanResult stop_block field (Russell Yanofsky)
e1b6436 Fix build after pr 15266 merged (Hennadii Stepanov)
77777c5 log: Construct global logger on first use (MarcoFalke)
107623c net: Correct comparison of addr count (Carl Dong)
bad1716 init: Modify docs and add release note for 12255 (Carl Dong)
b0c7b54 init: Use systemd automatic directory creation (Carl Dong)
df8a7d3 qt: Pre-0.18 split-off translations update (Wladimir J. van der Laan)
fa6b7b9 travis: Revert "Run extended tests once daily" (MarcoFalke)
bef8fdd msvc: Fix silent merge conflict between #13926 and #14372 (ken2812221)
712d35b wallet: Add missing cs_db lock (João Barbosa)
fae169c test: Make bloom tests deterministic (MarcoFalke)
0dd6a8c Check m_internals in UnregisterValidationInterface (João Barbosa)
fd6d499 gui: Fix m_node.startShutdown() order (João Barbosa)
07b9aad gui: Expose BitcoinGUI::unsubscribeFromCoreSignals (João Barbosa)
60e190c gui: Fix WalletController deletion (João Barbosa)
fac3a05 test: Fix race in p2p_invalid_messages (MarcoFalke)
11e0fd8 Descriptor expansions only need pubkey entries for PKH/WPKH (Pieter Wuille)
facaae4 travis: Save cache when compilation took very long (MarcoFalke)
faee6c9 travis: Remove unused FUNCTIONAL_TESTS_CONFIG (MarcoFalke)
119d360 travis: Document whether functional tests are run in the job name (Ben Woosley)
64f2854 Revert "travis: Compile trusty with depends for now" (Ben Woosley)
267eac0 Prefer boost::optional#get_value_or over #value_or (Ben Woosley)
1971f5b Piecewise construct to avoid invalid construction (Ben Woosley)
fa5278a qa: Use wallet to retrieve raw transactions (MarcoFalke)
fa21983 qa: Style-only fixes in touched files (MarcoFalke)
e6c58d3 Do not import private keys to wallets with private keys disabled (Andrew Chow)
b5c5021 Refactor importwallet to extract data from the file and then import (Andrew Chow)
1f77f67 tests: unify RPC argument to cli argument conversion and handle dicts and lists (Andrew Chow)
2e02341 tests: unify RPC argument to cli argument conversion and handle dicts and lists (Andrew Chow)
82dcacb msvc: build leveldb locally (Chun Kuan Lee)
5209106 msvc: build secp256k1 locally (Chun Kuan Lee)
3617f11 Fix assertion in CKey::SignCompact (João Barbosa)
14bc2a1 Trivial: add doxygen-compatible comments relating to BerkeleyEnvironment (Pierre Rochard)
88b1d95 Tests: add unit tests for GetWalletEnv (Pierre Rochard)
f1f4bb7 Free BerkeleyEnvironment instances when not in use (Russell Yanofsky)
3c3e31c [tests] Add wallet-tool test (João Barbosa)
49d2374 [tools] Add wallet inspection and modification tool (Jonas Schnelli)
f96dbd1 gdb attaching to process during tests has non-sudo solution (Gregory Sanders)
2bc4c3e Notify the GUI that the keypool has changed to set the receive button (Andrew Chow)
14bcdbe Check for more than private keys disabled to show receive button (Andrew Chow)
fa3745b qa: Add tests for invalid message headers (MarcoFalke)
e1c27da doc: correct logging rpc return type and example (fanquake)
f24ed6d Delete README_osx.md and move its contents into build-osx.md (Martin Erlandsson)
a6cd50d Add gitian PGP key for hebasto (Hennadii Stepanov)
2d48314 Remove 'boost::optional'-related gcc warnings (Hennadii Stepanov)
fa5ce3f travis: Compile trusty with depends for now (MarcoFalke)
fa83999 travis: Compile once on trusty (MarcoFalke)
2ca632e test: Build fuzz targets into seperate executables (MarcoFalke)
fab4bed [test] fuzz: make test_one_input return void (MarcoFalke)
6f6514a Correct units for "-dbcache" and "-prune" (Hennadii Stepanov)
fa5e6ef wallet: Fixup rescanblockchain result doc (MarcoFalke)
04da9f4 [RPC] Update getrawtransaction interface (Amiti Uttarwar)
65bc38d [doc] add notes on release notes (John Newbery)
4f2e6c8 Squashed 'src/leveldb/' changes from 524b7e36a8..f545dfabff (MarcoFalke)
44de156 Remove remaining chainActive references from CWallet (Russell Yanofsky)
db21f02 Convert CWallet::ScanForWalletTransactions and SyncTransaction to the new Chain apis (Russell Yanofsky)
2ffb079 Add findFork and findBlock to the Chain interface (Russell Yanofsky)
d93c4c1 Add time methods to the Chain interface (Russell Yanofsky)
700c42b Add height, depth, and hash methods to the Chain interface (Russell Yanofsky)
0297be6 Allow connections from misbehavior banned peers. (Gregory Maxwell)
faa1522 RPCHelpMan: Pass through Result and Examples (MarcoFalke)
fa5f890 rpc: Compile on GCC4.8 (MarcoFalke)
70e7cee Trivial: Doxygenize existing CBufferedFile and VectorReader comments (Ben Woosley)
9431e1b Trivial: fixup a few doxygen comments (Ben Woosley)
ad5e5a1 Scripts and tools: Drop no-longer-relevant copyright holder names (Ben Woosley)
2434ab5 Scripts and tools: Fix devtools/copyright_header.py to always honor exclusions (Ben Woosley)
f618c58 Docs: Update python docs to reflect that wildcard imports are disallowed (Ben Woosley)
b09dab0 Prevent mutex lock fail even if --enable-debug (Akio Nakamura)
a36d97d Default -whitelistforcerelay to off (Suhas Daftuar)
5a5ea93 Doc: add information about security to the JSON-RPC doc (David A. Harding)
fdf82ba Update all subprocess.check_output functions in CI scripts to be Python 3.4 compatible (Graham Krizek)
42ff30e [Docs] add short documentation for /rest/blockhashbyheight (Jonas Schnelli)
579d418 [QA] add rest tests for /rest/blockhashbyheight/<HEIGHT>.<FORMAT> (Jonas Schnelli)
eb9ef04 REST: add "blockhashbyheight" call, fetch blockhash by height (Jonas Schnelli)
da60118 Fix macOS launch-at-startup memory issue (Jonas Schnelli)
516437a Qt: remove macOS launch-at-startup option when compiled with > macOS 10.11 (Jonas Schnelli)
948d8f4 lint: Enable python linters via an array (Ben Woosley)
b301950  Made expicit constructor CTransaction(const CMutableTransaction &tx). (lucash-dev)
faf29dd  Minimal changes to comply with explicit CMutableTransaction -> CTranaction conversion. (lucash-dev)
223de8d Document RNG design in random.h (Pieter Wuille)
f2e60ca Use secure allocator for RNG state (Pieter Wuille)
cddb31b Encapsulate RNGState better (Pieter Wuille)
152146e DRY: Implement GetRand using FastRandomContext::randrange (Pieter Wuille)
a1f252e Sprinkle some sweet noexcepts over the RNG code (Pieter Wuille)
4ea8e50 Remove hwrand_initialized. (Pieter Wuille)
9d7032e Switch all RNG code to the built-in PRNG. (Pieter Wuille)
16e40a8 Integrate util/system's CInit into RNGState (Pieter Wuille)
2ccc3d3 Abstract out seeding/extracting entropy into RNGState::MixExtract (Pieter Wuille)
aae8b9b Add thread safety annotations to RNG state (Pieter Wuille)
d3f54d1 Rename some hardware RNG related functions (Pieter Wuille)
05fde14 Automatically initialize RNG on first use. (Pieter Wuille)
2d1cc50 Don't log RandAddSeedPerfmon details (Pieter Wuille)
6a57ca9 Use FRC::randbytes instead of reading >32 bytes from RNG (Pieter Wuille)
de7266f [net] add dnsseed.emzy.de to DNS seeds (Stephan Oeste)
18185b5 scripted-diff: batch-recase BanMan variables (Carl Dong)
c2e04d3 banman: Add, use CBanEntry ctor that takes ban reason (Carl Dong)
1ffa4ce banman: reformulate nBanUtil calculation (Carl Dong)
daae598 banman: add thread annotations and mark members const where possible (Cory Fields)
84fc3fb scripted-diff: batch-rename BanMan members (Cory Fields)
af3503d net: move BanMan to its own files (Cory Fields)
d0469b2 banman: pass in default ban time as a parameter (Cory Fields)
2e56702 banman: pass the banfile path in (Cory Fields)
4c0d961 banman: create and split out banman (Cory Fields)
83c1ea2 net: split up addresses/ban dumps in preparation for moving them (Cory Fields)
136bd79 tests: remove member connman/peerLogic in TestingSetup (Cory Fields)
7cc2b9f net: Break disconnecting out of Ban() (Cory Fields)
ca91661 Fix wallet selector size adjustment (Hennadii Stepanov)
7cf994d qa: Improve tests of /rest/headers and /rest/block (João Barbosa)
0825b86 doc: /rest/block responds with 404 if block does not exist (João Barbosa)
be625f7 doc: Explain empty result of /rest/headers (João Barbosa)
3046e5f Update zmq to 4.3.1 (Dimitris Apostolou)
85f0ca9 Remove errant past from walletcreatefundedpsbt for nLocktime replaceability (Gregory Sanders)
f1dc693 zmq: log outbound message high water mark when reusing socket (fanquake)
1ed425e gui: Fix window title update (João Barbosa)
5b4283c Add comment describing fDisconnect behavior (Carl Dong)
a2a6c8f rpc: remove duplicate solvable field from getaddressinfo (fanquake)
979bc0c Improve "help-console" message (Hennadii Stepanov)
4e81438 build: Drop macports support (Ben Woosley)
0dd9bde gui: Refactor to use WalletController (João Barbosa)
8fa271f gui: Add WalletController (João Barbosa)
cefb399 gui: Use AutoConnection for WalletModel::unload signal (João Barbosa)
7c572c4 Add workaround for QProgressDialog bug on macOS (Hennadii Stepanov)
a517541 Remove no longer needed shellcheck suppressions (practicalswift)
0b7196e Fix warnings introduced in shellcheck v0.6.0 (practicalswift)
07a53dc Remove repeated suppression. Fix indentation. (practicalswift)
638e53b Pin shellcheck version to v0.6.0 (practicalswift)
31097b7 docs: Spelling error fix on fuzzing.md (benthecarman)
24313fb Remove redundant stopExecutor() signal (Hennadii Stepanov)
1c0e0a5 Remove redundant stopThread() signal (Hennadii Stepanov)
8928237 threads: fix unitialized members in sched_param (Cory Fields)
b745e14 [docs] Expand help text for importmulti changes (John Newbery)
4a86a0a Make SafeDbt DB_DBT_MALLOC on default initialization (Ben Woosley)
1a9f9f7 Introduce SafeDbt to handle DB_DBT_MALLOC raii-style (Ben Woosley)
951a44e Drop unused setRange arg to BerkeleyBatch::ReadAtCursor (Ben Woosley)
b9dafe7 Fix remaining compiler warnings (MSVC). Move disabling of specific warnings from /nowarn to project file. (practicalswift)
e4a0c35 Improve blocksdir functional test. (Hennadii Stepanov)
c3f1821 Make blockdir always net specific (Hennadii Stepanov)
4412a59 qa: Remove race between connecting and shutdown on separate connections (João Barbosa)
3537c83 Do not deselect peer when switching away from tab (Hennadii Stepanov)
b0037c5 Improve Peers tab layout (Hennadii Stepanov)
f1bd219 contrib: Allow use of github API authentication in github-merge (Wladimir J. van der Laan)
a4c5bbf contrib: Add support for http[s] URLs in github-merge (Wladimir J. van der Laan)
059a3cf contrib: Detailed reporting for http errors in github-merge (Wladimir J. van der Laan)
cbd9091 refactor/lint: Add ignored suggestions to an array (Vidar Holen)
04215eb [doc] explain what .python-version does (Sjors Provoost)
fe7048b gui: Show current wallet name in window title (João Barbosa)
8a79261 gui: Keep network style in BitcoinGUI (João Barbosa)
f411c8b gui: Remove unused return type in some BitcoinGUI methods (João Barbosa)
fa5e373 validation: Add cs_main locking annotations (MarcoFalke)
fa5c346 doc: Add comment to cs_main and mempool::cs (MarcoFalke)
fafe941 test: Add missing validation locks (MarcoFalke)
fac4558 sync: Add RecursiveMutex type alias (MarcoFalke)
03b8596 Add checksum in gitian build scripts for ossl (TheCharlatan)
fb3ce75 Don't label transactions "Open" while catching up (Hennadii Stepanov)
a88640e Fix minimized window bug on Linux (Hennadii Stepanov)
645e905 doc: Add release notes for unloadwallet change to synchronous call (João Barbosa)
c37851d rpc: Make unloadwallet wait for complete wallet unload (João Barbosa)
a0ac154 doc: Add getrpcinfo release notes (João Barbosa)
251a91c qa: Add tests for getrpcinfo (João Barbosa)
d0730f5 rpc: Add getrpcinfo command (João Barbosa)
068a8fc rpc: Track active commands (João Barbosa)
bf43832 rpc: Remove unused PreCommand signal (João Barbosa)
f652f85 qa: Ignore shellcheck warning SC2236 (João Barbosa)
3a0e76f Replace remaining 0 with nullptr in Qt code (Ben Woosley)
9096276 Don't use zero as null pointer constant (-Wzero-as-null-pointer-constant) (practicalswift)
fac2f5e Use C++11 default member initializers (MarcoFalke)
d6b076c Drop IsLimited in favor of IsReachable (Ben Woosley)
8ac3414 configure: bitcoin-tx doesn't need libevent, so don't pull it in (Luke Dashjr)
9d0e528 implements different disk sizes for different networks on intro (marcoagner)
fad058a build: Allow to configure --with-sanitizers=fuzzer (MarcoFalke)
332b3dd util: Make ToLower and ToUpper take a char (Wladimir J. van der Laan)
edb5bb3 util: remove unused [U](BEGIN|END) macros (Wladimir J. van der Laan)
7fa238c Replace use of BEGIN and END macros on uint256 (Wladimir J. van der Laan)
fa48baf wallet: Avoid leaking locktime fingerprint when anti-fee-sniping (MarcoFalke)
453803a [test] wallet_txn_clone: Correctly clone txin sequence (MarcoFalke)
5282608 docs: Add FreeBSD build notes link to doc/README.md (fanquake)
ef5ebc6 docs: Clarifying testing instructions (benthecarman)
2d5f1ea [tests] move wallet util functions to wallet_util.py (John Newbery)
6be64ef [tests] tidy up wallet_importmulti.py (John Newbery)
9300961 Fix start with the `-min` option (Hennadii Stepanov)
369d7b3 Fix download link (Martin Erlandsson)
8931a95 Include util/strencodings.h which is required for IsSpace(...) (practicalswift)
7c9f790 Update KNOWN_VIOLATIONS: Remove fixed violations (practicalswift)
587924f Use IsSpace(...) instead of boost::is_space (practicalswift)
c5fd143 Use ToLower(...) instead of std::tolower (practicalswift)
e70cc89 Use IsDigit(...) instead of std::isdigit (practicalswift)
6dc4593 IsReachable is the inverse of IsLimited (DRY). Includes unit tests (marcaiaf)
ca126d4 Fix out-of-bounds write in case of failing mmap(...) in PosixLockedPageAllocator::AllocateLocked (practicalswift)
ba8c8b2 Fail if either disk space check fails (Ben Woosley)
8cff831 Error if rpcpassword contains hash in conf sections (MeshCollider)
fa2510d Use C++11 default member initializers (MarcoFalke)
ed12d5d index: Fix for indexers skipping genesis block. (Jim Posen)
7e4bd19 Add BitcoinApplication & RPCConsole tests (Russell Yanofsky)
ca20b65 Move BitcoinApplication to header so it can be tested (Russell Yanofsky)
fab17e8 test: Add basic test for BIP34 (MarcoFalke)
f12e1d0 rpc: Avoid permanent cs_main lock in getblockheader (João Barbosa)
fa38d3d [rpc] Correct reconsiderblock help text, add test (MarcoFalke)
fab3f14 rpc: Document bytessent_per_msg and bytesrecv_per_msg (MarcoFalke)
c98f886 Fix the build problem in libbitcoin_server (Alexey Poghilenkov)
fac4e73 test: Run invalid_txs.InputMissing test in feature_block (MarcoFalke)
91b0c5b qt: Use WalletModel* instead of wallet name in console window (João Barbosa)
b2ce86c qt: Use WalletModel* instead of wallet name in main window (João Barbosa)
d2a1adf qt: Factor out WalletModel::getDisplayName() (João Barbosa)
4f4993f Remove UBSan suppression (practicalswift)
958e1a3 streams: Remove unused seek(size_t) (practicalswift)
6b25f29 Use std::vector API for construction of test data. (Daniel Kraft)
b9f226b rpc: Remove cs_main lock from blockToJSON and blockHeaderToJSON (João Barbosa)
343b98c rpc: Specify chain tip instead of chain in GetDifficulty (João Barbosa)
54dc13b rpc: Fix SoftForkMajorityDesc and SoftForkDesc signatures (João Barbosa)
75778a0 test: Correct ineffectual WithOrVersion from transactions_tests (Ben Woosley)
e58985c Log progress while verifying blocks at level 4. (Daniel Kraft)
a62e667 docs: Add more Doxygen information to Developer Notes (Jon Layton)
698d0f8 Remove misplaced Q_UNUSED and others enhancements (Hennadii Stepanov)
cc341ad gui: Fix for Incorrect application name when passing -regtest (Ben Carman)
5bb0164 depends: Enable unicode support on dbd for Windows (Chun Kuan Lee)
79f0a3f Get more info about GUI-related issue on Linux (Hennadii Stepanov)
1db71d4 Add names to Travis jobs (Graham Krizek)
7514361 Correct misleading "overridden options" label (Hennadii Stepanov)
f3d7d75 Release notes: integrate detached release notes (David A. Harding)
97fbe67 Release notes: update notes through fb52d06 (David A. Harding)
c8d9d90 Fix broken notificator on GNOME (Hennadii Stepanov)
59e3877 test: add invalid tx templates for use in functional tests (James O'Beirne)
c9066f0 Allow running rpc_bind.py --nonloopback test without IPv6 (Kristaps Kaupe)
4927bf2 Increase maxconnections limit when using poll. (Patrick Strateman)
11cc491 Implement poll() on systems which support it properly. (Patrick Strateman)
28211a4 Move SocketEvents logic to private method. (Patrick Strateman)
7e403c0 Move GenerateSelectSet logic to private method. (Patrick Strateman)
1e6afd0 Introduce and use constant SELECT_TIMEOUT_MILLISECONDS. (Patrick Strateman)
de23739 test: Fix rpc_net.py "pong" race condition (Ben Woosley)
b60ac00 Botbot.me (IRC logs) not available anymore (Antti Majakivi)
3019ba2 Making supported operating systems more clear (Ben Carman)
1a49a0e Bump manpages (DrahtBot)
06ba779 Update copyright headers to 2018 (DrahtBot)
ae5594d [Trivial] Update license year range to 2019 (Emil Engler)
4999992 whitespace: Split ~300 char line into multiple ones (MarcoFalke)
fa71b38 scripted-diff: Rename rpc_timewait to rpc_timeout (MarcoFalke)
fa3e578 scripted-diff: Remove unused 'split' parameter to setup_network (MarcoFalke)
2474de0 Fix running individually through test_runner.py, as suggested by @MarcoFalke (#14732) (Kristaps Kaupe)
b6f0db6 Increase timeout of featuer_assumevalid test to fix flaky tests (Graham Krizek)
aa9aca8 If tests are ran with (ASan + LSan), Docker needs access to ptrace (Graham Krizek)
a3b8b43 Update Travis base OS to Xenial (Graham Krizek)
cb53b82 scripted-diff: Replace boost::bind with std::bind (Chun Kuan Lee)
2196c51 refactor: Use boost::scoped_connection in signal/slot, also prefer range-based loop instead of std::transform (Chun Kuan Lee)
b74a521 fix testmempoolaccept CLI syntax (1Il1)
84104c7 clarifying getrawtransaction[time] get help text (Ben Carman)
be5ca82 doc: update NetBSD build instructions for 8.0 (fanquake)
5237850 Modify build instructions to work with Command Prompt as well as PowerShell; other minor changes (Murray Nesbitt)
72b63bc Fix minor grammar error in doc (bitcoinhodler)
fa3e874 test: pruning: Check that verifychain can be called when pruned (MarcoFalke)
488563e doc: Add historical release notes for 0.17.1 (Wladimir J. van der Laan)
eacff95 Add release notes (Pieter Wuille)
bdacbda Overhaul importmulti logic (Pieter Wuille)
66e15e8 Explain GetAncestor check for m_failed_blocks in AcceptBlockHeader (Sjors Provoost)
5728119 lint/format-strings: Correctly exclude escaped percent symbols (Luke Dashjr)
dae1423 Add locking annotations to feeStats, shortStats and longStats (practicalswift)
764e42f scripted-diff: Rename from cs_feeEstimator to m_cs_fee_estimator (practicalswift)
9a789d4 policy: Add Clang thread safety annotations for variables guarded by cs_feeEstimator (practicalswift)
e4ed8ce blockfilter: Remove default clause in switch statement. (Jim Posen)
c306209 blockfilter: Additional constructors for BlockFilter. (Jim Posen)
20b8129 blockfilter: Refactor GCS params into struct. (Jim Posen)
fabcd64 test: Avoid racy test p2p_timeouts (MarcoFalke)
d2ce315 [docs] add release note for change to GBT (John Newbery)
0025c9e [mining] segwit option must be set in GBT (John Newbery)
fa05d52 test: Bump timeout to run tests in travis thread sanitizer (MarcoFalke)
f3f6dde Test coinbase category in wallet rpcs (andrewtoth)
e982f0b Add all category options to wallet rpc help (andrewtoth)
6c10037 rpc: Fix data race (UB) in InterruptRPC() (practicalswift)
fa9a5bc RPCHelpMan: Support required arguments after optional ones (MarcoFalke)
fa61202 test: Add comment to g_insecure_rand_ctx (MarcoFalke)
fa0d3c4 test: Undo thread_local g_insecure_rand_ctx (MarcoFalke)
eaf4070 Add suppression for InterruptRPC (fRPCRunning) data race (practicalswift)
5e5138a travis: Use trap and set -e errtrace (Chun Kuan Lee)
069752b build: Enable functional tests in the ThreadSanitizer (TSan) build job (practicalswift)
82687b5 docs: add NSIS setup/install steps to windows docs (luciana)
4d454dc Refactoring with QString::toNSString (Hennadii Stepanov)
8b9171c wallet: Initialize stop_block to nullptr in CWallet::ScanForWalletTransactions (Ben Woosley)
faee591 test: Fix race in mempool_accept (MarcoFalke)
3e21b69 [Qt] Restore < Qt5.6 compatibility for addAction (Jonas Schnelli)
d98a29e Fix cuckoocache_tests TSAN failure introduced in #14935. Fixes #14967. (practicalswift)
95a5a9f qt: Remove ellipsis from sending/receiving addresses (João Barbosa)
a96c0df qt: Add Window menu (João Barbosa)
9ea38d0 qt: Allow to inspect RPCConsole tabs (João Barbosa)
c84c2b8 tests: Test for expected return values when calling functions returning a success code (practicalswift)
fa30a0e test: mempool_persist: Verify prioritization is dumped correctly (MarcoFalke)
fa4b8c9 test: add_nodes can only be called once after set_test_params (MarcoFalke)
faa8311 Revert "tests: Support calling add_nodes more than once" (MarcoFalke)
0e75f44 Replace CAffectedKeysVisitor with descriptor based logic (Pieter Wuille)
faead93 test: Make g_insecure_rand_ctx thread_local (MarcoFalke)
4de11a3 Remove Python 2 import workarounds (practicalswift)
fc91c1f Revert "travis: Save cache on build error" (Chun Kuan Lee)
98a1846 tests: Support calling add_nodes more than once (Steven Roose)
fbaaf78 validation: assert that pindexPrev is non-null when required (Karl-Johan Alm)
a46c847 depends: disable unused qt features (fanquake)
73b46ee depends: qt 5.9.7 (fanquake)
095e765 depends: expat 2.2.6 (fanquake)
aaaa8eb test: consensus: Check that final transactions are valid (MarcoFalke)
fae3617 test: Correctly deserialize without witness (MarcoFalke)
fa694f7 test: Add tests for truncated scripts (MarcoFalke)
e414486 Do not permit copying FastRandomContexts (Pieter Wuille)
022cf47 Simplify testing RNG code (Pieter Wuille)
fd3e797 Make unit tests use the insecure_rand_ctx exclusively (Pieter Wuille)
8d98d42 Bugfix: randbytes should seed when needed (non reachable issue) (Pieter Wuille)
273d025 Use a FastRandomContext in LimitOrphanTxSize (Pieter Wuille)
3db746b Introduce a Shuffle for FastRandomContext and use it in wallet and coinselection (Pieter Wuille)
8098379 Use a local FastRandomContext in a few more places in net (Pieter Wuille)
9695f31 Make addrman use its local RNG exclusively (Pieter Wuille)
78542a3 doc: Fix PSBT howto and example parameters (priscoan)
dcb70b1 Indicate -rpcauth option password hashing alg (Carl Dong)
31926ee [test] functional framework: add CScript hex() for Python 3.4 (Sjors Provoost)
74ce326 [test] Travis: enforce Python 3.4 support in functional tests (Sjors Provoost)
c9ba253 Add E711 to flake8 check (Daniel Ingram)
17b5520 Compare to None with is/is not (Daniel Ingram)
1b89074 Change '== None' to 'is None' (Daniel Ingram)
16d2937 Handle exception as ImportError (Daniel Ingram)
8db0c3d Removed implicit CTransaction conversion from benchmaks (lucash-dev)
ed61abe Removed implicit CTransaction constructor from tests (lucash-dev)
9b51b15 Add nice table to files.md (Emil Engler)
8e20934 build: Add CLIENT_VERSION_BUILD to CFBundleGetInfoString (fanquake)
b7bee6a doc: Update minimum required qt (fanquake)
bd3b036 Add stop_block out arg to ScanForWalletTransactions (Ben Woosley)
3002d6c Return a status enum from ScanForWalletTransactions (Ben Woosley)
bb24d68 Make CWallet::ScanForWalletTransactions args and return value const (Ben Woosley)
2687950 Add comments to descriptor tests (Pieter Wuille)
82df4c6 Add descriptor expansion cache (Pieter Wuille)
1eda33a [refactor] Combine the ToString and ToPrivateString implementations (Pieter Wuille)
24d3a7b [refactor] Use DescriptorImpl internally, permitting access to new methods (Pieter Wuille)
6be0fb4 [refactor] Add a base DescriptorImpl with most common logic (Pieter Wuille)
ee3b21d [tests] Add docstring for wallet_importmulti.py (John Newbery)
fbdba40 [tests] add test_address method to wallet_import.py (John Newbery)
fd3a02c [tests] add test_importmulti method to wallet_import.py (John Newbery)
08a4a0f [tests] add get_multisig function to wallet_importmulti.py (John Newbery)
7c99614 [tests] add get_key function to wallet_importmulti.py (John Newbery)
e5a8ea8 [tests] tidy up imports in wallet_importmulti.py (John Newbery)
cb41ade [tests] fix flake8 warnings in wallet_importmulti.py (John Newbery)
0dcac51 wallet_keypool_topup.py: Test for all keypool address types (Gregory Sanders)
522b80b add `--retry 5` to curl opts in install_db4.sh (qubenix)
fa0c24c rpc: Document default values for optional arguments (MarcoFalke)
e09a587 rpc: Assert named arguments are unique in RPCHelpMan (João Barbosa)
45842c3 Improve documentation for running verify-commits.py script (Jameson Lopp)
4ab638b http -> https (Dimitris Apostolou)
0b4a578 Use window() instead of obsolete topLevelWidget() (Hennadii Stepanov)
d6b3790 tests: check readability of cookie file (Chun Kuan Lee)
5c40e7b test: allows test_runner command line to receive parameters for each test (marcoagner)
fa4c867 rpc: Avoid creating non-standard raw transactions (MarcoFalke)
7d1b60c Cleanup SplashScreen class (Hennadii Stepanov)
b7df96f refactor: Drop boost::this_thread::interruption_point and boost::thread_interrupted in main thread (Chun Kuan Lee)
fa4fc88 validation: Add and use HaveTxsDownloaded where appropriate (MarcoFalke)
6bbdb20 squashme: connect thru node interface (João Barbosa)
a0f8df3 qt: Call noui_connect to prevent boost::signals2::no_slots_error in early calls to InitWarning (João Barbosa)
58c5cc9 Adjust configure so that only bip70 is disabled when protobuf is missing instead of the GUI (James Hilliard)
28479f9 qa: Test bitcond shutdown (João Barbosa)
8d3f46e http: Remove timeout to exit event loop (João Barbosa)
e98a9ee http: Remove unnecessary event_base_loopexit call (João Barbosa)
6b13580 http: Unlisten sockets after all workers quit (João Barbosa)
18e9685 http: Send "Connection: close" header if shutdown is requested (João Barbosa)
02e1e4e rpc: Add wait argument to stop (João Barbosa)
a67d713 [doc] developer-notes.md: point out that UniValue deviates from upstream (Sjors Provoost)
1ca0502 scripts: Add trusted key for Samuel Dobson (Wladimir J. van der Laan)
688f665 Scripts and tools & Docs: Used #!/usr/bin/env bash instead of obsolete #!/bin/bash, added linting for .sh files shebang and updated the Developer Notes. (vim88)
cf4b032 Use std::numeric_limits<UNSIGNED>::max()) instead of (UNSIGNED)-1 (practicalswift)
6b82fc5 Use const in COutPoint class (Hennadii Stepanov)
43f9099 scripted-diff: Run scripted-diff in subshell (Carl Dong)
fabca42 RPCHelpMan: Add space after colons in extended description (MarcoFalke)
fafd040 rpc: Add description to fundrawtransaction vout_index (MarcoFalke)
1db0096 rpc: Pass argument descriptions to RPCHelpMan (MarcoFalke)
b14948e Remove duplicate libconsensus linking in test make (Amir Abrams)
f3cf95f tests: Modify rpc_bind to conform to #14532 behaviour. (Carl Dong)
48b37db make peertimeout a debug argument, remove error message translation (Zain Iqbal Allarakhia)
8042bbf p2p: allow p2ptimeout to be configurable, speed up slow test (Zain Iqbal Allarakhia)
af1ed20 Fix broken Gmane URLs (Craig Younkins)
4674610 Log env path in BerkeleyEnvironment::Flush (João Barbosa)
6c6ee8a Less confusing documentation for `torpassword` (Chakib Benziane)
2012d4d Add CScriptNum decode python implementation in functional suite (Gregory Sanders)
1c28feb qt: Remove hidden columns in coin control dialog (João Barbosa)
d3ecc3d travis: Save cache on build error (Chun Kuan Lee)
82d6c5a gui: Show watch-only eye instead of HD disabled (Chun Kuan Lee)
fe1ff50 Hide spendable label if priveate key is disabled (Chun Kuan Lee)
c5ed6e7 Move CheckBlock() call to critical section (Hennadii Stepanov)
bf2e010 uint256: Remove unnecessary crypto/common.h use (Karl-Johan Alm)
c1825b9 [tests] Add wallet_balance.py (John Newbery)
0fb2e69 CreateTransaction: Assume minimum p2sh-p2wpkh spend size for unknown change (Gregory Sanders)
b06483c Remove stale comment in CalculateMaximumSignedInputSize (Gregory Sanders)
4aabadb tests: have combine_logs default to most recent test dir (James O'Beirne)
fa5cef0 bench: Destroy wallet txs instead of leaking their memory (MarcoFalke)
4894133 Add missing lock in CNode::copyStats(...) (practicalswift)
b312cd7 Add missing locking annotations (practicalswift)
29aeed1 Bugfix: test/functional/mempool_accept: Ensure oversize transaction is actually oversize (Luke Dashjr)
6541d59 Add LSan suppression warnings (practicalswift)
ff7212e Add ASan Travis build (practicalswift)
ebd3bf2 Make test p2p_invalid_messages.py pass: Allow for expected Travis ASAN memory increase (practicalswift)
109699d Add release notes (Pieter Wuille)
b65326b Add matching descriptors to scantxoutset output + tests (Pieter Wuille)
16203d5 Add descriptors to listunspent and getaddressinfo + tests (Pieter Wuille)
9b2a25b Add tests for InferDescriptor and Descriptor::IsSolvable (Pieter Wuille)
225bf3e Add Descriptor::IsSolvable() to distinguish addr/raw from others (Pieter Wuille)
4d78bd9 Add support for inferring descriptors from scripts (Pieter Wuille)
c77f092 Fix descriptor_tests not checking ToString output of public descriptors (Russell Yanofsky)
fa739d4 qa: Add wallet_encryption error tests (MarcoFalke)
fa71eb5 Convert comments to thread safety annotations (MarcoFalke)
5a1f576 qa: clean up assert_memory_usage_stable utility (James O'Beirne)
0cf1632 qa: fix p2p_invalid_messages on macOS (James O'Beirne)
848077f clarify RPC rawtransaction documentation (Jameson Lopp)
e4eee7d Add Benchmark to test input de-duplication worst case (Jeremy Rubin)
af9a991 Fix detection of copyright holders (Cornelius Schumacher)
fa7d36b test: Move UBSAN suppressions to test/sanitizer_suppressions/ubsan (MarcoFalke)
fa36d4e travis: --disable-hardening for xenial thread sanitizer (MarcoFalke)
89bf196 travis: Run thread sanitizer (MarcoFalke)
60ae463 Fix `bitcoin-qt -version` output formatting (Hennadii Stepanov)
b81a186 GetPubKey: make sigdata const (Gregory Sanders)
f7beb95 remove redundant KeyOriginInfo access, already done in CreateSig (Gregory Sanders)
75a4bf6 Update release-process.md to include RC version bumping (Andrew Chow)
04b0bc7 build: include rc number in version number (Andrew Chow)
895e6bb build: if VERSION_BUILD is non-zero, include it in the package version (Andrew Chow)
0c69ff6 clarify rpcwallet flag url change (Jordan Baczuk)
b7b36de fix uninitialized read when stringifying an addrLocal (Kaz Wesley)
8ebbef0 add test demonstrating addrLocal UB (Kaz Wesley)
fa5e045 rpc: Documentation fixups (MarcoFalke)
fa91e8e Use RPCHelpMan for all RPCs (MarcoFalke)
fa520e7 lint: Must use RPCHelpMan to generate the RPC docs (MarcoFalke)
8284756 A few minor formatting fixes and clarifications to descriptors.md (John Newbery)
3d2c7d6 Add regtest for JSON-RPC batch calls. (Daniel Kraft)
fa21ca0 test: Add BOOST_REQUIRE to getters returning optional (MarcoFalke)
d6cde00 rpcauth: Improve by using argparse and getpass modules (João Barbosa)
27c44ef rpcbind: Warn about exposing RPC to untrusted networks (Luke Dashjr)
d6a1287 CNetAddr: Add IsBindAny method to check for INADDR_ANY (Luke Dashjr)
3615003 net: Always default rpcbind to localhost, never "all interfaces" (Luke Dashjr)
69ca487 Implement prevector::fill once (Ben Woosley)
7bad78c Drop defunct IS_TRIVIALLY_CONSTRUCTIBLE handling from prevector.h (Ben Woosley)
3fb09b9 Warn unrecognized sections in the config file (Akio Nakamura)
fa7da06 qa: Check specific reject reasons in feature_block (MarcoFalke)
6be7d14 Properly generate salt in rpcauth.py, update tests (Carl Dong)
feeef7d Do not specify sudo in .travis (Julian Fleischer)
5912031 wallet: Create IsDatabaseLoaded function (Chun Kuan Lee)
15c93f0 wallet: Add trailing wallet.dat when detecting duplicate wallet if it's a directory. (Chun Kuan Lee)
c456fbd Refactor: Move m_db pointers into BerkeleyDatabase (Russell Yanofsky)
e816b34 revert removal of fstream.hpp header in fs.h (Karl-Johan Alm)
c54e5a4 Remove unreferenced boost headers (Murray Nesbitt)
b08af10 disallow oversized CBlockHeaderAndShortTxIDs (Kaz Wesley)
6bed4b3 fix a deserialization overflow edge case (Kaz Wesley)
051faf7 add a test demonstrating an overflow in a deserialization edge case (Kaz Wesley)
07e286d Improve scripted-diff developer docs (Carl Dong)
9cc0230 Add NODISCARD to all {Decode,Parse}[...](...) functions returning bool. Sort includes. (practicalswift)
579497e tests: Explicitly ignore the return value of DecodeBase58(...) (practicalswift)
145fe95 tests: Check return value of ParseParameters(...) (practicalswift)
7c5bc2a miner: Default to DEFAULT_BLOCK_MIN_TX_FEE if unable to parse -blockmintxfee (practicalswift)
da427db Rename ListTransactions filter variable (Russell Yanofsky)
65b740f [wallet] Restore ability to list incoming transactions by label (Russell Yanofsky)
b4f6e58 Better error message for user when corrupt wallet unlock fails (MeshCollider)
86cddf0 doc: add detached release notes for #14060 (mruddy)
ba8f0c6 Release notes: integrate detached release notes (David A. Harding)
6062f0e Release notes: update notes through to 11e1ac3 (David A. Harding)
2bc3f11 Bump the minimum Qt version to 5.2 (Hennadii Stepanov)
5c5902a build: Add bitcoin-tx.exe into Windows installer (Chun Kuan Lee)
fa0815c rpc: Correctly name arguments (Jon Layton)

Pull request description:

  Catching up with upstream commit 519b0bc.

Tree-SHA512: 2e0f768773c51a197a56cc4a7209fce306aeef2b44c82f8859e442684d89cb520b6b27812a451916bca0fac04f3c15e9005170a201eed202a24d4419f976957b
instagibbs added a commit to instagibbs/elements that referenced this pull request Jun 6, 2019
44db4d8 Merge pull request ElementsProject#57 from apoelstra/2019-04-surjectionproof-stack
f7e4d08 surjection proof: Reject proofs with too many used inputs in reduced mode
112edb2 allow reducing surjection proof size (to lower generation stack usage)
d512d78 surjectionproof: introduce `SECP256K1_SURJECTIONPROOF_MAX_USED_INPUTS` constant and set it to 16
a118acc surjectionproof: reduce stack usage
e7f4ff4 Merge pull request ElementsProject#70 from apoelstra/2019-06-surjection-count
f94d46e Merge pull request ElementsProject#71 from real-or-random/fix-trailing-test
49a1e01 surjectionproof: fix malleability in surjection proof parsing
55311b0 Fix read of wrong buffer (and OOB) in surjectionproof tests
290a27b surjectionproof: add test vectors for "set padding bits"
7bc3daa surjectionproof: add fixed test vectors
6f3b0c0 Improve comments for surctionproof init+alloc/destroy funcs
250ebb3 work in progress: add _allocate_initialized/destroy funcs
4a77633 Improve explanation of key cancellation attack in whitelist.md
898c9f0 Clarify how to derive alternative generator H
15d9278 Add bench_generator and bench_rangeproof to .gitignore
86240b2 Clean up ./configure help strings (zkp extensions)
865b761 Fix a small typo in the generator parameter name
cd5ba5c generator: remove `CHECK` abort calls exposed by public API
ff16651 musig: add user documentation
0ad6b60 Add 3-of-3 MuSig example
b61a1a9 Add MuSig module which allows creating n-of-n multisignatures and adaptor signatures.
5d5374f Add schnorrsig module which implements BIP-schnorr [0] compatible signing, verification and batch verification.
a8ae6ba add chacha20 function
9a8a71e use proper types for rangeproof min/max
14769b9 rangeproof: reduce iteration count in unit tests
0593861 Enable more builds with rest of experimental flags
e9fea74 Add explanation about how BIP32 unhardened derivation can be used to simplify whitelisting
dec1b9c Add comment to explain effect of max_n_iterations in surjectionproof_init
ea62bfe add unit test for generator and pedersen commitment roundtripping
e32924f rangeproof: fix serialization of pedersen commintments
972d056 rangeproof: verify correctness of pedersen commitments when parsing
2cc4c6f generator: verify correctness of point when parsing
65ffea4 rangeproof: check that points deserialize correctly when verifying rangeproof
cb786d6 rangeproof: add fixed vector test case
b387ba0 Expose generator in shared library
8da4328 fix spelling in documentation
6f14fe4 Test for rejection of trailing bytes in range proofs
ab4fbc1 Test for rejection of trailing bytes in surjection proofs
c908c97 Reject surjection proofs with trailing garbage
f723bf5 Minor bugfix. Wrong length due to NUL character.
6872069 Add whitelisting benchmark
6ceccb7 add whitelist_impl.h to include for dist
a3ad4a8 generator: add API tests
e93e886 generator: remove unnecessary ARG_CHECK from generate()
f1d6e4b Fix generator makefile
68be611 Fix pedersen_blind_generator_blind_sum return value documentation
51fc58a Add n_keys argument to whitelist_verify
36b100c Fix checks of whitelist serialize/parse arguments
c8f54e1 whitelist: fix serialize/parse API to take serialized length
56fca50 Fix include/secp256k1_rangeproof.h function argument documentation.
4617f04 rangeproof: add API tests
cd4e438 surjectionproof: rename unit test functions to be more consistent with other modules
2cc7f1e surjectionproof: add API unit tests
c4097f7 surjectionproof: tests_impl.h s/assert/CHECK/g
5ee6bf3 rangeproof: fix memory leak in unit tests
94e81a2 add surjection proof module
a66ea35 Implement ring-signature based whitelist delegation scheme
2bb5133 rangeproof: several API changes
9b00b61 Expose generator in pedersen/rangeproof API
54fa263 Constant-time generator module
023aa86 rangeproof: expose sidechannel message field in the signing API
89e7451 [RANGEPROOF BREAK] Use quadratic residue for tie break and modularity cleanup
f126331 Pedersen commitments, borromean ring signatures, and ZK range proofs.
e1fb4af Add 64-bit integer utilities
e541a90 Merge ElementsProject#629: Avoid calling _is_zero when _set_b32 fails.
f34b0c3 Merge ElementsProject#630: Note intention of timing sidechannel freeness.
8d1563b Note intention of timing sidechannel freeness.
1669bb2 Merge ElementsProject#628: Fix ability to compile tests without -DVERIFY.
ecc94ab Merge ElementsProject#627: Guard memcmp in tests against mixed size inputs.
544435f Merge ElementsProject#578: Avoid implementation-defined and undefined behavior when dealing with sizes
143dc6e Merge ElementsProject#595: Allow to use external default callbacks
e49f799 Add missing #(un)defines to base-config.h
77defd2 Add secp256k1_ prefix to default callback functions
908bdce Include stdio.h and stdlib.h explicitly in secp256k1.c
5db782e Allow usage of external default callbacks
6095a86 Replace CHECKs for no_precomp ctx by ARG_CHECKs without a return
cd473e0 Avoid calling secp256k1_*_is_zero when secp256k1_*_set_b32 fails.
6c36de7 Merge ElementsProject#600: scratch space: use single allocation
98836b1 scratch: replace frames with "checkpoint" system
7623cf2 scratch: save a couple bytes of unnecessarily-allocated memory
a7a164f scratch: rename `max_size` to `size`, document that extra will actually be allocated
5a4bc0b scratch: unify allocations
c2b028a scratch space: thread `error_callback` into all scratch space functions
0be1a4a scratch: add magic bytes to beginning of structure
92a48a7 scratch space: use single allocation
40839e2 Merge ElementsProject#592: Use trivial algorithm in ecmult_multi if scratch space is small
dcf3920 Fix ability to compile tests without -DVERIFY.
a484e00 Merge ElementsProject#566: Enable context creation in preallocated memory
0522caa Explain caller's obligations for preallocated memory
238305f Move _preallocated functions to separate header
695feb6 Export _preallocated functions
814cc78 Add tests for contexts in preallocated memory
ba12dd0 Check arguments of _preallocated functions
5feadde Support cloning a context into preallocated memory
c4fd5da Switch to a single malloc call
ef020de Add size constants for preallocated memory
1bf7c05 Prepare for manual memory management in preallocated memory
248bffb Guard memcmp in tests against mixed size inputs.
36698dc Merge ElementsProject#596: Make WINDOW_G configurable
a61a93f Clean up ./configure help strings
2842dc5 Make WINDOW_G configurable
1a02d6c Merge ElementsProject#626: Revert "Merge ElementsProject#620: Install headers automatically"
662918c Revert "Merge ElementsProject#620: Install headers automatically"
14c7dbd Simplify control flow in DER parsing
ec8f20b Avoid out-of-bound pointers and integer overflows in size comparisons
01ee1b3 Parse DER-enconded length into a size_t instead of an int
912680e Merge ElementsProject#561: Respect LDFLAGS and #undef STATIC_PRECOMPUTATION if using basic config
91fae3a Merge ElementsProject#620: Install headers automatically
5df77a0 Merge ElementsProject#533: Make sure we're not using an uninitialized variable in secp256k1_wnaf_const(...)
975e51e Merge ElementsProject#617: Pass scalar by reference in secp256k1_wnaf_const()
735fbde Merge ElementsProject#619: Clear a copied secret key after negation
16e8615 Install headers automatically
069870d Clear a copied secret key after negation
8979ec0 Pass scalar by reference in secp256k1_wnaf_const()
84a8085 Merge ElementsProject#612: Allow field_10x26_arm.s to compile for ARMv7 architecture
d4d270a Allow field_10x26_arm.s to compile for ARMv7 architecture
b19c000 Merge ElementsProject#607: Use size_t shifts when computing a size_t
4d01bc2 Merge ElementsProject#606: travis: Remove unused sudo:false
e6d01e9 Use size_t shifts when computing a size_t
7667532 travis: Remove unused sudo:false
248f046 Make sure we're not using an uninitialized variable in secp256k1_wnaf_const(...)
9ab96f7 Use trivial algorithm in ecmult_multi if scratch space is small
ee99f12 Merge ElementsProject#599: Switch x86_64 asm to use "i" instead of "n" for immediate values.
d58bc93 Switch x86_64 asm to use "i" instead of "n" for immediate values.
05362ee Merge ElementsProject#597: Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
8348386 Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
aa15154 Merge ElementsProject#568: Fix integer overflow in ecmult_multi_var when n is large
2277af5 Fix integer overflow in ecmult_multi_var when n is large
dbed75d Undefine `STATIC_PRECOMPUTATION` if using the basic config
310111e Keep LDFLAGS if `--coverage`
85d0e1b Merge ElementsProject#591: Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
1419637 Merge ElementsProject#580: Add trivial ecmult_multi algorithm which does not require a scratch space
a697d82 Add trivial ecmult_multi to the benchmark tool
bade617 Add trivial ecmult_multi algorithm. It is selected when no scratch space is given and just multiplies and adds the points.
5545e13 Merge ElementsProject#584: configure: Use CFLAGS_FOR_BUILD when checking native compiler
20c5869 Merge ElementsProject#516: improvements to random seed in src/tests.c
b76e45d Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
870a977 Merge ElementsProject#562: Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
be40c4d Fixup for C90 mixed declarations.
c71dd2c Merge ElementsProject#509: Fix algorithm selection in bench_ecmult
6492bf8 Merge ElementsProject#518: Summarize build options after running configure
0e9ada1 Merge ElementsProject#567: Correct order of libs returned on pkg-config --libs --static libsecp2…
e96901a Merge ElementsProject#587: Make randomization of a non-signing context a noop
58df8d0 Merge ElementsProject#511: Portability fix for the configure scripts generated
2ebdad7 Merge ElementsProject#552: Make constants static:
1c131af Merge ElementsProject#551: secp256k1_fe_sqrt: Verify that the arguments don't alias.
ba698f8 Merge ElementsProject#539: Assorted minor corrections
949e85b Merge ElementsProject#550: Optimize secp256k1_fe_normalize_weak calls.
a34bcaa Actually pass CFLAGS_FOR_BUILD and LDFLAGS_FOR_BUILD to linker
2d5f4ce configure: Use CFLAGS_FOR_BUILD when checking native compiler
b408c6a Merge ElementsProject#579: Use __GNUC_PREREQ for detecting __builtin_expect
6198375 Make randomization of a non-signing context a noop
c663397 Use __GNUC_PREREQ for detecting __builtin_expect
3cb057f Fix possible integer overflow in DER parsing
89a20a8 Correct order of libs returned on pkg-config --libs --static libsecp256k1 call.
d3cb1f9 Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
496c5b4 Make constants static: static const secp256k1_ge secp256k1_ge_const_g; static const int CURVE_B;
bf8b86c secp256k1_fe_sqrt: Verify that the arguments don't alias.
9bd89c8 Optimize secp256k1_fe_normalize_weak calls. Move secp256k1_fe_normalize_weak calls out of ECMULT_TABLE_GET_GE and ECMULT_TABLE_GET_GE_STORAGE and into secp256k1_ge_globalz_set_table_gej instead.
52ab96f clean dependendies in field_*_impl.h
deff5ed Correct math typos in field_*.h
4efb3f8 Add check that restrict pointers don't alias with all parameters.
3965027 Summarize build options in configure script
0f05173 Fix algorithm selection in bench_ecmult
8b3841c fix bug in fread() failure check
cddef0c tests: add warning message when /dev/urandom fails
270f6c8 Portability fix for the configure scripts generated
REVERT: 43dd1f4 Merge pull request ElementsProject#40 from instagibbs/size_t
REVERT: 6532fa0 Merge pull request ElementsProject#39 from instagibbs/more_builds
REVERT: 2b2429d rangeproof: reduce iteration count in unit tests
REVERT: 12b0e5d Enable more builds with rest of experimental flags
REVERT: 8c444ee use proper types for rangeproof min/max
REVERT: 53ad841 Add explanation about how BIP32 unhardened derivation can be used to simplify whitelisting
REVERT: 71c5fe0 Add comment to explain effect of max_n_iterations in surjectionproof_init
REVERT: 85fd42f add unit test for generator and pedersen commitment roundtripping
REVERT: 2ccf885 rangeproof: fix serialization of pedersen commintments
REVERT: 60c173b rangeproof: verify correctness of pedersen commitments when parsing
REVERT: 32d7526 generator: verify correctness of point when parsing
REVERT: ae14e8a rangeproof: check that points deserialize correctly when verifying rangeproof
REVERT: 44fe43d rangeproof: add fixed vector test case
REVERT: e065d7d Expose generator in shared library
REVERT: fb1ba32 fix spelling in documentation
REVERT: fb75faa Test for rejection of trailing bytes in range proofs
REVERT: 9b2cf17 Test for rejection of trailing bytes in surjection proofs
REVERT: a3a1800 Reject surjection proofs with trailing garbage
REVERT: 0c77ae9 Minor bugfix. Wrong length due to NUL character.
REVERT: b1f31bc Add whitelisting benchmark
REVERT: 52a9f8f add whitelist_impl.h to include for dist
REVERT: a707865 generator: add API tests
REVERT: ec1ef04 generator: remove unnecessary ARG_CHECK from generate()
REVERT: b0e9aa8 Fix generator makefile
REVERT: 526c654 Fix pedersen_blind_generator_blind_sum return value documentation
REVERT: b51886e Add n_keys argument to whitelist_verify
REVERT: 37c57de Fix checks of whitelist serialize/parse arguments
REVERT: 9b8a9d9 whitelist: fix serialize/parse API to take serialized length
REVERT: 7f17515 Fix include/secp256k1_rangeproof.h function argument documentation.
REVERT: 0d81702 rangeproof: add API tests
REVERT: 417bb06 surjectionproof: rename unit test functions to be more consistent with other modules
REVERT: 1e2d5c1 surjectionproof: add API unit tests
REVERT: 7878a29 surjectionproof: tests_impl.h s/assert/CHECK/g
REVERT: e609591 rangeproof: fix memory leak in unit tests
REVERT: 0c17f79 add surjection proof module
REVERT: c174f0c Implement ring-signature based whitelist delegation scheme
REVERT: a2bc660 rangeproof: several API changes
REVERT: 21bfb3c Expose generator in pedersen/rangeproof API
REVERT: f4620de Constant-time generator module
REVERT: d46fc3c rangeproof: expose sidechannel message field in the signing API
REVERT: cf40b1b [RANGEPROOF BREAK] Use quadratic residue for tie break and modularity cleanup
REVERT: 6d28767 Get rid of precomputed H tables (Pieter Wuille)
REVERT: ae1e576 Pedersen commitments, borromean ring signatures, and ZK range proofs.
REVERT: efc61dc Add 64-bit integer utilities

git-subtree-dir: src/secp256k1
git-subtree-split: 44db4d801fff3cd94105136cb443d603683baad2
stevenroose added a commit to stevenroose/elements that referenced this pull request Jun 6, 2019
44db4d801 Merge pull request ElementsProject#57 from apoelstra/2019-04-surjectionproof-stack
f7e4d08da surjection proof: Reject proofs with too many used inputs in reduced mode
112edb2c6 allow reducing surjection proof size (to lower generation stack usage)
d512d7865 surjectionproof: introduce `SECP256K1_SURJECTIONPROOF_MAX_USED_INPUTS` constant and set it to 16
a118acc02 surjectionproof: reduce stack usage
e7f4ff4c6 Merge pull request ElementsProject#70 from apoelstra/2019-06-surjection-count
f94d46e65 Merge pull request ElementsProject#71 from real-or-random/fix-trailing-test
49a1e0173 surjectionproof: fix malleability in surjection proof parsing
55311b0e0 Fix read of wrong buffer (and OOB) in surjectionproof tests
290a27bb7 surjectionproof: add test vectors for "set padding bits"
7bc3daa48 surjectionproof: add fixed test vectors
6f3b0c05c Improve comments for surctionproof init+alloc/destroy funcs
250ebb364 work in progress: add _allocate_initialized/destroy funcs
4a7763361 Improve explanation of key cancellation attack in whitelist.md
898c9f05b Clarify how to derive alternative generator H
15d92782d Add bench_generator and bench_rangeproof to .gitignore
86240b207 Clean up ./configure help strings (zkp extensions)
865b76186 Fix a small typo in the generator parameter name
cd5ba5c3b generator: remove `CHECK` abort calls exposed by public API
ff1665127 musig: add user documentation
0ad6b6036 Add 3-of-3 MuSig example
b61a1a9d9 Add MuSig module which allows creating n-of-n multisignatures and adaptor signatures.
5d5374f92 Add schnorrsig module which implements BIP-schnorr [0] compatible signing, verification and batch verification.
a8ae6baff add chacha20 function
9a8a71e8b use proper types for rangeproof min/max
14769b964 rangeproof: reduce iteration count in unit tests
0593861cc Enable more builds with rest of experimental flags
e9fea7427 Add explanation about how BIP32 unhardened derivation can be used to simplify whitelisting
dec1b9ce2 Add comment to explain effect of max_n_iterations in surjectionproof_init
ea62bfe22 add unit test for generator and pedersen commitment roundtripping
e32924f0e rangeproof: fix serialization of pedersen commintments
972d056fa rangeproof: verify correctness of pedersen commitments when parsing
2cc4c6fef generator: verify correctness of point when parsing
65ffea43d rangeproof: check that points deserialize correctly when verifying rangeproof
cb786d6d1 rangeproof: add fixed vector test case
b387ba038 Expose generator in shared library
8da432855 fix spelling in documentation
6f14fe40d Test for rejection of trailing bytes in range proofs
ab4fbc1be Test for rejection of trailing bytes in surjection proofs
c908c97d6 Reject surjection proofs with trailing garbage
f723bf5b3 Minor bugfix. Wrong length due to NUL character.
6872069de Add whitelisting benchmark
6ceccb75b add whitelist_impl.h to include for dist
a3ad4a866 generator: add API tests
e93e886cb generator: remove unnecessary ARG_CHECK from generate()
f1d6e4b83 Fix generator makefile
68be61131 Fix pedersen_blind_generator_blind_sum return value documentation
51fc58ae6 Add n_keys argument to whitelist_verify
36b100c77 Fix checks of whitelist serialize/parse arguments
c8f54e12e whitelist: fix serialize/parse API to take serialized length
56fca5077 Fix include/secp256k1_rangeproof.h function argument documentation.
4617f0478 rangeproof: add API tests
cd4e438a3 surjectionproof: rename unit test functions to be more consistent with other modules
2cc7f1e04 surjectionproof: add API unit tests
c4097f758 surjectionproof: tests_impl.h s/assert/CHECK/g
5ee6bf341 rangeproof: fix memory leak in unit tests
94e81a250 add surjection proof module
a66ea3522 Implement ring-signature based whitelist delegation scheme
2bb513361 rangeproof: several API changes
9b00b61d9 Expose generator in pedersen/rangeproof API
54fa2639e Constant-time generator module
023aa86ac rangeproof: expose sidechannel message field in the signing API
89e7451d4 [RANGEPROOF BREAK] Use quadratic residue for tie break and modularity cleanup
f126331bc Pedersen commitments, borromean ring signatures, and ZK range proofs.
e1fb4af90 Add 64-bit integer utilities
e541a90ef Merge ElementsProject#629: Avoid calling _is_zero when _set_b32 fails.
f34b0c3f3 Merge ElementsProject#630: Note intention of timing sidechannel freeness.
8d1563b0f Note intention of timing sidechannel freeness.
1669bb286 Merge ElementsProject#628: Fix ability to compile tests without -DVERIFY.
ecc94abcc Merge ElementsProject#627: Guard memcmp in tests against mixed size inputs.
544435fc9 Merge ElementsProject#578: Avoid implementation-defined and undefined behavior when dealing with sizes
143dc6e9e Merge ElementsProject#595: Allow to use external default callbacks
e49f7991c Add missing #(un)defines to base-config.h
77defd2c3 Add secp256k1_ prefix to default callback functions
908bdce64 Include stdio.h and stdlib.h explicitly in secp256k1.c
5db782e65 Allow usage of external default callbacks
6095a863f Replace CHECKs for no_precomp ctx by ARG_CHECKs without a return
cd473e02c Avoid calling secp256k1_*_is_zero when secp256k1_*_set_b32 fails.
6c36de7a3 Merge ElementsProject#600: scratch space: use single allocation
98836b11f scratch: replace frames with "checkpoint" system
7623cf2b9 scratch: save a couple bytes of unnecessarily-allocated memory
a7a164f2c scratch: rename `max_size` to `size`, document that extra will actually be allocated
5a4bc0bb9 scratch: unify allocations
c2b028a28 scratch space: thread `error_callback` into all scratch space functions
0be1a4ae6 scratch: add magic bytes to beginning of structure
92a48a764 scratch space: use single allocation
40839e21b Merge ElementsProject#592: Use trivial algorithm in ecmult_multi if scratch space is small
dcf392027 Fix ability to compile tests without -DVERIFY.
a484e0008 Merge ElementsProject#566: Enable context creation in preallocated memory
0522caac8 Explain caller's obligations for preallocated memory
238305fdb Move _preallocated functions to separate header
695feb6fb Export _preallocated functions
814cc78d7 Add tests for contexts in preallocated memory
ba12dd08d Check arguments of _preallocated functions
5feadde46 Support cloning a context into preallocated memory
c4fd5dab4 Switch to a single malloc call
ef020de16 Add size constants for preallocated memory
1bf7c056b Prepare for manual memory management in preallocated memory
248bffb05 Guard memcmp in tests against mixed size inputs.
36698dcfe Merge ElementsProject#596: Make WINDOW_G configurable
a61a93ff5 Clean up ./configure help strings
2842dc523 Make WINDOW_G configurable
1a02d6ce5 Merge ElementsProject#626: Revert "Merge ElementsProject#620: Install headers automatically"
662918cb2 Revert "Merge ElementsProject#620: Install headers automatically"
14c7dbd44 Simplify control flow in DER parsing
ec8f20bab Avoid out-of-bound pointers and integer overflows in size comparisons
01ee1b3b3 Parse DER-enconded length into a size_t instead of an int
912680ed8 Merge ElementsProject#561: Respect LDFLAGS and #undef STATIC_PRECOMPUTATION if using basic config
91fae3ace Merge ElementsProject#620: Install headers automatically
5df77a0ed Merge ElementsProject#533: Make sure we're not using an uninitialized variable in secp256k1_wnaf_const(...)
975e51e0d Merge ElementsProject#617: Pass scalar by reference in secp256k1_wnaf_const()
735fbde04 Merge ElementsProject#619: Clear a copied secret key after negation
16e86150d Install headers automatically
069870d92 Clear a copied secret key after negation
8979ec0d9 Pass scalar by reference in secp256k1_wnaf_const()
84a808598 Merge ElementsProject#612: Allow field_10x26_arm.s to compile for ARMv7 architecture
d4d270a59 Allow field_10x26_arm.s to compile for ARMv7 architecture
b19c00006 Merge ElementsProject#607: Use size_t shifts when computing a size_t
4d01bc2d9 Merge ElementsProject#606: travis: Remove unused sudo:false
e6d01e934 Use size_t shifts when computing a size_t
7667532bd travis: Remove unused sudo:false
248f04661 Make sure we're not using an uninitialized variable in secp256k1_wnaf_const(...)
9ab96f7b1 Use trivial algorithm in ecmult_multi if scratch space is small
ee99f12f3 Merge ElementsProject#599: Switch x86_64 asm to use "i" instead of "n" for immediate values.
d58bc93f2 Switch x86_64 asm to use "i" instead of "n" for immediate values.
05362ee04 Merge ElementsProject#597: Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
83483869a Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
aa15154a4 Merge ElementsProject#568: Fix integer overflow in ecmult_multi_var when n is large
2277af5ff Fix integer overflow in ecmult_multi_var when n is large
dbed75d96 Undefine `STATIC_PRECOMPUTATION` if using the basic config
310111e09 Keep LDFLAGS if `--coverage`
85d0e1bcc Merge ElementsProject#591: Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
14196379e Merge ElementsProject#580: Add trivial ecmult_multi algorithm which does not require a scratch space
a697d82da Add trivial ecmult_multi to the benchmark tool
bade61741 Add trivial ecmult_multi algorithm. It is selected when no scratch space is given and just multiplies and adds the points.
5545e13de Merge ElementsProject#584: configure: Use CFLAGS_FOR_BUILD when checking native compiler
20c5869df Merge ElementsProject#516: improvements to random seed in src/tests.c
b76e45d5d Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
870a97764 Merge ElementsProject#562: Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
be40c4d0b Fixup for C90 mixed declarations.
c71dd2c08 Merge ElementsProject#509: Fix algorithm selection in bench_ecmult
6492bf88c Merge ElementsProject#518: Summarize build options after running configure
0e9ada194 Merge ElementsProject#567: Correct order of libs returned on pkg-config --libs --static libsecp2…
e96901a4b Merge ElementsProject#587: Make randomization of a non-signing context a noop
58df8d03a Merge ElementsProject#511: Portability fix for the configure scripts generated
2ebdad772 Merge ElementsProject#552: Make constants static:
1c131affd Merge ElementsProject#551: secp256k1_fe_sqrt: Verify that the arguments don't alias.
ba698f883 Merge ElementsProject#539: Assorted minor corrections
949e85b00 Merge ElementsProject#550: Optimize secp256k1_fe_normalize_weak calls.
a34bcaadf Actually pass CFLAGS_FOR_BUILD and LDFLAGS_FOR_BUILD to linker
2d5f4cebd configure: Use CFLAGS_FOR_BUILD when checking native compiler
b408c6a8b Merge ElementsProject#579: Use __GNUC_PREREQ for detecting __builtin_expect
619837521 Make randomization of a non-signing context a noop
c663397f4 Use __GNUC_PREREQ for detecting __builtin_expect
3cb057f84 Fix possible integer overflow in DER parsing
89a20a894 Correct order of libs returned on pkg-config --libs --static libsecp256k1 call.
d3cb1f95e Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
496c5b43b Make constants static: static const secp256k1_ge secp256k1_ge_const_g; static const int CURVE_B;
bf8b86cc0 secp256k1_fe_sqrt: Verify that the arguments don't alias.
9bd89c836 Optimize secp256k1_fe_normalize_weak calls. Move secp256k1_fe_normalize_weak calls out of ECMULT_TABLE_GET_GE and ECMULT_TABLE_GET_GE_STORAGE and into secp256k1_ge_globalz_set_table_gej instead.
52ab96fed clean dependendies in field_*_impl.h
deff5edd4 Correct math typos in field_*.h
4efb3f8dd Add check that restrict pointers don't alias with all parameters.
3965027c8 Summarize build options in configure script
0f0517369 Fix algorithm selection in bench_ecmult
8b3841c91 fix bug in fread() failure check
cddef0c0b tests: add warning message when /dev/urandom fails
270f6c80d Portability fix for the configure scripts generated
REVERT: 43dd1f4fe Merge pull request ElementsProject#40 from instagibbs/size_t
REVERT: 6532fa0a9 Merge pull request ElementsProject#39 from instagibbs/more_builds
REVERT: 2b2429dfa rangeproof: reduce iteration count in unit tests
REVERT: 12b0e5dda Enable more builds with rest of experimental flags
REVERT: 8c444eef6 use proper types for rangeproof min/max
REVERT: 53ad841ca Add explanation about how BIP32 unhardened derivation can be used to simplify whitelisting
REVERT: 71c5fe0f6 Add comment to explain effect of max_n_iterations in surjectionproof_init
REVERT: 85fd42fb7 add unit test for generator and pedersen commitment roundtripping
REVERT: 2ccf88541 rangeproof: fix serialization of pedersen commintments
REVERT: 60c173b64 rangeproof: verify correctness of pedersen commitments when parsing
REVERT: 32d7526cd generator: verify correctness of point when parsing
REVERT: ae14e8a9d rangeproof: check that points deserialize correctly when verifying rangeproof
REVERT: 44fe43d75 rangeproof: add fixed vector test case
REVERT: e065d7df9 Expose generator in shared library
REVERT: fb1ba329a fix spelling in documentation
REVERT: fb75faa14 Test for rejection of trailing bytes in range proofs
REVERT: 9b2cf1708 Test for rejection of trailing bytes in surjection proofs
REVERT: a3a1800ba Reject surjection proofs with trailing garbage
REVERT: 0c77ae9a7 Minor bugfix. Wrong length due to NUL character.
REVERT: b1f31bc4b Add whitelisting benchmark
REVERT: 52a9f8f8f add whitelist_impl.h to include for dist
REVERT: a707865bc generator: add API tests
REVERT: ec1ef040f generator: remove unnecessary ARG_CHECK from generate()
REVERT: b0e9aa828 Fix generator makefile
REVERT: 526c65499 Fix pedersen_blind_generator_blind_sum return value documentation
REVERT: b51886e72 Add n_keys argument to whitelist_verify
REVERT: 37c57de08 Fix checks of whitelist serialize/parse arguments
REVERT: 9b8a9d91e whitelist: fix serialize/parse API to take serialized length
REVERT: 7f1751560 Fix include/secp256k1_rangeproof.h function argument documentation.
REVERT: 0d817020d rangeproof: add API tests
REVERT: 417bb0643 surjectionproof: rename unit test functions to be more consistent with other modules
REVERT: 1e2d5c1a2 surjectionproof: add API unit tests
REVERT: 7878a298b surjectionproof: tests_impl.h s/assert/CHECK/g
REVERT: e609591b6 rangeproof: fix memory leak in unit tests
REVERT: 0c17f7972 add surjection proof module
REVERT: c174f0c60 Implement ring-signature based whitelist delegation scheme
REVERT: a2bc6604f rangeproof: several API changes
REVERT: 21bfb3c91 Expose generator in pedersen/rangeproof API
REVERT: f4620de04 Constant-time generator module
REVERT: d46fc3c19 rangeproof: expose sidechannel message field in the signing API
REVERT: cf40b1bed [RANGEPROOF BREAK] Use quadratic residue for tie break and modularity cleanup
REVERT: 6d28767c7 Get rid of precomputed H tables (Pieter Wuille)
REVERT: ae1e576f6 Pedersen commitments, borromean ring signatures, and ZK range proofs.
REVERT: efc61dc0c Add 64-bit integer utilities

git-subtree-dir: src/secp256k1
git-subtree-split: 44db4d801fff3cd94105136cb443d603683baad2
@stevenroose stevenroose deleted the catchup branch February 2, 2020 14:37
gwillen pushed a commit that referenced this pull request Feb 27, 2021
0129b77767 Merge #113: Upstream PRs  #849 #851
e1756dfddc Merge commits '3a106966 8f0c6f15 ' into temp-merge-851
7093e633b8 Merge pull request #106 from apoelstra/2020-11-reduce-test-rounds
29f9a7dc62 reduce test rounds for rangeproof and surjectionproof
8f0c6f1545 Merge #851: make test count iteration configurable by environment variable
f4fa8d226a forbid a test iteration of 0 or less
ff4714e641 Merge pull request #105 from jonasnick/update-musig
3fb4d6db9c travis: run musig test whenever schnorrsig tests are run
b9d91b3ecb musig: add pubkey_tweak_add function to allow taproot tweaking
0d71b6c61f Merge pull request #112 from jgriffiths/missed_rename
4721bec0ef Update renamed decl missed in e0ced690cff035b61763686cb69b7d06571e23e2
ebf57dc2f5 Merge pull request #107 from thomaseizinger/secp256k1-zkp
4d20713425 Remove unused context initializer functions
3a106966aa Merge #849: Convert Sage code to Python 3 (as used by Sage >= 9)
13c88efed0 Convert Sage code to Python 3 (as used by Sage >= 9)
0ce4554881 make test count iteration configurable by environment variable
38a8b20991 musig: fix memory leak in musig test
5b4eb18ec5 musig: shorten partial nonce byte array from 33 to 32 bytes
62f0b2d867 musig: make musig partial nonces byte arrays instead of "pubkeys"
73792e4a27 musig: represent a combined_nonce as an xonly_pubkey
2117e7466a musig: improve variable naming and be consistent with schnorrsig module
ebc31f1f9d musig: add ARG_CHECKs to functions to help debuggability
ac2d0e6697 musig: add magic to session to detect if session is uninitalized
29b4bd85d7 musig: simplify state machine by adding explicit round to session struct
6370bdd537 Merge pull request #104 from jonasnick/temp-merge-835
e0ced690cf Rename rands64 to testrandi64
b0917f3de1 Merge remote-tracking branch 'upstream/master' into temp-merge-835
81052ca411 Merge #103: Merge upstream schnorrsig PR
9e5939d284 Merge #835: Don't use reserved identifiers memczero and benchmark_verify_t
96b9236c42 re-enable musig module
23900a0d86 Fix the MuSig module after integrating bip-schnorr updates
005fe79262 Merge commit '8ab24e8d' into tmp
a11250330b (actually) remove schnorrsig module
bac746c55e (temporarily) disable musig module
d0a83f7328 Merge #839: Prevent arithmetic on NULL pointer if the scratch space is too small
903b16aa6c Merge #840: Return NULL early in context_preallocated_create if flags invalid
1f4dd03838 Typedef (u)int128_t only when they're not provided by the compiler
3967d96bf1 Merge #838: Make autotools check for all the used openssl functions
3734b68200 Configure echo if openssl tests are enabled
ebfa2058e9 Return NULL early in context_preallocated_create if flags invalid
6f54e69f03 Merge #841: Avoids a potentially shortening size_t to int cast in strauss_wnaf_
29a299e373 Run the undefined behaviour sanitizer on Travis
7506e064d7 Prevent arithmetic on NULL pointer if the scratch space is too small
8893f42438 Avoids a potentially shortening size_t to int cast in strauss_wnaf_
e6692778d3 Modify bitcoin_secp.m4's openssl check to call all the functions that we use in the tests/benchmarks. That way linking will fail if those symbols are missing
ac05f61fcf Merge #809: Stop treating ECDH as experimental
e6e3d5da2f travis: add schnorrsig to valgrind and big endian platform test
353dff156f Stop treating ECDH as experimental
e89278f211 Don't use reserved identifiers memczero and benchmark_verify_t
c6b6b8f1bb Merge #830: Rip out non-endomorphism code + dependencies
c582abade1 Consistency improvements to the comments
63c6b71616 Reorder comments/function around scalar_split_lambda
2edc514c90 WNAF of lambda_split output has max size 129
4232e5b7da Rip out non-endomorphism code
ebad8414b0 Check correctness of lambda split without -DVERIFY
fe7fc1fda8 Make lambda constant accessible
9d2f2b44d8 Add tests to exercise lambda split near bounds
9aca2f7f07 Add secp256k1_split_lambda_verify
acab934d24 Detailed comments for secp256k1_scalar_split_lambda
73acc8fef6 Merge pull request #102 from jonasnick/temp-merge-797
8b70795b5e Fix BE platforms by updating endianness macros to match upstream
76ed922a5f Increase precision of g1 and g2
6173839c90 Switch to our own memcmp function
d1b13b0014 Merge commit 'f3733c54' into temp-merge-797
23bf5b732b Merge pull request #101 from jonasnick/temp-merge-778
0a5b60d8b0 Merge commit '6034a04f' into temp-merge-778
caa5d24446 Merge #99: [upstream PR #774]: tests: Abort if malloc() fails during context cloning tests
1789183cba Merge commit '40412b19' into temp-merge-774
63150ab4da Merge #827: Rename testrand functions to have test in name
c5257aed0b Merge #821: travis: Explicitly set --with-valgrind
bb1f54280f Merge #818: Add static assertion that uint32_t is unsigned int or wider
a45c1fa63c Rename testrand functions to have test in name
5006895bd6 Merge #808: Exhaustive test improvements + exhaustive schnorrsig tests
a39b08d672 Merge #95: [upstream PR #741]: Remove unnecessary sign variable from wnaf_const
a3a3a17f47 Merge pull request #94 from apoelstra/temp-merge-1309c03c45beece646a7d21fdb6a0e3d38adee2b
4eecb4d6ef travis: VALGRIND->RUN_VALGRIND to avoid confusion with WITH_VALGRIND
66a765c775 travis: Explicitly set --with-valgrind
d7838ba6a6 Merge #813: Enable configuring Valgrind support
7ceb0b7611 Merge #819: Enable -Wundef warning
8b7dcdd955 Add exhaustive test for extrakeys and schnorrsig
08d7d89299 Make pubkey parsing test whether points are in the correct subgroup
87af00b511 Abstract out challenge computation in schnorrsig
63e1b2aa7d Disable output buffering in tests_exhaustive.c
39f67dd072 Support splitting exhaustive tests across cores
e99b26fcd5 Give exhaustive_tests count and seed cmdline inputs
49e6630bca refactor: move RNG seeding to testrand
b110c106fa Change exhaustive test groups so they have a point with X=1
cec7b18a34 Select exhaustive lambda in function of order
78f6cdfaae Make the curve B constant a secp256k1_fe
d7f39ae4b6 Delete gej_is_valid_var: unused outside tests
8bcd78cd79 Make secp256k1_scalar_b32 detect overflow in scalar_low
c498366e5b Move exhaustive tests for recovery to module
be31791543 Make group order purely compile-time in exhaustive tests
e73ff30922 Enable -Wundef warning
c0041b5cfc Add static assertion that uint32_t is unsigned int or wider
4ad408faf3 Merge #782: Check if variable=yes instead of if var is set in travis.sh
412bf874d0 configure: Allow specifying --with[out]-valgrind explicitly
34debf7a6d Modify .travis.yml to explictly pass no in env vars instead of setting to nothing
a0e99fc121 Merge #814: tests: Initialize random group elements fully
5738e8622d tests: Initialize random group elements fully
c9939ba55d Merge #812: travis: run bench_schnorrsig
a51f2af62b travis: run bench_schnorrsig
8ab24e8dad Merge #558: Add schnorrsig module which implements BIP-340 compliant signatures
f3733c5433 Merge #797: Fix Jacobi benchmarks and other benchmark improvements
cb5524adc5 Add benchmark for secp256k1_ge_set_gej_var
5c6af60ec5 Make jacobi benchmarks vary inputs
d0fdd5f009 Randomize the Z coordinates in bench_internal
c7a3424c5f Rename bench_internal variables
875d68b95f Merge #699: Initialize field elements when resulting in infinity
54caf2e74f Merge #799: Add fallback LE/BE for architectures with known endianness + SHA256 selftest
f431b3f28a valgrind_ctime_test: Add schnorrsig_sign
16ffa9d97c schnorrsig: Add taproot test case
8dfd53ee3f schnorrsig: Add benchmark for sign and verify
4e43520026 schnorrsig: Add BIP-340 compatible signing and verification
7332d2db6b schnorrsig: Add BIP-340 nonce function
7a703fd97d schnorrsig: Init empty experimental module
eabd9bc46a Allow initializing tagged sha256
6fcb5b845d extrakeys: Add keypair_xonly_tweak_add
58254463f9 extrakeys: Add keypair struct with create, pub and pub_xonly
f0010349b8 Separate helper functions for pubkey_create and seckey_tweak_add
910d9c284c extrakeys: Add xonly_pubkey_tweak_add & xonly_pubkey_tweak_add_test
176bfb1110 Separate helper function for ec_pubkey_tweak_add
4cd2ee474d extrakeys: Add xonly_pubkey with serialize, parse and from_pubkey
f49c9896b0 Merge #806: Trivial: Add test logs to gitignore
aabf00c155 Merge #648: Prevent ints from wrapping around in scratch space functions
f5adab16a9 Merge #805: Remove the extremely outdated TODO file.
bceefd6547 Add test logs to gitignore
1c325199d5 Remove the extremely outdated TODO file.
47e6618e11 extrakeys: Init empty experimental module
3e08b02e2a Make the secp256k1_declassify argument constant
8bc6aeffa9 Add SHA256 selftest
670cdd3f8b Merge #798: Check assumptions on integer implementation at compile time
5e5fb28b4a Use additional system macros to figure out endianness
7c068998ba Compile-time check assumptions on integer types
02b6c87b52 Add support for (signed) __int128
979961c506 Merge #787: Use preprocessor macros instead of autoconf to detect endianness
887bd1f8b6 Merge #793: Make scalar/field choice depend on C-detected __int128 availability
0dccf98a21 Use preprocessor macros instead of autoconf to detect endianness
b2c8c42cf1 Merge #795: Avoid linking libcrypto in the valgrind ct test.
57d3a3c64c Avoid linking libcrypto in the valgrind ct test.
79f1f7a4f1 Autodetect __int128 availability on the C side
0d7727f95e Add SECP256K1_FE_STORAGE_CONST_GET to 5x52 field
805082de11 Merge #696: Run a Travis test on s390x (big endian)
39295362cf Test travis s390x (big endian)
ef37761fee Change travis.sh to check if variables are equal to yes instead of not-empty. Before this, setting `VALGRIND=wat` was considered as true, and to make it evaluate as false you had to unset the variable `VALGRIND=` but not it checks if `VALGRIND=yes` and if it's not `yes` then it's evaluated to false
6034a04fb1 Merge #778: secp256k1_gej_double_nonzero supports infinity
f60915906d Merge #779: travis: Fix argument quoting for ./configure
9e49a9b255 travis: Fix argument quoting for ./configure
18d36327fd secp256k1_gej_double_nonzero supports infinity
214cb3c321 Merge #772: Improve constant-timeness on PowerPC
40412b1930 Merge #774: tests: Abort if malloc() fails during context cloning tests
2e1b9e0458 tests: Abort if malloc() fails during context cloning tests
67a429f31f Suppress a harmless variable-time optimization by clang in _int_cmov
5b196338f0 Remove redundant "? 1 : 0" after comparisons in scalar code
3e5cfc5c73 Merge #741: Remove unnecessary sign variable from wnaf_const
66bb9320c0 Merge #773: Fix some compile problems on weird/old compilers.
1309c03c45 Fix some compile problems on weird/old compilers.
fabc8f74e7 Fix typo in MuSig documentation.
96201b4f6e Require message in musig protocol in an earlier state. In particular, remove the set_msg function and require the message in get_public_nonce at the latest.
4fd0d56e37 Fix my_index in musig state machine tests
b74f2dc478 Remove mentions of DER in H derivation.
b368a5d163 Fix ARG_NONNULL macro usage in musig include
bedff79848 Add cplusplus directive to musig include
9957307c3f Fix explanation of H derivation. It doesn't use DER encoding.
d924027765 Add tweak32 parameter to musig_partial_sig_combine which allows to sign for p2c/taproot commitments
a4410ac779 Add musig module tests to travis
d6738e890e surjection proof: Reject proofs with too many used inputs in reduced mode
bd70820123 allow reducing surjection proof size (to lower generation stack usage)
56f69d979f surjectionproof: introduce `SECP256K1_SURJECTIONPROOF_MAX_USED_INPUTS` constant and set it to 16
b8a3ff5f3b surjectionproof: reduce stack usage
68d937fe11 surjectionproof: fix malleability in surjection proof parsing
41bc9ce129 surjectionproof: add test vectors for "set padding bits"
b0644d4ab3 surjectionproof: add fixed test vectors
c0415eb0cb Fix read of wrong buffer (and OOB) in surjectionproof tests
00fffeb172 Improve comments for surctionproof init+alloc/destroy funcs
2dc868f35b work in progress: add _allocate_initialized/destroy funcs
0d4ee3c62d Improve explanation of key cancellation attack in whitelist.md
2a1750dedd Clarify how to derive alternative generator H
ed7394f005 Add bench_generator and bench_rangeproof to .gitignore
9dd117fd2b Clean up ./configure help strings (zkp extensions)
f35b5e271f Fix a small typo in the generator parameter name
068f03c35b generator: remove `CHECK` abort calls exposed by public API
3424cb1fa3 musig: add user documentation
13ef445721 Add 3-of-3 MuSig example
b86c210747 Add MuSig module which allows creating n-of-n multisignatures and adaptor signatures.
c59c602dd6 Add schnorrsig module which implements BIP-schnorr [0] compatible signing, verification and batch verification.
a1f16a0a53 add chacha20 function
3cdc02ef8a use proper types for rangeproof min/max
cf21c9d715 rangeproof: reduce iteration count in unit tests
0dfb356f95 Enable more builds with rest of experimental flags
4c231568fb Add explanation about how BIP32 unhardened derivation can be used to simplify whitelisting
f416e039bb Add comment to explain effect of max_n_iterations in surjectionproof_init
936d62f248 add unit test for generator and pedersen commitment roundtripping
e06540de8c rangeproof: fix serialization of pedersen commintments
edb879f578 rangeproof: verify correctness of pedersen commitments when parsing
fca4c3b62f generator: verify correctness of point when parsing
c50b218698 rangeproof: check that points deserialize correctly when verifying rangeproof
c33e597245 rangeproof: add fixed vector test case
0c5cb7cd08 Expose generator in shared library
dbc49df80c fix spelling in documentation
47be098bac Test for rejection of trailing bytes in range proofs
16aaa4a02c Test for rejection of trailing bytes in surjection proofs
949e994cb3 Reject surjection proofs with trailing garbage
c87618157e Minor bugfix. Wrong length due to NUL character.
fc3dc94049 Add whitelisting benchmark
edc7cb6cdd add whitelist_impl.h to include for dist
4320490e88 generator: add API tests
126493ef01 generator: remove unnecessary ARG_CHECK from generate()
253f131310 Fix generator makefile
3997128ad9 Fix pedersen_blind_generator_blind_sum return value documentation
04f4c09111 Add n_keys argument to whitelist_verify
dbf3d752a8 Fix checks of whitelist serialize/parse arguments
29d0d562dc whitelist: fix serialize/parse API to take serialized length
660ad39fb3 Fix include/secp256k1_rangeproof.h function argument documentation.
e13bdf2f23 rangeproof: add API tests
18c5c62b45 surjectionproof: rename unit test functions to be more consistent with other modules
5f1ad03d00 surjectionproof: add API unit tests
f858a4e3d5 surjectionproof: tests_impl.h s/assert/CHECK/g
002002e735 rangeproof: fix memory leak in unit tests
ba8b4f53ef add surjection proof module
8c77fe1590 Implement ring-signature based whitelist delegation scheme
94425d4a67 rangeproof: several API changes
f6c84a02f3 Expose generator in pedersen/rangeproof API
360e218043 Constant-time generator module
e7a8a5f638 rangeproof: expose sidechannel message field in the signing API
a88db4a744 [RANGEPROOF BREAK] Use quadratic residue for tie break and modularity cleanup
16618fcd8d Pedersen commitments, borromean ring signatures, and ZK range proofs.
3cf8f70ba1 Add 64-bit integer utilities
2309c7dd4a Merge #769: Undef HAVE___INT128 in basic-config.h to fix gen_context compilation
22e578bb11 Undef HAVE___INT128 in basic-config.h to fix gen_context compilation
3f4a5a10e4 Merge #765: remove dead store in ecdsa_signature_parse_der_lax
f00d6575ca remove dead store in ecdsa_signature_parse_der_lax
dbd41db16a Merge #759: Fix uninitialized variables in ecmult_multi test
2e7fc5b537 Fix uninitialized variables in ecmult_multi test
2ed54da18a Merge #755: Recovery signing: add to constant time test, and eliminate non ct operators
28609507e7 Add tests for the cmov implementations
73596a85a2 Add ecdsa_sign_recoverable to the ctime tests
2876af4f8d Split ecdsa_sign logic into a new function and use it from ecdsa_sign and recovery
5e1c885efb Merge #754: Fix uninit values passed into cmov
f79a7adcf5 Add valgrind uninit check to cmovs output
05d315affe Merge #752: autoconf: Use ":" instead of "dnl" as a noop
a39c2b09de Fixed UB(arithmetics on uninit values) in cmovs
3a6fd7f636 Merge #750: Add macOS to the CI
5e8747ae2a autoconf: Use ":" instead of "dnl" as a noop
71757da5cc Explictly pass SECP256K1_BENCH_ITERS to the benchmarks in travis.sh
99bd661d71 Replace travis_wait with a loop printing "\a" to stdout every minute
bc818b160c Bump travis Ubuntu from xenial(16.04) to bionic(18.04)
0c5ff9066e Add macOS support to travis
b6807d91d8 Move travis script into a standalone sh file
f39f99be0e Merge #701: Make ec_ arithmetic more consistent and add documentation
37dba329c6 Remove unnecessary sign variable from wnaf_const
6bb0b77e15 Fix test_constant_wnaf for -1 and add a test for it.
39198a03ea Merge #732: Retry if r is zero during signing
59a8de8f64 Merge #742: Fix typo in ecmult_const_impl.h
4e284655d9 Fix typo in ecmult_const_impl.h
f862b4ca13 Merge #740: Make recovery/main_impl.h non-executable
ffef45c98a Make recovery/main_impl.h non-executable
2361b3719a Merge #735: build: fix OpenSSL EC detection on macOS
3b7d26b23c build: add SECP_TEST_INCLUDES to bench_verify CPPFLAGS
84b5fc5bc3 build: fix OpenSSL EC detection on macOS
37ed51a7ea Make ecdsa_sig_sign constant-time again after reverting 25e3cfb
93d343bfc5 Revert "ecdsa_impl: replace scalar if-checks with VERIFY_CHECKs in ecdsa_sig_sign"
7e3952ae82 Clarify documentation of tweak functions.
89853a0f2e Make tweak function documentation more consistent.
41fc785602 Make ec_privkey functions aliases for ec_seckey_negate, ec_seckey_tweak_add and ec_seckey_mul
22911ee6da Rename private key to secret key in public API (with the exception of function names)
5a73f14d6c Mention that value is unspecified for In/Out parameters if the function returns 0
f03df0e6d7 Define valid ECDSA keys in the documentation of seckey_verify
5894e1f1df Return 0 if the given seckey is invalid in privkey_negate, privkey_tweak_add and privkey_tweak_mul
8f814cddb9 Add test for boundary conditions of scalar_set_b32 with respect to overflows
3fec982608 Use scalar_set_b32_seckey in ecdsa_sign, pubkey_create and seckey_verify
9ab2cbe0eb Add scalar_set_b32_seckey which does the same as scalar_set_b32 and also returns whether it's a valid secret key
4f27e344c6 Merge #728: Suppress a harmless variable-time optimization by clang in memczero
01993878bb Add test for memczero()
52a03512c1 Suppress a harmless variable-time optimization by clang in memczero
8f78e208ad Merge #722: Context isn't freed in the ECDH benchmark
ed1b91171a Merge #700: Allow overriding default flags
85b35afa76 Add running benchmarks regularly and under valgrind in travis
ca4906b02e Pass num of iters to benchmarks as variable, and define envvar
02dd5f1bbb free the ctx at the end of bench_ecdh
e9fccd4de1 Merge #708: Constant-time behaviour test using valgrind memtest.
08fb6c4926 Run valgrind_ctime_test in travis
3d2302257f Constant-time behaviour test using valgrind memtest.
96d8ccbd16 Merge #710: Eliminate harmless non-constant time operations on secret data.
0585b8b2ee Merge #718: Clarify that a secp256k1_ecdh_hash_function must return 0 or 1
7b50483ad7 Adds a declassify operation to aid constant-time analysis.
34a67c773b Eliminate harmless non-constant time operations on secret data.
ca739cba23 Compile with optimization flag -O2 by default instead of -O3
eb45ef3384 Clarify that a secp256k1_ecdh_hash_function must return 0 or 1
856a01d6ad Merge #714: doc: document the length requirements of output parameter.
d72b9e2483 Merge #682: Remove Java Native Interface
4b48a43106 doc: document the length requirements of output parameter.
1b4d256e2e Merge #713: Docstrings
dabfea7e21 field: extend docstring of secp256k1_fe_normalize
dc7d8fd9e2 scalar: extend docstring of secp256k1_scalar_set_b32
074ab582dd Merge #704: README: add a section for test coverage
acb7f97eb8 README: add a section for test coverage
227a4f2d07 Merge #709: Remove secret-dependant non-constant time operation in ecmult_const.
d567b779fe Clarify comments about use of rzr on ge functions and abs function.
2241ae6d14 Remove secret-dependant non-constant time operation in ecmult_const.
642cd062bd Remove Java Native Interface
83fb1bcef4 Remove -O2 from default CFLAGS because this would override the -O3 flag (see AC_PROG_CC in the Autoconf manual)
ecba8138ec Append instead of Prepend user-CFLAGS to default CFLAGS allowing the user to override default variables
613c34cd86 Remove test in configure.ac because it doesn't have an effect
f45d897101 Merge #703: Overhaul README.md
2e759ec753 Overhaul README.md
d644dda5c9 Merge #689: Remove "except in benchmarks" exception for fp math
bde2a32286 Convert bench.h to fixed-point math
47a7b8382f Clear field elements when writing infinity
61d1ecb028 Added test with additions resulting in infinity
387d723c3f Merge #679: Add SECURITY.md
0db61d25c9 Merge #685: Fix issue where travis does not show the ./tests seed…
a0771d15e6 Explicitly disable buffering for stderr in tests
fb424fbba2 Make travis show the ./tests seed by removing stdout buffering and always cat tests.log after a travis run.
22a6031184 Merge #690: Add valgrind check to travis
544002c008 Merge #678: Preventing compiler optimizations in benchmarks without a memory fence
dd98cc988f travis: Added a valgrind test without endro and enabled recovery+ecdh
b4c1382a87 Add valgrind check to travis
0c774d89e6 Merge #688: Fix ASM setting in travis
5c5f71eea5 Fix ASM setting in travis
e2625f8a98 Merge #684: Make no-float policy explicit
bae1bea3c4 Make no-float policy explicit
78c3836341 Add SECURITY.md
362bb25608 Modified bench_scalar_split so it won't get optimized out
73a30c6b58 Added accumulators and checks on benchmarks so they won't get optimized out
770b3dcd6f Merge #677: Remove note about heap allocation in secp256k1_ecmult_odd_multiples_table_storage_var
b76142ff25 Remove note about heap allocation in secp256k1_ecmult_odd_multiples_table_storage_var which was removed in 47045270fa90f81205d989f7107769bce1e71c4d
137d304a6b Merge #647: Increase robustness against UB in secp256k1_scalar_cadd_bit
0d9540b13f Merge #664: Remove mention of ec_privkey_export because it doesn't exist
59782c68b4 Remove mention of ec_privkey_export because it doesn't exist
96cd94e385 Merge #337: variable sized precomputed table for signing
dcb2e3b3ff variable signing precompute table
b4bff99028 Merge #661: Make ./configure string consistent
a467047e11 Make ./configure string consistent
e729cc7f5a Merge #657: Fix a nit in the recovery tests
b64a2e2597 Fix a nit in the recovery tests
e028aa33d3 Merge #650: secp256k1/src/tests.c:  Properly handle sscanf return value
f1e11d363d Merge #654: Fix typo (∞)
ef83281c3a Merge pull request #656 from real-or-random/patch-1
556caad2ca Fix typo in docs for _context_set_illegal_callback
0d82732a9a Improve VERIFY_CHECK of overflow in secp256k1_scalar_cadd_bit. This added check ensures that any curve order overflow doesn't go undetected due a uint32_t overflow.
786dfb49f5 Merge #583: JNI: fix use sig array
e95f8ab098 Merge #644: Avoid optimizing out a verify_check
384f55606a Merge #652: README.md: update instruction to run tests
ee56accd47 Merge #651: Fix typo in secp256k1_preallocated.h
7b9b117230 Merge #640: scalar_impl.h: fix includes
d99bec2e21 Merge #655: jni: Use only Guava for hex encoding and decoding
2abcf951af jni: Use only Guava for hex encoding and decoding
271582b3b7 Fix typo
60f7f2de5d Don't assume that ALIGNMENT > 1 in tests
ada6361dec Use ROUND_TO_ALIGN in scratch_create
8ecc6ce50e Add check preventing rounding to alignment from wrapping around in scratch_alloc
4edaf06fb0 Add check preventing integer multiplication wrapping around in scratch_max_allocation
ce6d438266 README.md: update instruction to run tests
b1e68cb8e6 Fix typo in secp256k1_preallocated.h
a11c76c59a secp256k1/src/tests.c:  Properly handle sscanf return value
8fe63e5654 Increase robustness against UB. Thanks to elichai2 who noted that the literal '1' is a signed integer, and that shifting a signed 32-bit integer by 31 bits causes an overflow and yields undefined behaviour. While 'scalar_low_impl''s 'secp256k1_scalar_cadd_bit' is only used for testing purposes and currently the 'bit' parameter is only 0 or 1, it is better to avoid undefined behaviour in case the used domain of 'secp256k1_scalar_cadd_bit' expands.
94ae7cbf83 Moved a dereference so the null check will be before the dereferencing
2cb73b1064 scalar_impl.h: fix includes
fa33017135 Merge #634: Add a descriptive comment for secp256k1_ecmult_const.
ee9e68cd30 Add a descriptive comment for secp256k1_ecmult_const.
d0d738d32d Merge #631: typo in comment for secp256k1_ec_pubkey_tweak_mul ()
6914c25276 typo in comment for secp256k1_ec_pubkey_tweak_mul ()
e541a90ef6 Merge #629: Avoid calling _is_zero when _set_b32 fails.
f34b0c3f35 Merge #630: Note intention of timing sidechannel freeness.
8d1563b0ff Note intention of timing sidechannel freeness.
1669bb2865 Merge #628: Fix ability to compile tests without -DVERIFY.
ecc94abcc8 Merge #627: Guard memcmp in tests against mixed size inputs.
544435fc90 Merge #578: Avoid implementation-defined and undefined behavior when dealing with sizes
143dc6e9ee Merge #595: Allow to use external default callbacks
e49f7991c2 Add missing #(un)defines to base-config.h
77defd2c3b Add secp256k1_ prefix to default callback functions
908bdce64e Include stdio.h and stdlib.h explicitly in secp256k1.c
5db782e655 Allow usage of external default callbacks
6095a863fa Replace CHECKs for no_precomp ctx by ARG_CHECKs without a return
cd473e02c3 Avoid calling secp256k1_*_is_zero when secp256k1_*_set_b32 fails.
6c36de7a33 Merge #600: scratch space: use single allocation
98836b11f0 scratch: replace frames with "checkpoint" system
7623cf2b97 scratch: save a couple bytes of unnecessarily-allocated memory
a7a164f2c6 scratch: rename `max_size` to `size`, document that extra will actually be allocated
5a4bc0bb95 scratch: unify allocations
c2b028a281 scratch space: thread `error_callback` into all scratch space functions
0be1a4ae62 scratch: add magic bytes to beginning of structure
92a48a764d scratch space: use single allocation
40839e21b9 Merge #592: Use trivial algorithm in ecmult_multi if scratch space is small
dcf392027b Fix ability to compile tests without -DVERIFY.
a484e0008b Merge #566: Enable context creation in preallocated memory
0522caac8f Explain caller's obligations for preallocated memory
238305fdbb Move _preallocated functions to separate header
695feb6fbd Export _preallocated functions
814cc78d71 Add tests for contexts in preallocated memory
ba12dd08da Check arguments of _preallocated functions
5feadde462 Support cloning a context into preallocated memory
c4fd5dab45 Switch to a single malloc call
ef020de16f Add size constants for preallocated memory
1bf7c056ba Prepare for manual memory management in preallocated memory
248bffb052 Guard memcmp in tests against mixed size inputs.
36698dcfee Merge #596: Make WINDOW_G configurable
a61a93ff50 Clean up ./configure help strings
2842dc523e Make WINDOW_G configurable
1a02d6ce51 Merge #626: Revert "Merge #620: Install headers automatically"
662918cb29 Revert "Merge #620: Install headers automatically"
14c7dbd444 Simplify control flow in DER parsing
ec8f20babd Avoid out-of-bound pointers and integer overflows in size comparisons
01ee1b3b3c Parse DER-enconded length into a size_t instead of an int
912680ed86 Merge #561: Respect LDFLAGS and #undef STATIC_PRECOMPUTATION if using basic config
91fae3ace0 Merge #620: Install headers automatically
5df77a0eda Merge #533: Make sure we're not using an uninitialized variable in secp256k1_wnaf_const(...)
975e51e0d9 Merge #617: Pass scalar by reference in secp256k1_wnaf_const()
735fbde04e Merge #619: Clear a copied secret key after negation
16e86150d0 Install headers automatically
069870d92a Clear a copied secret key after negation
8979ec0d9a Pass scalar by reference in secp256k1_wnaf_const()
84a808598b Merge #612: Allow field_10x26_arm.s to compile for ARMv7 architecture
d4d270a59c Allow field_10x26_arm.s to compile for ARMv7 architecture
b19c000063 Merge #607: Use size_t shifts when computing a size_t
4d01bc2d9c Merge #606: travis: Remove unused sudo:false
e6d01e9347 Use size_t shifts when computing a size_t
7667532bd7 travis: Remove unused sudo:false
248f046611 Make sure we're not using an uninitialized variable in secp256k1_wnaf_const(...)
9ab96f7b12 Use trivial algorithm in ecmult_multi if scratch space is small
ee99f12f3d Merge #599: Switch x86_64 asm to use "i" instead of "n" for immediate values.
d58bc93f2c Switch x86_64 asm to use "i" instead of "n" for immediate values.
05362ee042 Merge #597: Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
83483869ac Add $(COMMON_LIB) to exhaustive tests to fix ARM asm build
aa15154a48 Merge #568: Fix integer overflow in ecmult_multi_var when n is large
2277af5ff0 Fix integer overflow in ecmult_multi_var when n is large
dbed75d969 Undefine `STATIC_PRECOMPUTATION` if using the basic config
310111e093 Keep LDFLAGS if `--coverage`
85d0e1bcce Merge #591: Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
14196379ec Merge #580: Add trivial ecmult_multi algorithm which does not require a scratch space
a697d82da9 Add trivial ecmult_multi to the benchmark tool
bade617417 Add trivial ecmult_multi algorithm. It is selected when no scratch space is given and just multiplies and adds the points.
5545e13dea Merge #584: configure: Use CFLAGS_FOR_BUILD when checking native compiler
20c5869df2 Merge #516: improvements to random seed in src/tests.c
b76e45d5d6 Make bench_internal obey secp256k1_fe_sqrt's contract wrt aliasing.
870a977644 Merge #562: Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
be40c4d0b5 Fixup for C90 mixed declarations.
c71dd2c08f Merge #509: Fix algorithm selection in bench_ecmult
6492bf88cc Merge #518: Summarize build options after running configure
0e9ada1941 Merge #567: Correct order of libs returned on pkg-config --libs --static libsecp2…
e96901a4b9 Merge #587: Make randomization of a non-signing context a noop
58df8d03ad Merge #511: Portability fix for the configure scripts generated
2ebdad772a Merge #552: Make constants static:
1c131affd3 Merge #551: secp256k1_fe_sqrt: Verify that the arguments don't alias.
ba698f883b Merge #539: Assorted minor corrections
949e85b009 Merge #550: Optimize secp256k1_fe_normalize_weak calls.
a34bcaadf1 Actually pass CFLAGS_FOR_BUILD and LDFLAGS_FOR_BUILD to linker
2d5f4cebdc configure: Use CFLAGS_FOR_BUILD when checking native compiler
b408c6a8b2 Merge #579: Use __GNUC_PREREQ for detecting __builtin_expect
6198375218 Make randomization of a non-signing context a noop
74e2dbd68e JNI: fix use sig array
c663397f46 Use __GNUC_PREREQ for detecting __builtin_expect
3cb057f842 Fix possible integer overflow in DER parsing
89a20a8945 Correct order of libs returned on pkg-config --libs --static libsecp256k1 call.
d3cb1f95eb Make use of TAG_PUBKEY constants in secp256k1_eckey_pubkey_parse
496c5b43b8 Make constants static: static const secp256k1_ge secp256k1_ge_const_g; static const int CURVE_B;
bf8b86cc07 secp256k1_fe_sqrt: Verify that the arguments don't alias.
9bd89c836b Optimize secp256k1_fe_normalize_weak calls. Move secp256k1_fe_normalize_weak calls out of ECMULT_TABLE_GET_GE and ECMULT_TABLE_GET_GE_STORAGE and into secp256k1_ge_globalz_set_table_gej instead.
52ab96fedb clean dependendies in field_*_impl.h
deff5edd42 Correct math typos in field_*.h
4efb3f8dd1 Add check that restrict pointers don't alias with all parameters.
3965027c81 Summarize build options in configure script
0f0517369c Fix algorithm selection in bench_ecmult
8b3841c91d fix bug in fread() failure check
cddef0c0be tests: add warning message when /dev/urandom fails
270f6c80db Portability fix for the configure scripts generated
REVERT: 43dd1f4fe7 Merge pull request #40 from instagibbs/size_t
REVERT: 6532fa0a96 Merge pull request #39 from instagibbs/more_builds
REVERT: 2b2429dfaa rangeproof: reduce iteration count in unit tests
REVERT: 12b0e5dda7 Enable more builds with rest of experimental flags
REVERT: 8c444eef6a use proper types for rangeproof min/max
REVERT: 53ad841caf Add explanation about how BIP32 unhardened derivation can be used to simplify whitelisting
REVERT: 71c5fe0f6e Add comment to explain effect of max_n_iterations in surjectionproof_init
REVERT: 85fd42fb7e add unit test for generator and pedersen commitment roundtripping
REVERT: 2ccf885419 rangeproof: fix serialization of pedersen commintments
REVERT: 60c173b640 rangeproof: verify correctness of pedersen commitments when parsing
REVERT: 32d7526cd5 generator: verify correctness of point when parsing
REVERT: ae14e8a9d8 rangeproof: check that points deserialize correctly when verifying rangeproof
REVERT: 44fe43d757 rangeproof: add fixed vector test case
REVERT: e065d7df9f Expose generator in shared library
REVERT: fb1ba329aa fix spelling in documentation
REVERT: fb75faa147 Test for rejection of trailing bytes in range proofs
REVERT: 9b2cf1708d Test for rejection of trailing bytes in surjection proofs
REVERT: a3a1800ba6 Reject surjection proofs with trailing garbage
REVERT: 0c77ae9a75 Minor bugfix. Wrong length due to NUL character.
REVERT: b1f31bc4b6 Add whitelisting benchmark
REVERT: 52a9f8f8f3 add whitelist_impl.h to include for dist
REVERT: a707865bc5 generator: add API tests
REVERT: ec1ef040f5 generator: remove unnecessary ARG_CHECK from generate()
REVERT: b0e9aa828f Fix generator makefile
REVERT: 526c65499f Fix pedersen_blind_generator_blind_sum return value documentation
REVERT: b51886e722 Add n_keys argument to whitelist_verify
REVERT: 37c57de083 Fix checks of whitelist serialize/parse arguments
REVERT: 9b8a9d91eb whitelist: fix serialize/parse API to take serialized length
REVERT: 7f17515609 Fix include/secp256k1_rangeproof.h function argument documentation.
REVERT: 0d817020d9 rangeproof: add API tests
REVERT: 417bb0643f surjectionproof: rename unit test functions to be more consistent with other modules
REVERT: 1e2d5c1a26 surjectionproof: add API unit tests
REVERT: 7878a298b2 surjectionproof: tests_impl.h s/assert/CHECK/g
REVERT: e609591b66 rangeproof: fix memory leak in unit tests
REVERT: 0c17f7972a add surjection proof module
REVERT: c174f0c609 Implement ring-signature based whitelist delegation scheme
REVERT: a2bc6604f9 rangeproof: several API changes
REVERT: 21bfb3c91a Expose generator in pedersen/rangeproof API
REVERT: f4620de040 Constant-time generator module
REVERT: d46fc3c191 rangeproof: expose sidechannel message field in the signing API
REVERT: cf40b1bed2 [RANGEPROOF BREAK] Use quadratic residue for tie break and modularity cleanup
REVERT: 6d28767c79 Get rid of precomputed H tables (Pieter Wuille)
REVERT: ae1e576f67 Pedersen commitments, borromean ring signatures, and ZK range proofs.
REVERT: efc61dc0ca Add 64-bit integer utilities

git-subtree-dir: src/secp256k1
git-subtree-split: 0129b77767ea001e5693e39ac6deecea0c461817
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet