Commit Graph

5772 Commits

Author SHA1 Message Date
Riccardo Spagni a14eabc043
Merge pull request #3416
6f54c910 simplewallet: fix restore height prompt that got disabled by #3175 (stoffu)
2018-03-16 18:10:20 +02:00
Riccardo Spagni 432480fa42
Merge pull request #3414
524cbdc1 blockchain: fix log message about per-kB fee (stoffu)
2018-03-16 18:09:34 +02:00
Riccardo Spagni 2a9839cc3e
Merge pull request #3376
833f9fcf show '<Not set>' for empty wallet description (cryptochangements34)
2018-03-16 18:08:52 +02:00
Riccardo Spagni 0f27fc57ac
Merge pull request #3336
57c0b1ed Fix typos in various files (Dimitris Apostolou)
2018-03-16 18:08:07 +02:00
Riccardo Spagni 7d928be240
Merge pull request #3322
eac3a11e wallet: more user friendly print_ring (moneromooo-monero)
79853514 wallet2_api: add key reuse mitigations API (moneromooo-monero)
b057a21d wallet2_api: add ring api (moneromooo-monero)
d32ef7b0 ringdb: factor ring addition code (moneromooo-monero)
a7da8208 wallet2_api: add blackball api (moneromooo-monero)
2ab66ff1 liblmdb: install lmdb library for wallet2_api usage (stoffu)
504428ab ringdb: use the genesis block as a db name (moneromooo-monero)
b09e5181 wallet: add a set_ring command (moneromooo-monero)
0590f62a new blockchain_usage tool, reports on output usage (moneromooo-monero)
db10dd6d wallet: make ringdb an object with database state (moneromooo-monero)
df6fad4c blockchain_utilities: new blockchain_blackball tool (moneromooo-monero)
d29ea045 wallet: add an output blackball list to avoid using those in rings (moneromooo-monero)
18eaf194 wallet: key reuse mitigation options (moneromooo-monero)
5f146873 wallet: add shared ring database (moneromooo-monero)
41f727ce add RPC to get a histogram of outputs of a given amount (moneromooo-monero)
2018-03-16 18:07:33 +02:00
moneromooo-monero eac3a11ed3
wallet: more user friendly print_ring
It can now take a txid (to display rings for all its inputs),
and will print rings in a format that set_ring understands
2018-03-16 12:07:45 +00:00
moneromooo-monero 798535149d
wallet2_api: add key reuse mitigations API 2018-03-16 12:07:42 +00:00
moneromooo-monero b057a21d56
wallet2_api: add ring api 2018-03-16 10:33:05 +00:00
moneromooo-monero d32ef7b0f2
ringdb: factor ring addition code 2018-03-16 10:33:02 +00:00
moneromooo-monero a7da8208f5
wallet2_api: add blackball api 2018-03-16 10:32:59 +00:00
stoffu 2ab66ff1d4
liblmdb: install lmdb library for wallet2_api usage 2018-03-16 10:32:57 +00:00
moneromooo-monero 504428ab4a
ringdb: use the genesis block as a db name
This will avoid careless forkers polluting the shared database
even if they make their own chain. They'll then automatically
start using another subdb, and any key-reusing fork of those
forks will reuse their subdbs.
2018-03-16 10:32:54 +00:00
moneromooo-monero b09e5181cc
wallet: add a set_ring command
This is so one can set rings for spent key images in case the
attackers don't merge the ring matching patch set.
2018-03-16 10:32:51 +00:00
moneromooo-monero 0590f62ab6
new blockchain_usage tool, reports on output usage 2018-03-16 10:32:46 +00:00
moneromooo-monero db10dd6d83
wallet: make ringdb an object with database state 2018-03-16 10:32:42 +00:00
moneromooo-monero df6fad4c62
blockchain_utilities: new blockchain_blackball tool
It scans for known spent outputs and stores their public keys
in a database which can then be read by the wallet, which can
then avoid using those as fake outs in new transactions.

Usage: monero-blockchain-blackball db1 db2...

This uses the shared database in ~/.shared-ringdb
2018-03-16 10:32:39 +00:00
moneromooo-monero d29ea0455a
wallet: add an output blackball list to avoid using those in rings 2018-03-16 10:32:37 +00:00
moneromooo-monero 18eaf19489
wallet: key reuse mitigation options
If a pre-fork output is spent on both Monero and attack chain,
any post-fork output can be deduced to be a fake output, thereby
decreasing the effective ring size.

The segregate-per-fork-outputs option, on by default, allows
selecting only pre-fork outputs in this case, so that the same
ring can be used when spending it on the other side, which does
not decrease the effective ring size.

This is intended to be SET when intending to spend Monero on the
attack fork, and to be UNSET if not intending to spend Monero
on the attack fork (since it leaks the fact that the output being
spent is pre-fork).

If the user is not certain yet whether they will spend pre-fork
outputs on a key reusing fork, the key-reuse-mitigation2 option
should be SET instead.

If you use this option and intend to spend Monero on both forks,
then spend real Monero first.
2018-03-16 10:32:34 +00:00
moneromooo-monero 5f146873c5
wallet: add shared ring database
This maps key images to rings, so that different forks can reuse
the rings by key image. This avoids revealing the real inputs like
would happen if two forks spent the same outputs with different
rings. This database is meant to be shared with all Monero forks
which don't bother making a new chain, putting users' privacy at
risk in the process. It is placed in a shared data directory by
default ($HOME/.shared-ringdb on UNIX like systems). You may
use --shared-ringdb-dir to override this location, and should
then do so for all Monero forks for them to share the database.
2018-03-16 10:32:29 +00:00
moneromooo-monero 41f727ce42
add RPC to get a histogram of outputs of a given amount 2018-03-16 10:32:26 +00:00
cryptochangements34 833f9fcfe9 show '<Not set>' for empty wallet description 2018-03-15 23:22:45 -04:00
stoffu 6f54c910f7
simplewallet: fix restore height prompt that got disabled by #3175 2018-03-16 11:55:31 +09:00
stoffu 524cbdc1e2
blockchain: fix log message about per-kB fee 2018-03-16 10:43:19 +09:00
Dimitris Apostolou 57c0b1ed9f Fix typos in various files 2018-03-15 18:25:38 +02:00
Riccardo Spagni 51bb7fafac
Merge pull request #3410
c5024c5b simplewallet: add a warning when getting a daemon error in transfer (moneromooo-monero)
2018-03-15 17:10:01 +02:00
Riccardo Spagni 60af9d689b
Merge pull request #3408
e1b526b3 Remove the `Blockchain::get_all_known_block_ids` function. (Jean Pierre Dudey)
2018-03-15 17:09:13 +02:00
Riccardo Spagni 0683f3190d
Merge pull request #3403
843f65cb tests/hash: correctly reference crypto HASH_SIZE for less confusion (AnythingTechPro)
2018-03-15 17:08:51 +02:00
Riccardo Spagni a3f0292c06
Merge pull request #3271
a7266d6d wallet2+cli+rpc: eliminate redundant m_http_client from cli/rpc and delegate calls to wallet2 (stoffu)
71d18656 replace invoke_http_json("/json_rpc",...) with invoke_http_json_rpc("/json_rpc",methodname,...) to reduce boilerplate (stoffu)
2018-03-15 17:07:03 +02:00
moneromooo-monero c5024c5b73
simplewallet: add a warning when getting a daemon error in transfer
A malicious daemon (or MITM) could attempt to add spurious errors
so the wallet tries again, sending another set of fake outs.
2018-03-15 13:33:19 +00:00
stoffu a7266d6d7b
wallet2+cli+rpc: eliminate redundant m_http_client from cli/rpc and delegate calls to wallet2 2018-03-15 22:01:51 +09:00
Jean Pierre Dudey e1b526b371 Remove the `Blockchain::get_all_known_block_ids` function.
This function isn't used in the codebase.

Signed-off-by: Jean Pierre Dudey <jeandudey@hotmail.com>
2018-03-14 21:56:19 -04:00
AnythingTechPro 843f65cbda
tests/hash: correctly reference crypto HASH_SIZE for less confusion 2018-03-14 11:10:54 -04:00
stoffu 71d186566e
replace invoke_http_json("/json_rpc",...) with invoke_http_json_rpc("/json_rpc",methodname,...) to reduce boilerplate 2018-03-14 23:23:59 +09:00
Riccardo Spagni a69c713f8e
Merge pull request #3398
c577abab wallet: fix auto low priority so that it takes effect only when saved default is 0 (stoffu)
2018-03-14 16:18:15 +02:00
Riccardo Spagni 2fe1504c03
Merge pull request #3399
1d39b265 wallet2: fix use_fork_rules() when querying version that is defined but not enabled yet (stoffu)
2018-03-14 16:17:59 +02:00
Riccardo Spagni f9f2d182da
Merge pull request #3395
523371c0 p2p: fix network ID being uninitialised when using exclusive peers (moneromooo-monero)
2018-03-14 16:10:42 +02:00
Riccardo Spagni 8b90e3141a
Merge pull request #3386
9abeff59 wallet2: handle no blocks returned in refresh to mean no new blocks (moneromooo-monero)
2018-03-14 16:10:00 +02:00
Riccardo Spagni 7a44301675
Merge pull request #3385
ec41006c node_rpc_proxy: fix target height caching (moneromooo-monero)
2018-03-14 16:09:40 +02:00
Riccardo Spagni 534369eece
Merge pull request #3384
b63ea060 simplewallet: do not call a RPC when displaying the prompt (moneromooo-monero)
2018-03-14 16:08:14 +02:00
Riccardo Spagni cb72b85bbf
Merge pull request #3372
c3e23b2d ringct: 17% improvement in Borromean signature verification (moneromooo-monero)
2018-03-14 16:06:16 +02:00
Riccardo Spagni 102a51bcd4
Merge pull request #3350
4405e4fc wallet2: check_tx_key() shouldn't require hardware encryption (stoffu)
7dfa5e9e chacha: call prehashed version explicitly as generate_chacha_key_prehashed hash: add prehashed version cn_slow_hash_prehashed slow-hash: let cn_slow_hash take 4th parameter for deciding prehashed or not slow-hash: add support for prehashed version for the other 3 platforms (stoffu)
b2d23b18 crypto: revert odd namespace changes made in #3303 (stoffu)
8705beaf keypair::generate: always require hw::device to avoid possible mistake (stoffu)
27a196b1 device: untangle cyclic depenency (stoffu)
c9b38b47 device: made function prototypes consistent with pre-#3303 codebase (stoffu)
2018-03-14 16:04:10 +02:00
stoffu 4405e4fc73
wallet2: check_tx_key() shouldn't require hardware encryption 2018-03-14 21:00:18 +09:00
stoffu 7dfa5e9e6e
chacha: call prehashed version explicitly as generate_chacha_key_prehashed
hash: add prehashed version cn_slow_hash_prehashed
slow-hash: let cn_slow_hash take 4th parameter for deciding prehashed or not
slow-hash: add support for prehashed version for the other 3 platforms
2018-03-14 21:00:17 +09:00
stoffu b2d23b189e
crypto: revert odd namespace changes made in #3303 2018-03-14 21:00:17 +09:00
stoffu 8705beaf51
keypair::generate: always require hw::device to avoid possible mistake 2018-03-14 21:00:16 +09:00
stoffu 27a196b126
device: untangle cyclic depenency
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-14 21:00:15 +09:00
stoffu c9b38b4765
device: made function prototypes consistent with pre-#3303 codebase 2018-03-14 21:00:06 +09:00
Riccardo Spagni a03d34f4e1
Merge pull request #3378
0014a7cc README.md: Updated OpenBSD build instructions (ston1th)
2018-03-14 13:39:04 +02:00
Riccardo Spagni f2e8e8d23c
Merge pull request #3377
aa8bef0c fix error message typo in wallet2.cpp (cryptochangements34)
2018-03-14 13:38:50 +02:00
Riccardo Spagni ba5f143c09
Merge pull request #3381
fcb180f5 systemd,readme: torsocks config for service (redfish)
2018-03-14 13:38:12 +02:00