aboutsummaryrefslogtreecommitdiff
path: root/tests (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2024-04-10trezor: support c++17 and protobuf v25, libusb fixDusan Klinec2-0/+2
- fix If there is no protobuf version installed, if fails - passphrase test fix, wallet keys init was missing
2024-03-29Skip privacy networks (on tx sends) that don't have outgoing connectionsLee *!* Clagett1-0/+33
2024-03-21update blake2b test vectorskoe1-1/+1
2024-03-19serialization: do any N-tuplejeffro2561-0/+92
2024-03-11functional_tests: test HTTP digest authjeffro2562-11/+123
Test: 1. Can't login to RPC server with --rpc-login enabled, but no auth provided 2. Can access RPC server with correct login 3. Can use internal HTTP client to access RPC server with correct login With commit 0ae5c91e504b8007dedc2b89c9b2b49c404ffec6 not reverted, we fail test 3.
2024-03-10serialization: protect blob serialization from undefined behaviorjeffro2561-0/+5
There is currently no compiler protection when someone tries to do (for example) `BLOB_SERIALIZER(std::vector<int>)`. You just get runtime allocation errors. This has already eaten up dev time before, so this PR adds a static assertion that the type must be trivially copyable, as defined by the C++ standard. Types can override this if applicable if they use `BLOB_SERIALIZER_FORCED`.
2024-03-10Blockchain: remove old fee calc logicjeffro2563-191/+12
2024-03-07unit_tests: fix strtoul unit testjeffro2561-1/+0
2024-02-24Enforce Tx unlock_time is Zero by Relay Rulejeffro25621-35/+62
Related to https://github.com/monero-project/research-lab/issues/78 Added a relay rule that enforces the `unlock_time` field is equal to 0 for non-coinbase transactions. UIs changed: * Removed `locked_transfer` and `locked_sweep_all` commands from `monero-wallet-cli` APIs changed: * Removed `unlock_time` parameters from `wallet2` transfer methods * Wallet RPC transfer endpoints send error codes when requested unlock time is not 0 * Removed `unlock_time` parameters from `construct_tx*` cryptonote core functions
2024-02-20wallet: feature: transfer amount with fee includedjeffro2562-0/+138
To transfer ~5 XMR to an address such that your balance drops by exactly 5 XMR, provide a `subtractfeefrom` flag to the `transfer` command. For example: transfer 76bDHojqFYiFCCYYtzTveJ8oFtmpNp3X1TgV2oKP7rHmZyFK1RvyE4r8vsJzf7SyNohMnbKT9wbcD3XUTgsZLX8LU5JBCfm 5 subtractfeefrom=all If my walet balance was exactly 30 XMR before this transaction, it will be exactly 25 XMR afterwards and the destination address will receive slightly less than 5 XMR. You can manually select which destinations fund the transaction fee and which ones do not by providing the destination index. For example: transfer 75sr8AAr... 3 74M7W4eg... 4 7AbWqDZ6... 5 subtractfeefrom=0,2 This will drop your balance by exactly 12 XMR including fees and will spread the fee cost proportionally (3:5 ratio) over destinations with addresses `75sr8AAr...` and `7AbWqDZ6...`, respectively. Disclaimer: This feature was paid for by @LocalMonero.
2024-02-16epee binary: container can read from empty seq of any typejeffro2561-0/+87
2024-01-30Disable/fix ports with I2PLee Clagett1-42/+37
2024-01-29Add <cstdint> to aligned testLee *!* Clagett1-0/+1
2024-01-17epee/test: remove levin_protocol_handler and core_proxy testsjeffro2564-465/+0
2023-12-10OpenBSD: node server fix IP localhost by aliasingmesaoptimizer1-2/+2
The test node_server.bind_same_p2p_port fails by default on OpenBSD for at least the debug build. Using the same ifconfig command as described for MacOS results in the test passing.
2023-11-30fix merge mining with more than one merge mined chainCrypto City1-3/+7
reported by sech1
2023-11-28Fix missing checks for IsObject in ZMQ jsonrpc readingLee Clagett1-0/+7
2023-11-18serialization: fix infinite loops and clean up dispatchingjeffro2561-5/+34
Resolves #8687
2023-10-28unit tests: fix running from pwd and auto test selected locationjeffro2562-2/+2
2023-10-28core_tests: fix gcc7 compilationselsta1-3/+4
2023-10-21unit tests: wallet_storage: generate in "Ascii" format testjeffro2561-0/+117
2023-10-02add a test for the long term weight cacheBoog9001-0/+35
2023-09-30trezor: support v2.5.2+, add more trezor tests, fix chaingen and testsDusan Klinec5-265/+704
- passphrase logic: remove backward compatibility for 2.4.3, code cleanup. - fix LibUSB cmake for static builds on OSX - tests: all tests now work with passphrase logic enabled. Passphrase test added with different passphrase. no_passphrase test added, Trezor pin test added. Testing wallet opening with correct and incorrect passphrase. Trezor test chain revamp, cleanup. Smaller chain, chain file versioning added. - tests: Trezor tests support TEST_MINING_ENABLED, TEST_MINING_TIMEOUT env vars to change mining-related tests behaviour. - requires protobuf@21 on osx for now (c++14), building with unlinked protobuf: `CMAKE_PREFIX_PATH=$(find /opt/homebrew/Cellar/protobuf@21 -maxdepth 1 -type d -name "21.*" -print -quit) \ make debug-test-trezor -j8`
2023-09-29fix chaingen testsDusan Klinec15-135/+191
- fix tx create from sources, input locking. Originally, creating a synthetic transactions with chaingen could create a transaction with outputs that are still locked in the current block, thus failing chain validation by the daemon. Simple unlock check was added. Some buggy tests were fixed as well as new unlock-checking version of tx creation rejected those, fixes are simple - mostly using correct block after a rewind to construct a transaction
2023-09-10add seraphis_crypto directorykoe2-0/+2
2023-09-10update TimingsDatabase to support csv format and incremental updatingkoe1-7/+6
2023-09-10unit_test: set data dir relative to exe & add log-level argjeff2-4/+12
2023-08-23wallet2: fix `store_to()` and `change_password()`jeffro2565-8/+269
Resolves #8932 and: 2. Not storing cache when new path is different from old in `store_to()` and 3. Detecting same path when new path contains entire string of old path in `store_to()` and 4. Changing your password / decrypting your keys (in this method or others) and providing a bad original password and getting no error and 5. Changing your password and storing to a new file
2023-08-19functional_tests: fix multisig tests noutputs assertionjeffro2561-89/+50
The changes to the multisig tests in #8914 and #8904 affected each other, this PR cleans up the code and fixes that issue.
2023-08-10`KV_SERIALIZE`: remove extraneous semicolons in DSLjeffro2561-2/+2
Prereq of https://github.com/monero-project/monero/pull/8867
2023-08-01blockchain_db: add k-anonymity to txid fetchingjeffro2563-1/+501
Read more about k-anonymity [here](https://en.wikipedia.org/wiki/K-anonymity). We implement this feature in the monero daemon for transactions by providing a "Txid Template", which is simply a txid with all but `num_matching_bits` bits zeroed out, and the number `num_matching_bits`. We add an operation to `BlockchainLMDB` called `get_txids_loose` which takes a txid template and returns all txids in the database (chain and mempool) that satisfy that template. Thus, a client can ask about a specific transaction from a daemon without revealing the exact transaction they are inquiring about. The client can control the statistical chance that other TXIDs (besides the one in question) match the txid template sent to the daemon up to a power of 2. For example, if a client sets their `num_matching_bits` to 5, then statistically any txid has a 1/(2^5) chance to match. With `num_matching_bits`=10, there is a 1/(2^10) chance, so on and so forth. Co-authored-by: ACK-J <60232273+ACK-J@users.noreply.github.com>
2023-07-28wallet-rpc: restore from multisig seedjeffro2561-9/+146
2023-07-03common: do not use DNS to determine if address is localtobtoht2-0/+51
Co-authored-by: j-berman <justinberman@protonmail.com>
2023-07-01blockchain_and_pool: move to crytonote_core and enforce its usagejeffro2565-38/+18
2023-06-30core_rpc_server: return ID of submitted blockjeffro2561-0/+10
2023-06-28add crypto/generators for direct access to canonical fixed generatorskoe1-0/+24
2023-06-15wallet2: fix rescanning tx via scan_txj-berman3-8/+225
- Detach & re-process txs >= lowest scan height - ensures that if a user calls scan_tx(tx1) after scanning tx2, the wallet correctly processes tx1 and tx2 - if a user provides a tx with a height higher than the wallet's last scanned height, the wallet will scan starting from that tx's height - scan_tx requires trusted daemon iff need to re-process existing txs: in addition to querying a daemon for txids, if a user provides a txid of a tx with height *lower* than any *already* scanned txs in the wallet, then the wallet will also query the daemon for all the *higher* txs as well. This is likely unexpected behavior to a caller, and so to protect a caller from revealing txid's to an untrusted daemon in an unexpected way, require the daemon be trusted.
2023-06-13Update tests/hash/main.cpp 0xFFFC00001-1/+1
Removing preprocessor macro and replacing it with constexpr. Co-authored-by: Jeffro <jeffreyryan@tutanota.com>
2023-06-12wallet: respect frozen key images in multisig walletsjeffro2561-0/+101
Before this change, if a multisig peer asked you to sign a transaction with a frozen enote, the wallet will do it without any error or warning. This change makes it so that wallets will refuse to sign multisig transactions with frozen enotes. Disclaimer: This PR was generously funded by @LocalMonero.
2023-06-12Tests: Add blake2b Test Cases for hash testing.0xFFFC00004-2/+1112
* Adding blake2b test function to src/tests/hash * New files for testvector. * Adding the test to CMakeLists.txt * Adding brief documentation for the test.
2023-05-22Add to_hex::bufferLee *!* Clagett1-0/+16
2023-05-12tests: remove unused perl scriptstobtoht2-319/+0
2023-05-12tests: remove daemon_teststobtoht4-159/+0
2023-05-12net: tor_address: remove support for v2 onion addressestobtoht1-93/+10
2023-04-02gamma picker: relax constructor requirements and test for selecting outputs ↵jeffro2561-0/+56
from first spendable block
2023-03-21wallet2: do not commit transactions more than oncemoneromooo-monero1-0/+34
Fixes #8793
2023-03-17verRctNonSemanticsSimpleCached: fix fragilityJeffrey Ryan3-0/+427
2023-02-28replace 'multisig()' with 'get_multisig_status()' using ↵koe1-14/+11
multisig_account_status and including '.kex_is_done' member
2023-02-12variant: add mutable unwrap and visitationkoe1-1/+22
2023-01-30add variant class with cleaner interface than boost::variant<>koe2-0/+416
2023-01-16Copyright: Update to 2023mj-xmr237-237/+237
Co-authored-by: plowsof <plowsof@protonmail.com> extra files
2022-12-22common: move boost_serialization_helper.h out and cleanup includesJeffrey Ryan2-1/+125
2022-12-01performance test framework updates: allow custom test parameters, better ↵koe2-30/+81
error reporting
2022-11-21common: DNSResolver can handle hostnames without dot charactersJeffrey Ryan1-0/+11
Unrelated, but similar code-wise to #8643. There is a check in `DNSResolver` which automatically fails to resolve hostnames which do not contain the `.` character. This PR removes that check.
2022-11-17p2p: fix exclusive node DNS resolution for certain hostsJeffrey Ryan1-0/+35
Fixes #8633. The function `append_net_address` did not parse hostname + port addresses (e.g. `bar:29080`) correctly if the hostname did not contain a `'.'` character. @vtnerd comments 1 clear up 2nd conditional statement
2022-11-17fix(trezor-tests): fix trezor tests build, fix integrated addr testDusan Klinec3-5/+24
- fix integrated address test, it was not testing integrated address suport - fix trezor test build as dependent classes were changed - add a friend test class for Monero::WalletImpl to support wallet api tests When using wallet_api in tests, synthetic chain is used. Without being able to set `allow_mismatched_daemon_version` in the underlying wallet, we are not able to use a synthetic chain with the tests
2022-10-25Fix dandelion++ fluff/stem bug with local txesLee Clagett1-15/+84
2022-09-22Move update_checkpoints() to a later stageSChernykh2-0/+2
update_checkpoints() makes a few DNS requests and can take up to 20-30 seconds to complete (3-6 seconds on average). It is currently called from core::handle_incoming_block() which holds m_incoming_tx_lock, so it blocks all incoming transactions and blocks processing while update_checkpoints() is running. This PR moves it to until after a new block has been processed and relayed, to avoid full monerod locking.
2022-09-21add an option to force-update multisig key exchange under some circumstanceskoe1-24/+64
2022-09-20Second thread pool for IOSChernykh1-1/+1
2022-09-16unit_tests: suppress memwipe unit warningJeffrey Ryan1-0/+4
Fixes warning: ``` warning: ‘*(uint32_t*)quux’ may be used uninitialized [-Wmaybe-uninitialized] 49 | MDEBUG(std::hex << std::setw(8) << std::setfill('0') << *(uint32_t*)quux); warning: ‘quux’ may be used uninitialized [-Wmaybe-uninitialized] 50 | if (wipe) { ASSERT_TRUE(memcmp(quux, "bar", 3)); } ```
2022-09-12wallet2: check wallet compatibility with daemon's hard fork versionj-berman1-1/+1
2022-09-06multisig: fix #8537 seed restore (suggestions by @UkoeHB)j-berman1-1/+1
- spend secret key is no longer the sum of multisig key shares; no need to check that is the case upon restore. - restoring a multisig wallet from multisig info means that the wallet must have already completed all setup rounds. Upon restore, set the number of rounds completed accordingly.
2022-08-26Fix shared_ptr cycle in test_epee_connection.test_lifetimeLee Clagett1-2/+5
2022-08-18wallet2: better test on whether to allow output importmoneromooo-monero1-0/+9
Being offline is not a good enough heuristic, so we keep track of whether the wallet ever refreshed from a daemon, which is a lot better, and probably the best we can do without manual user designation (which would break existing cold wallet setups till the user designates those wallets)
2022-08-18allow exporting outputs in chunksmoneromooo-monero3-15/+41
this will make it easier huge wallets to do so without hitting random limits (eg, max string size in node).
2022-08-16wallet2: fixes for export/import output flowj-berman2-18/+67
- only allow offline wallets to import outputs - don't import empty outputs - export subaddress indexes when exporting outputs
2022-08-08tests: update block_weight for 2021 scalingmoneromooo-monero2-8/+14
the test was still performed with consensus rules from before that change
2022-07-21Publish submitted txs via zmqj-berman4-5/+25
2022-07-21functional_tests: silence the cpu power test programmoneromooo-monero2-2/+4
it's very spammy and drowns the test output
2022-07-13derive multisig tx secret keys from an entropy source plus the tx inputs' ↵koe1-2/+3
key images
2022-07-08address PR commentsj-berman1-5/+5
2022-07-05connection: add segfault and deadlocks demoanon1-2/+252
2022-06-30multisig: fix critical vulnerabilities in signinganon11-124/+114
2022-06-21unit_tests: fix accessing invalid memory in tree_hash testmoneromooo-monero1-2/+7
2022-06-20feat(trezor): add HF15 support, BP+Dusan Klinec3-17/+96
- BP+ support added for Trezor - old Trezor firmware version support removed, code cleanup
2022-05-18Don't exclusively drop tor/i2p outgoing cxns in idle loopj-berman1-2/+2
2022-05-18unit_tests: add more sha256sum test casesJeffrey Ryan5-0/+42
2022-05-17disable multisig by defaultmoneromooo-monero1-5/+5
There are vulnerabilities in multisig protocol if the parties do not trust each other, and while there is a patch for it, it has not been throroughly reviewed yet, so it is felt safer to disable multisig by default for now. If all parties in a multisig setup trust each other, then it is safe to enable multisig.
2022-04-29More tests for view tagsSChernykh1-0/+14
P2Pool can create transactions with more than 128 outputs, which make output_index's varint larger than 1 byte. Added this test case.
2022-04-29multisig: add post-kex verification round to check that all participants ↵koe3-47/+61
have completed the multisig address
2022-04-29Update copyright to 2022 for Hardfork filesAkrit7-7/+7
Update Makefile and LICENSE
2022-04-21Preserve commitment format inside transactionsLuke Parker1-2/+0
2022-04-18Bump ring size to 16 for v15 & remove set default in wallet clij-berman4-13/+13
2022-04-18Add Include statementsJeffrey1-0/+1
2022-04-18Add view tags to outputs to reduce wallet scanning timej-berman14-20/+603
Implements view tags as proposed by @UkoeHB in MRL issue https://github.com/monero-project/research-lab/issues/73 At tx construction, the sender adds a 1-byte view tag to each output. The view tag is derived from the sender-receiver shared secret. When scanning for outputs, the receiver can check the view tag for a match, in order to reduce scanning time. When the view tag does not match, the wallet avoids the more expensive EC operations when deriving the output public key using the shared secret.
2022-04-10Fee changes from ArticMinemoneromooo-monero3-4/+192
https://github.com/ArticMine/Monero-Documents/blob/master/MoneroScaling2021-02.pdf with a change to use 1.7 instead of 2.0 for the max long term increase rate
2022-04-10epee: allow copying a rolling_median_t objectmoneromooo-monero1-0/+18
2022-04-06tests: integrated_address: remove missing payment id assertionreemuru1-3/+1
The integrated address functional test fails in the workflows due to an assertion for missing payment id that is no longer needed. Remove the assertion and update the assertion count. Fixes 7dcfccb: ("wallet_rpc_server: fix make_integrated_address with no payment id")
2022-04-05store outPk/8 in the tx for speedmoneromooo-monero1-0/+2
It avoids dividing by 8 when deserializing a tx, which is a slow operation, and multiplies by 8 when verifying and extracing the amount, which is much faster as well as less frequent
2022-04-05plug bulletproofs plus into consensusmoneromooo-monero13-24/+645
2022-04-04Bulletproofs+Sarang Noether5-0/+292
2022-03-30Remove dead code from parserse_base_utils and fix unit testsJeffrey1-67/+74
* Remove `match_string()`, `match_number()`, and `match_word()` * Remove `match_word_with_extrasymb()` and `match_word_til_equal_mark()` * Adapt unit test for `match_number()` to `match_number2()` * Adapt unit test for `match_string()` to `match_string2()` Note: the unit tests were testing for the old version of the functions, and the interfaces for these functions changed slightly, so I had to also edit the tests. As of writing, this PR has no merge conflicts with #8211 Additional changes during review: * Explicitly set up is_[float/signed]_val to be changed before each call * Structify the tests and fix uninitialized variables
2022-03-04Compil. time: cryptonote_core minus portable_storage headermj-xmr1-0/+2
2022-03-04Copyright: Update to 2022mj-xmr228-228/+259
2022-02-22multisig key exchange update and refactorkoe4-120/+271
2022-01-31Balance includes unconfirmed transfers to selfwoodser1-5/+2
2022-01-25fix ge_p3_is_point_at_infinity(), which is evaluating field elements that ↵koe4-0/+64
haven't been reduced by the field order
2021-12-14functional_tests: update uri test with external pidselsta1-9/+5
2021-11-01tx_pool: full tx revalidation on fork boundariesmoneromooo-monero1-5/+10
avoids mining txes after a fork that are invalid by this fork's rules, but were valid by the previous fork rules at the time they were verified and added to the txpool.
2021-09-20node_server: fix race conditionanon1-36/+77
2021-09-20node_server: add race condition demoanon1-0/+260
2021-09-12Mac: UT node server fix IP localhost by aliasingmj-xmr1-0/+3
2021-09-08unit_tests: fix use after free in serialization testmoneromooo-monero1-2/+4
2021-08-19core_tests: remove unused typedef, fix warningselsta1-1/+0
2021-08-05p2p: remove blocked addresses/hosts from peerlistmoneromooo-monero1-0/+1
2021-08-03EasyLogging++: new anti-UB test and propagating exceptionmj-xmr1-0/+7
2021-07-28unit_tests: fix broken testsanon2-8/+8
boosted_tcp_server: check condition before sleep too cryptonote_protocol_handler: each instance of BlockchainLMDB requires separate thread due to private thread local fields
2021-07-06EasyLogging++: Add UTests, that protect against regressionsmj-xmr1-0/+13
2021-06-11unit_tests: check for ge_frombytes_vartime failuremoneromooo-monero2-4/+4
CID 1446559
2021-05-14Doc: funtional_tests add new mining env vars and how to use themmj-xmr1-1/+20
2021-05-11Warnings: unused var in core_tests:chaingen.hmj-xmr1-1/+1
2021-04-28clang: fix -Wpessimizing-move warningselsta1-1/+2
2021-04-27cmake: set 3.5 as minimum versionselsta2-2/+2
2021-04-27Tests: Mining test uses a parametric path for finding the calculation appmj-xmr3-41/+66
MINING_SILENT and MINING_NO_MEASUREMENT env vars
2021-04-27clang: fix -Wrange-loop-analysis warningsselsta1-1/+1
2021-04-16Split epee/string_tools.h and encapsulate boost::lexical_castmj-xmr2-0/+2
2021-04-16Revert "Merge pull request #7136"luigi11115-121/+27
This reverts commit 63c7ca07fba2f063c760f786a986fb3e02fb040e, reversing changes made to 2218e23e84a89e9a1e4c0be5d50f891ab836754f.
2021-04-08unit_tests: fix boost 1.58 compatibilityanon1-1/+1
2021-04-05Tests: Fix test node_server.bind_same_p2p_port from randomly crashingmj-xmr1-0/+12
2021-03-30[CI] Adaptive mining timeout, depending on available CPU powermj-xmr5-10/+254
Printing also available RAM. Add comprehensive description.
2021-03-27Warnings: fix ut/levin.cpp missing bracesmj-xmr1-1/+4
2021-03-22cryptonote_protocol_handler: add race condition demoanon1-0/+592
2021-03-20[CI] Use Python3 for funcional tests, instead of Python2mj-xmr1-4/+6
2021-03-12async_protocol_handler_config: add deadlock demoanon1-0/+110
2021-03-05fix serialization being different on macmoneromooo-monero1-1/+1
On Mac, size_t is a distinct type from uint64_t, and some types (in wallet cache as well as cold/hot wallet transfer data) use pairs/containers with size_t as fields. Mac would save those as full size, while other platforms would save them as varints. Might apply to other platforms where the types are distinct. There's a nasty hack for backward compatibility, which can go after a couple forks.
2021-02-23functional_tests: hide check_missing_rpc_methods behind requests checkmoneromooo-monero1-6/+5
2021-02-19async_protocol_handler_config: add segfault demoanon1-2/+73
2021-02-11Increase timeout for the mining test 4 times (to 240s)mj-xmr1-1/+1
2021-02-09New add_aux_pow RPC to support merge miningmoneromooo-monero1-0/+213
2021-02-09Remove unused variables in monero codebaseKevin Barbour10-13/+2
There are quite a few variables in the code that are no longer (or perhaps never were) in use. These were discovered by enabling compiler warnings for unused variables and cleaning them up. In most cases where the unused variables were the result of a function call the call was left but the variable assignment removed, unless it was obvious that it was a simple getter with no side effects.
2021-02-06Reduce compilation time of epee/portable_storage.hmj-xmr1-0/+1
2021-01-28Remove copies from foreach loops (thanks to Clang)Lee Clagett2-10/+10
2021-01-27unit_tests: fix wipeable_string parse_hexstr test with latest gtestxiphon1-9/+9
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=973196
2021-01-23Improve cryptonote (block and tx) binary read performanceLee Clagett6-26/+82
2021-01-19boosted_tcp_server: add segfault demoanon1-0/+150
2021-01-19Remove payload copy in all outgoing p2p messagesLee Clagett6-43/+127
2021-01-16Remove payload copy in all outgoing p2p messagesLee Clagett5-27/+121
2021-01-03add a max levin packet size by command typemoneromooo-monero3-0/+3
2021-01-01Split fuzz tests during fuzz buildNym Seddon1-11/+16
Only build fuzz tests in a fuzz build, and don't build other tests. Keeps fuzz compilers from instrumenting other tests, which are not fuzzed. Resolves #7232
2020-12-31protocol: more sanity checks in new chain block hashesmoneromooo-monero3-3/+10
2020-12-27protocol: fix false positives dropping peersmoneromooo-monero2-0/+2
it'd trigger on reorgs
2020-12-27Revert "Reject existing claimed blocks in sync mode"luigi11112-2/+0
2020-12-22Command max_bytes moved from dynamic map to static switchLee Clagett1-3/+40
2020-12-20Restrict duplicate keys in epee binary formatLee Clagett2-0/+55
2020-12-17protocol: reject claimed block hashes that already are in the chainmoneromooo-monero2-0/+2
2020-12-17Add aggressive restrictions to pre-handshake p2p buffer limitLee Clagett4-0/+8
2020-12-14Fix byte_stream::put_nLee Clagett1-0/+17
2020-12-14fuzz_tests: add a test for utf8canonicalmoneromooo-monero4-0/+49
2020-12-10protocol: drop origin IP if a block fails to verify in sync modemoneromooo-monero1-9/+11
It would otherwise be possible for a peer to send bad blocks, then disconnect and reconnect again, escaping bans
2020-12-04crypto: fix non zero scalar being 0 after reducingmoneromooo-monero1-551/+540
2020-11-25cryptonote_core: dandelion - use local height or median height if syncingxiphon3-3/+10
2020-11-16Better log message for unusable anon networksHoward Chu1-1/+2
2020-11-03Switch to Dandelion++ fluff mode if no out connections for stem modeLee Clagett1-0/+109
2020-10-28Add RELINK_TARGETS, monero_add_target_no_relink and use ↵mj-xmr15-32/+32
monero_add_executable/monero_add_library where possible (mj-xmr) Add monero_add_minimal_executable and use in tests This is done in order not to have to relink targets, when just an .so changed, but not its interface.
2020-10-22functional_tests: inrease mining timeoutselsta1-1/+1
2020-10-13Change to more efficient allocation strategy in byte_streamLee Clagett1-43/+50
2020-10-13Allow byte_stream->byte_slice conversion to shrink unused buffer spaceLee Clagett1-1/+3
2020-10-12Dandelion++: skip desynced peers in stem phasexiphon1-34/+41
2020-10-10Change epee binary output from std::stringstream to byte_streamLee Clagett7-31/+30
2020-10-03Unit Tests: Remove block reward upper bound size checksTheCharlatan1-18/+0
Tests running after being compiled with `make debug-test` failed with ``` [ FAILED ] block_reward_and_current_block_weight.fails_on_huge_median_size [ FAILED ] block_reward_and_current_block_weight.fails_on_huge_block_weight ``` With the introduction of the patch in https://github.com/monero-project/monero/commit/be82c40703d267184ee07bf7be71002122c86656#diff-1a57d4e6013984c420da98d1adde0eafL113 the assertions checking the weight of the median and current block against a size limit were removed. Since the limit is now enforced by a long divisor and a uint64_t type, checking in a separate test makes little sense, so they are removed here.
2020-09-24functional_tests: rewrite mining code, clearer timeout infoiamamyth1-12/+11
2020-09-24fuzz_tests: fix build error in signature fuzz testmoneromooo-monero1-1/+1
2020-09-04enable CLSAG support for Trezor clientDusan Klinec2-10/+32
2020-09-01threadpool: guard against exceptions in jobs, and armour platingmoneromooo-monero1-20/+20
Those would, if uncaught, exit run and leave the waiter to wait indefinitely for the number of active jobs to reach 0
2020-08-28Bind signature to full address and signing modeSarang Noether1-0/+2
2020-08-28wallet: allow signing a message with spend or view keymoneromooo-monero2-7/+12
2020-08-28core_tests: fix failures after v13moneromooo-monero4-13/+21
v13 enforces claiming the full block reward, so we need to keep track of tx fees to add them to the coinbase
2020-08-28core_tests: remove hardcoded hf versionmoneromooo-monero1-1/+1
2020-08-27functional_tests: add a large (many randomx epochs) p2p reorg testmoneromooo-monero1-0/+19
2020-08-27functional_tests: add randomx testsmoneromooo-monero2-0/+117
2020-08-27core: fix mining from a block that's not the current topmoneromooo-monero1-3/+3
2020-08-27Added balance check to MLSAG/CLSAG performance testsSarang Noether3-144/+282
2020-08-27Updated MLSAG and CLSAG tests for consistencySarang Noether3-31/+63
2020-08-27CLSAG verification performance testSarang Noether2-22/+40
2020-08-27CLSAG optimizationsSarang Noether2-86/+82
2020-08-27Integrate CLSAGs into moneromoneromooo-monero15-85/+656
They are allowed from v12, and MLSAGs are rejected from v13.
2020-08-27unit_tests: add ge_triple_scalarmult_base_vartime testmoneromooo-monero1-0/+62
2020-08-27CLSAG signaturesSarang Noether4-4/+196
2020-08-26functional_tests: add p2p functional testsmoneromooo-monero2-8/+193
Tests tx/block propagation and reorgs
2020-08-21enforce claiming maximum coinbase amountmoneromooo-monero3-0/+30
Claiming a slightly lesser amount does not yield the size gains that were seen pre rct, so this closes a fingerprinting vector
2020-08-17Add clear method to byte_streamLee Clagett1-0/+41
2020-08-17Revert "Use domain-separated ChaCha20 for in-memory key encryption"luigi11112-74/+0
This reverts commit 921dd8dde5d381052d0aa2936304a3541a230c55.
2020-08-17replace most boost serialization with existing monero serializationmoneromooo-monero10-12/+10
This reduces the attack surface for data that can come from malicious sources (exported output and key images, multisig transactions...) since the monero serialization is already exposed to the outside, and the boost lib we were using had a few known crashers. For interoperability, a new load-deprecated-formats wallet setting is added (off by default). This allows loading boost format data if there is no alternative. It will likely go at some point, along with the ability to load those. Notably, the peer lists file still uses the boost serialization code, as the data it stores is define in epee, while the new serialization code is in monero, and migrating it was fairly hairy. Since this file is local and not obtained from anyone else, the marginal risk is minimal, but it could be migrated later if needed. Some tests and tools also do, this will stay as is for now.
2020-08-14Change ZMQ-JSON txextra to hex and remove unnecessary base fieldsLee Clagett1-1/+16
2020-08-14Fix pruned tx for ZMQ's GetBlocksFastLee Clagett1-1/+1
2020-08-09Use domain-separated ChaCha20 for in-memory key encryptionSarang Noether2-0/+74
2020-08-09Updates InProofV1, OutProofV1, and ReserveProofV1 to new V2 variants that ↵Sarang Noether3-5/+165
include all public proof parameters in Schnorr challenges, along with hash function domain separators. Includes new randomized unit tests.
2020-07-23Fix overflow issue in epee:misc_utils::rolling_median_t and median(), with ↵koe1-0/+11
unit test
2020-07-20wallet2_api: implement runtime proxy configurationxiphon4-4/+4
2020-06-14fuzz_tests: fix init check in oss-fuzz modemoneromooo-monero1-1/+1
2020-06-14fix leaks in fuzz testsmoneromooo-monero4-17/+34
2020-06-14fuzz_tests: add a tx extra fuzz testmoneromooo-monero4-0/+58
2020-06-09repo: update donation fund addressselsta3-9/+9
2020-05-31Fix boost <1.60 compilation and fix boost 1.73+ warningsLee Clagett1-2/+3
2020-05-28functional_tests: add simple relay_tx testmoneromooo-monero1-0/+11
2020-05-27tests: fix missing error on missing python entry pointmoneromooo-monero1-0/+1
2020-05-20ByteSlice: Fix persisting ptr to std::moved SSO bufferDoyle1-0/+23
The Bug: 1. Construct `byte_slice.portion_` with `epee::span(buffer)` which copies a pointer to the SSO buffer to `byte_slice.portion_` 2. It constructs `byte_slice.storage_` with `std::move(buffer)` (normally this swap pointers, but SSO means a memcpy and clear on the original SSO buffer) 3. `slice.data()` returns a pointer from `slice.portion_` that points to the original SSO cleared buffer, `slice.storage_` has the actual string.
2020-05-16Support for supercop ASM in wallet, and benchmark for supercopLee Clagett3-0/+479
2020-05-15fuzz_tests: refactor and add OSS-Fuzz compatibilitymoneromooo-monero15-540/+228