aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_basic/account.cpp (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2024-05-24wallet: background sync with just the view keyj-berman1-0/+11
- When background syncing, the wallet wipes the spend key from memory and processes all new transactions. The wallet saves all receives, spends, and "plausible" spends of receives the wallet does not know key images for. - When background sync disabled, the wallet processes all background synced txs and then clears the background sync cache. - Adding "plausible" spends to the background sync cache ensures that the wallet does not need to query the daemon to see if any received outputs were spent while background sync was enabled. This would harm privacy especially for users of 3rd party daemons. - To enable the feature in the CLI wallet, the user can set background-sync to reuse-wallet-password or custom-background-password and the wallet automatically syncs in the background when the wallet locks, then processes all background synced txs when the wallet is unlocked. - The custom-background-password option enables the user to open a distinct background wallet that only has a view key saved and can be opened/closed/synced separately from the main wallet. When the main wallet opens, it processes the background wallet's cache. - To enable the feature in the RPC wallet, there is a new `/setup_background_sync` endpoint. - HW, multsig and view-only wallets cannot background sync.
2024-05-21copyright: bump to 2024copyCat1-1/+1
2023-01-16Copyright: Update to 2023mj-xmr1-1/+1
Co-authored-by: plowsof <plowsof@protonmail.com> extra files
2022-03-04Copyright: Update to 2022mj-xmr1-1/+1
2022-02-22multisig key exchange update and refactorkoe1-5/+0
2020-08-17Revert "Use domain-separated ChaCha20 for in-memory key encryption"luigi11111-61/+41
This reverts commit 921dd8dde5d381052d0aa2936304a3541a230c55.
2020-08-09Use domain-separated ChaCha20 for in-memory key encryptionSarang Noether1-41/+61
2020-05-06Update copyright year to 2020SomaticFanatic1-1/+1
Update copyright year to 2020
2020-04-01Hash domain separationSarang Noether1-4/+2
2019-03-05Update 2019 copyrightbinaryFate1-1/+1
2018-11-02device/trezor: trezor support addedDusan Klinec1-5/+19
2018-10-16account: init creation timestamp to 0moneromooo-monero1-0/+1
Never actually used uninitialized Coverity 136615
2018-09-14hw_device: support for multiple devices added [for review]Dusan Klinec1-2/+6
- device name is a new wallet property - full device name is now a bit more structured so we can address particular device vendor + device path. Example: 'Ledger', 'Trezor:udp', 'Trezor:udp:127.0.0.1:21324', 'Trezor:bridge:usb01'. The part before ':' identifies HW device implementation, the optional part after ':' is device path to look for. - new --hw-device parameter added to the wallet, can name the hardware device - device reconnect added
2018-08-16crypto: make secret_key automatically mlockmoneromooo-monero1-2/+2
2018-08-16store secret keys encrypted where possiblemoneromooo-monero1-0/+66
The secret spend key is kept encrypted in memory, and decrypted on the fly when needed. Both spend and view secret keys are kept encrypted in a JSON field in the keys file. This avoids leaving the keys in memory due to being manipulated by the JSON I/O API.
2018-05-26fix build with GCC 8.1.0moneromooo-monero1-1/+1
2018-03-14device: untangle cyclic depenencystoffu1-1/+0
When #3303 was merged, a cyclic dependency chain was generated: libdevice <- libcncrypto <- libringct <- libdevice This was because libdevice needs access to a set of basic crypto operations implemented in libringct such as scalarmultBase(), while libringct also needs access to abstracted crypto operations implemented in libdevice such as ecdhEncode(). To untangle this cyclic dependency chain, this patch splits libringct into libringct_basic and libringct, where the basic crypto ops previously in libringct are moved into libringct_basic. The cyclic dependency is now resolved thanks to this separation: libcncrypto <- libringct_basic <- libdevice <- libcryptonote_basic <- libringct This eliminates the need for crypto_device.cpp and rctOps_device.cpp. Also, many abstracted interfaces of hw::device such as encrypt_payment_id() and get_subaddress_secret_key() were previously implemented in libcryptonote_basic (cryptonote_format_utils.cpp) and were then called from hw::core::device_default, which is odd because libdevice is supposed to be independent of libcryptonote_basic. Therefore, those functions were moved to device_default.cpp.
2018-03-12Ledger HW Bug fixesCédric1-2/+0
Fix the way the REAL mode is handle: Let create_transactions_2 and create_transactions_from construct the vector of transactions. Then iterate on it and resign. We just need to add 'outs' list in the TX struct for that. Fix default secret keys value when DEBUG_HWDEVICE mode is off The magic value (00...00 for view key and FF..FF for spend key) was not correctly set when DEBUG_HWDEVICE was off. Both was set to 00...00. Add sub-address info in ABP map in order to correctly display destination sub-address on device Fix DEBUG_HWDEVICE mode: - Fix compilation errors. - Fix control device init in ledger device. - Add more log. Fix sub addr control Fix debug Info
2018-03-05Stagenetstoffu1-4/+4
2018-03-04Code modifications to integrate Ledger HW device into monero-wallet-cli.cslashm1-0/+40
The basic approach it to delegate all sensitive data (master key, secret ephemeral key, key derivation, ....) and related operations to the device. As device has low memory, it does not keep itself the values (except for view/spend keys) but once computed there are encrypted (with AES are equivalent) and return back to monero-wallet-cli. When they need to be manipulated by the device, they are decrypted on receive. Moreover, using the client for storing the value in encrypted form limits the modification in the client code. Those values are transfered from one C-structure to another one as previously. The code modification has been done with the wishes to be open to any other hardware wallet. To achieve that a C++ class hw::Device has been introduced. Two initial implementations are provided: the "default", which remaps all calls to initial Monero code, and the "Ledger", which delegates all calls to Ledger device.
2018-01-26Update 2018 copyrightxmr-eric1-1/+1
2017-12-17N-1/N multisigmoneromooo-monero1-1/+9
2017-12-17wallet: add multisig key generationmoneromooo-monero1-0/+7
Scheme by luigi1111
2017-10-07Subaddresseskenshi841-1/+1
2017-02-21update copyright year, fix occasional lack of newline at line endRiccardo Spagni1-1/+1
2017-02-08extract some basic code from libcryptonote_core into libcryptonote_basickenshi841-2/+2
2017-01-16Change logging to easylogging++moneromooo-monero1-0/+4
This replaces the epee and data_loggers logging systems with a single one, and also adds filename:line and explicit severity levels. Categories may be defined, and logging severity set by category (or set of categories). epee style 0-4 log level maps to a sensible severity configuration. Log files now also rotate when reaching 100 MB. To select which logs to output, use the MONERO_LOGS environment variable, with a comma separated list of categories (globs are supported), with their requested severity level after a colon. If a log matches more than one such setting, the last one in the configuration string applies. A few examples: This one is (mostly) silent, only outputting fatal errors: MONERO_LOGS=*:FATAL This one is very verbose: MONERO_LOGS=*:TRACE This one is totally silent (logwise): MONERO_LOGS="" This one outputs all errors and warnings, except for the "verify" category, which prints just fatal errors (the verify category is used for logs about incoming transactions and blocks, and it is expected that some/many will fail to verify, hence we don't want the spam): MONERO_LOGS=*:WARNING,verify:FATAL Log levels are, in decreasing order of priority: FATAL, ERROR, WARNING, INFO, DEBUG, TRACE Subcategories may be added using prefixes and globs. This example will output net.p2p logs at the TRACE level, but all other net* logs only at INFO: MONERO_LOGS=*:ERROR,net*:INFO,net.p2p:TRACE Logs which are intended for the user (which Monero was using a lot through epee, but really isn't a nice way to go things) should use the "global" category. There are a few helper macros for using this category, eg: MGINFO("this shows up by default") or MGINFO_RED("this is red"), to try to keep a similar look and feel for now. Existing epee log macros still exist, and map to the new log levels, but since they're used as a "user facing" UI element as much as a logging system, they often don't map well to log severities (ie, a log level 0 log may be an error, or may be something we want the user to see, such as an important info). In those cases, I tried to use the new macros. In other cases, I left the existing macros in. When modifying logs, it is probably best to switch to the new macros with explicit levels. The --log-level options and set_log commands now also accept category settings, in addition to the epee style log levels.
2017-01-13account: fix build error involving std::max and different typesmoneromooo-monero1-2/+6
2017-01-12initialize timestamp to 0 and check for mktime() errorChris Vickio1-4/+4
2016-12-20also use portable serializer for boost_serialization_helper.h and ↵kenshi841-2/+0
net_node.inl, completely adandon boost/archive/binary_oarchive.hpp
2016-02-22simplewallet: add a new --restore-from-keys optionmoneromooo-monero1-1/+9
It is similar in use to --restore-from-view-key, but also expects a spend private key. Requested by luigi1112, and useful to restore MyMonero wallets.
2015-12-31updated copyright yearRiccardo Spagni1-1/+1
2015-08-09encrypted payment ids are now 64 bit, instead of 256 bitmoneromooo-monero1-1/+1
Pros: - smaller on the blockchain - shorter integrated addresses Cons: - less sparseness - less ability to embed actual information The boolean argument to encrypt payment ids is now gone from the RPC calls, since the decision is made based on the length of the payment id passed.
2015-06-20account: allow creating an account from a public address and view secret keymoneromooo-monero1-0/+16
2015-06-12account: add a couple constsmoneromooo-monero1-2/+2
2015-06-12Integrated addresses (standard address plus payment id)moneromooo-monero1-0/+6
2015-05-31account: add a forget_spend_key methodmoneromooo-monero1-0/+5
2015-01-02year updated in licenseRiccardo Spagni1-1/+1
2014-12-01ensure that keccak is called on view spend key, not a possibly ↵warptangent1-1/+1
pre-sc_reduce32 version of it - for deriving view secret key
2014-09-15Separate testnet address prefixZachary Michaels1-2/+2
2014-08-03restored wallets will have timestamp set to June 8 2014.Thomas Winget1-1/+17
2014-07-23License updated to BSD 3-clausefluffypony1-3/+29
2014-06-12change hash for keygen from blake to keccaktom1-2/+2
2014-06-12allow two-random-numbers wallet generation (but not as default)Thomas Winget1-2/+2
2014-06-12fixed some pointer- and loop-based derpsThomas Winget1-0/+3
2014-06-12builds, but doesn't link. other than that, electrum-style recovery ↵Thomas Winget1-3/+10
implemented (but not tested\!)
2014-06-12most functions prototyped/modified for wallet recoveryThomas Winget1-1/+1
2014-03-03moved all stuff to githubAntonio Juarez1-0/+50