wallet: warn when payment IDs are used

Subaddresses are better for privacy
This commit is contained in:
moneromooo-monero 2018-07-06 18:14:08 +01:00
parent eed4dba880
commit 2951436704
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3
2 changed files with 21 additions and 4 deletions

View file

@ -3955,6 +3955,24 @@ void simple_wallet::on_money_received(uint64_t height, const crypto::hash &txid,
tr("txid ") << txid << ", " << tr("txid ") << txid << ", " <<
print_money(amount) << ", " << print_money(amount) << ", " <<
tr("idx ") << subaddr_index; tr("idx ") << subaddr_index;
const uint64_t warn_height = m_wallet->nettype() == TESTNET ? 1000000 : m_wallet->nettype() == STAGENET ? 50000 : 1650000;
if (height >= warn_height)
{
std::vector<tx_extra_field> tx_extra_fields;
parse_tx_extra(tx.extra, tx_extra_fields); // failure ok
tx_extra_nonce extra_nonce;
if (find_tx_extra_field_by_type(tx_extra_fields, extra_nonce))
{
crypto::hash8 payment_id8 = crypto::null_hash8;
if (get_encrypted_payment_id_from_tx_extra_nonce(extra_nonce.nonce, payment_id8))
message_writer() <<
tr("NOTE: this transaction uses an encrypted payment ID: consider using subaddresses instead");
else
message_writer(console_color_red, false) <<
tr("WARNING: this transaction uses an unencrypted payment ID: consider using subaddresses instead");
}
}
if (m_auto_refresh_refreshing) if (m_auto_refresh_refreshing)
m_cmd_binder.print_prompt(); m_cmd_binder.print_prompt();
else else
@ -4553,6 +4571,7 @@ bool simple_wallet::transfer_main(int transfer_type, const std::vector<std::stri
return true; return true;
} }
payment_id_seen = true; payment_id_seen = true;
message_writer() << tr("Unencrypted payment IDs are bad for privacy: ask the recipient to use subaddresses instead");
} }
uint64_t locked_blocks = 0; uint64_t locked_blocks = 0;

View file

@ -1553,6 +1553,7 @@ void wallet2::process_new_transaction(const crypto::hash &txid, const cryptonote
{ {
// We got a payment ID to go with this tx // We got a payment ID to go with this tx
LOG_PRINT_L2("Found encrypted payment ID: " << payment_id8); LOG_PRINT_L2("Found encrypted payment ID: " << payment_id8);
MINFO("Consider using subaddresses instead of encrypted payment IDs");
if (tx_pub_key != null_pkey) if (tx_pub_key != null_pkey)
{ {
if (!m_account.get_device().decrypt_payment_id(payment_id8, tx_pub_key, m_account.get_keys().m_view_secret_key)) if (!m_account.get_device().decrypt_payment_id(payment_id8, tx_pub_key, m_account.get_keys().m_view_secret_key))
@ -1576,12 +1577,9 @@ void wallet2::process_new_transaction(const crypto::hash &txid, const cryptonote
else if (get_payment_id_from_tx_extra_nonce(extra_nonce.nonce, payment_id)) else if (get_payment_id_from_tx_extra_nonce(extra_nonce.nonce, payment_id))
{ {
LOG_PRINT_L2("Found unencrypted payment ID: " << payment_id); LOG_PRINT_L2("Found unencrypted payment ID: " << payment_id);
MWARNING("Found unencrypted payment ID: these are bad for privacy, consider using subaddresses instead");
} }
} }
else if (get_payment_id_from_tx_extra_nonce(extra_nonce.nonce, payment_id))
{
LOG_PRINT_L2("Found unencrypted payment ID: " << payment_id);
}
for (const auto& i : tx_money_got_in_outs) for (const auto& i : tx_money_got_in_outs)
{ {