aboutsummaryrefslogtreecommitdiff
path: root/src/device/device_ledger.cpp
diff options
context:
space:
mode:
authorFrançois Colas <francois.colas@ledger.fr>2020-08-28 12:01:57 +0200
committerFrançois Colas <francois.colas@ledger.fr>2020-08-28 12:01:57 +0200
commit975ae22211ad7b674dd20bb4ffa9d67d11e06ba5 (patch)
tree1f00c570ad6547c68b0b9e10856cfd549d18b114 /src/device/device_ledger.cpp
parentUpdate minimal Ledger Monero app version (diff)
downloadmonero-975ae22211ad7b674dd20bb4ffa9d67d11e06ba5.tar.xz
Fix send scalar z in plaintext
The scalar z has not been generated on the HW thus it can't be sent encrypted. The value is derived from the exported private view key.
Diffstat (limited to 'src/device/device_ledger.cpp')
-rw-r--r--src/device/device_ledger.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/device/device_ledger.cpp b/src/device/device_ledger.cpp
index b0ccb329e..3e0afeb65 100644
--- a/src/device/device_ledger.cpp
+++ b/src/device/device_ledger.cpp
@@ -2126,7 +2126,7 @@ namespace hw {
AUTO_LOCK_CMD();
#ifdef DEBUG_HWDEVICE
const rct::key p_x = hw::ledger::decrypt(p);
- const rct::key z_x = hw::ledger::decrypt(z);
+ const rct::key z_x = z;
rct::key I_x;
rct::key D_x;
const rct::key H_x = H;
@@ -2146,7 +2146,8 @@ namespace hw {
//p
this->send_secret(p.bytes, offset);
//z
- this->send_secret(z.bytes, offset);
+ memmove(this->buffer_send+offset, z.bytes, 32);
+ offset += 32;
//H
memmove(this->buffer_send+offset, H.bytes, 32);
offset += 32;
@@ -2225,7 +2226,7 @@ namespace hw {
const rct::key c_x = c;
const rct::key a_x = hw::ledger::decrypt(a);
const rct::key p_x = hw::ledger::decrypt(p);
- const rct::key z_x = hw::ledger::decrypt(z);
+ const rct::key z_x = z;
const rct::key mu_P_x = mu_P;
const rct::key mu_C_x = mu_C;
rct::key s_x;
@@ -2249,7 +2250,8 @@ namespace hw {
//p
this->send_secret(p.bytes, offset);
//z
- this->send_secret(z.bytes, offset);
+ memmove(this->buffer_send+offset, z.bytes, 32);
+ offset += 32;
//mu_P
memmove(this->buffer_send+offset, mu_P.bytes, 32);
offset += 32;