mirror of
https://github.com/monero-project/monero.git
synced 2025-05-12 05:05:06 -04:00
Add the possibility to export private view key for fast scan.
On client startup the device asks for authorization to export the private view key. If user agree, the client hold the private view key allowing a fast blockchain scan. If the user does not agree, the blockchain scan is fully done via the device.
This commit is contained in:
parent
100b7bc10d
commit
c77d2bfaa0
7 changed files with 200 additions and 93 deletions
|
@ -78,6 +78,7 @@ namespace hw {
|
|||
return false;
|
||||
}
|
||||
|
||||
|
||||
class device {
|
||||
protected:
|
||||
std::string name;
|
||||
|
@ -89,10 +90,12 @@ namespace hw {
|
|||
virtual ~device() {}
|
||||
|
||||
explicit virtual operator bool() const = 0;
|
||||
|
||||
static const int SIGNATURE_REAL = 0;
|
||||
static const int SIGNATURE_FAKE = 1;
|
||||
|
||||
enum device_mode {
|
||||
NONE,
|
||||
TRANSACTION_CREATE_REAL,
|
||||
TRANSACTION_CREATE_FAKE,
|
||||
TRANSACTION_PARSE
|
||||
};
|
||||
|
||||
/* ======================================================================= */
|
||||
/* SETUP/TEARDOWN */
|
||||
|
@ -106,6 +109,9 @@ namespace hw {
|
|||
virtual bool connect(void) = 0;
|
||||
virtual bool disconnect(void) = 0;
|
||||
|
||||
virtual bool set_mode(device_mode mode) = 0;
|
||||
|
||||
|
||||
/* ======================================================================= */
|
||||
/* LOCKER */
|
||||
/* ======================================================================= */
|
||||
|
@ -166,8 +172,6 @@ namespace hw {
|
|||
|
||||
virtual bool open_tx(crypto::secret_key &tx_key) = 0;
|
||||
|
||||
virtual bool set_signature_mode(unsigned int sig_mode) = 0;
|
||||
|
||||
virtual bool encrypt_payment_id(crypto::hash8 &payment_id, const crypto::public_key &public_key, const crypto::secret_key &secret_key) = 0;
|
||||
bool decrypt_payment_id(crypto::hash8 &payment_id, const crypto::public_key &public_key, const crypto::secret_key &secret_key)
|
||||
{
|
||||
|
@ -191,6 +195,12 @@ namespace hw {
|
|||
virtual bool close_tx(void) = 0;
|
||||
} ;
|
||||
|
||||
struct reset_mode {
|
||||
device& hwref;
|
||||
reset_mode(hw::device& dev) : hwref(dev) { }
|
||||
~reset_mode() { hwref.set_mode(hw::device::NONE);}
|
||||
};
|
||||
|
||||
device& get_device(const std::string device_descriptor) ;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue