diff options
| author | stoffu <stoffu@protonmail.ch> | 2018-08-16 22:08:58 +0900 |
|---|---|---|
| committer | stoffu <stoffu@protonmail.ch> | 2018-08-16 22:26:30 +0900 |
| commit | 1f2409e9e2c15e1b96c2bcb3d7bfd77091b2a504 (patch) | |
| tree | ca3263416292ee39c8e1b236ac554b317c209c94 /src/ringct/rctSigs.cpp | |
| parent | b780cf4db1f9dfc49e7f16afc47892a5b40fe68a (diff) | |
| download | monzero-core-1f2409e9e2c15e1b96c2bcb3d7bfd77091b2a504.tar.gz monzero-core-1f2409e9e2c15e1b96c2bcb3d7bfd77091b2a504.tar.xz monzero-core-1f2409e9e2c15e1b96c2bcb3d7bfd77091b2a504.zip | |
Do memwipe for critical secret keys copied to rct::key
Diffstat (limited to 'src/ringct/rctSigs.cpp')
| -rw-r--r-- | src/ringct/rctSigs.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/ringct/rctSigs.cpp b/src/ringct/rctSigs.cpp index f74216ed4..cc966c44b 100644 --- a/src/ringct/rctSigs.cpp +++ b/src/ringct/rctSigs.cpp @@ -492,7 +492,9 @@ namespace rct { for (size_t j = 0; j < outPk.size(); j++) { sc_sub(sk[rows].bytes, sk[rows].bytes, outSk[j].mask.bytes); //subtract output masks in last row.. } - return MLSAG_Gen(message, M, sk, kLRki, mscout, index, rows, hwdev); + mgSig result = MLSAG_Gen(message, M, sk, kLRki, mscout, index, rows, hwdev); + memwipe(sk.data(), sk.size() * sizeof(key)); + return result; } @@ -521,7 +523,9 @@ namespace rct { M[i][0] = pubs[i].dest; subKeys(M[i][1], pubs[i].mask, Cout); } - return MLSAG_Gen(message, M, sk, kLRki, mscout, index, rows, hwdev); + mgSig result = MLSAG_Gen(message, M, sk, kLRki, mscout, index, rows, hwdev); + memwipe(&sk[0], sizeof(key)); + return result; } |
