ledger: use software device if we have view key

This commit is contained in:
tobtoht 2021-06-04 15:02:06 +02:00 committed by selsta
parent d188b5f51f
commit 49beb8da17
No known key found for this signature in database
GPG key ID: 2EA0A99A8B07AE5E
2 changed files with 13 additions and 6 deletions

View file

@ -529,9 +529,7 @@ namespace hw {
} }
bool device_ledger::init(void) { bool device_ledger::init(void) {
#ifdef DEBUG_HWDEVICE
this->controle_device = &hw::get_device("default"); this->controle_device = &hw::get_device("default");
#endif
this->release(); this->release();
hw_device.init(); hw_device.init();
MDEBUG( "Device "<<this->id <<" HIDUSB inited"); MDEBUG( "Device "<<this->id <<" HIDUSB inited");
@ -750,6 +748,12 @@ namespace hw {
} }
crypto::public_key device_ledger::get_subaddress_spend_public_key(const cryptonote::account_keys& keys, const cryptonote::subaddress_index &index) { crypto::public_key device_ledger::get_subaddress_spend_public_key(const cryptonote::account_keys& keys, const cryptonote::subaddress_index &index) {
if (has_view_key) {
cryptonote::account_keys keys_{keys};
keys_.m_view_secret_key = this->viewkey;
return this->controle_device->get_subaddress_spend_public_key(keys_, index);
}
AUTO_LOCK_CMD(); AUTO_LOCK_CMD();
crypto::public_key D; crypto::public_key D;
@ -801,6 +805,12 @@ namespace hw {
} }
cryptonote::account_public_address device_ledger::get_subaddress(const cryptonote::account_keys& keys, const cryptonote::subaddress_index &index) { cryptonote::account_public_address device_ledger::get_subaddress(const cryptonote::account_keys& keys, const cryptonote::subaddress_index &index) {
if (has_view_key) {
cryptonote::account_keys keys_{keys};
keys_.m_view_secret_key = this->viewkey;
return this->controle_device->get_subaddress(keys_, index);
}
AUTO_LOCK_CMD(); AUTO_LOCK_CMD();
cryptonote::account_public_address address; cryptonote::account_public_address address;

View file

@ -192,11 +192,8 @@ namespace hw {
// To speed up blockchain parsing the view key maybe handle here. // To speed up blockchain parsing the view key maybe handle here.
crypto::secret_key viewkey; crypto::secret_key viewkey;
bool has_view_key; bool has_view_key;
//extra debug
#ifdef DEBUG_HWDEVICE
device *controle_device; device *controle_device;
#endif
public: public:
device_ledger(); device_ledger();