diff options
author | luigi1111 <luigi1111w@gmail.com> | 2019-11-19 10:01:03 -0600 |
---|---|---|
committer | luigi1111 <luigi1111w@gmail.com> | 2019-11-19 10:01:03 -0600 |
commit | 6def88ad405b39f632a91afa3aacbb92ecc63c1f (patch) | |
tree | d7738c1b8992c1cedce3200b48d28b7233d7f673 | |
parent | Merge pull request #6152 (diff) | |
parent | make d2h et al. constant-time (diff) | |
download | monero-6def88ad405b39f632a91afa3aacbb92ecc63c1f.tar.xz |
Merge pull request #6156v0.15.0.1
443b1e9 make d2h et al. constant-time (jtgrassie)
-rw-r--r-- | src/ringct/rctTypes.cpp | 38 |
1 files changed, 8 insertions, 30 deletions
diff --git a/src/ringct/rctTypes.cpp b/src/ringct/rctTypes.cpp index 2c4e5fc3b..1763542db 100644 --- a/src/ringct/rctTypes.cpp +++ b/src/ringct/rctTypes.cpp @@ -31,6 +31,7 @@ #include "misc_log_ex.h" #include "cryptonote_config.h" #include "rctTypes.h" +#include "int-util.h" using namespace crypto; using namespace std; @@ -118,40 +119,22 @@ namespace rct { //uint long long to 32 byte key void d2h(key & amounth, const xmr_amount in) { sc_0(amounth.bytes); - xmr_amount val = in; - int i = 0; - while (val != 0) { - amounth[i] = (unsigned char)(val & 0xFF); - i++; - val /= (xmr_amount)256; - } + memcpy_swap64le(amounth.bytes, &in, 1); } //uint long long to 32 byte key key d2h(const xmr_amount in) { key amounth; - sc_0(amounth.bytes); - xmr_amount val = in; - int i = 0; - while (val != 0) { - amounth[i] = (unsigned char)(val & 0xFF); - i++; - val /= (xmr_amount)256; - } + d2h(amounth, in); return amounth; } //uint long long to int[64] void d2b(bits amountb, xmr_amount val) { int i = 0; - while (val != 0) { - amountb[i] = val & 1; - i++; - val >>= 1; - } while (i < 64) { - amountb[i] = 0; - i++; + amountb[i++] = val & 1; + val >>= 1; } } @@ -172,16 +155,11 @@ namespace rct { int val = 0, i = 0, j = 0; for (j = 0; j < 8; j++) { val = (unsigned char)test.bytes[j]; - i = 8 * j; - while (val != 0) { - amountb2[i] = val & 1; - i++; + i = 0; + while (i < 8) { + amountb2[j*8+i++] = val & 1; val >>= 1; } - while (i < 8 * (j + 1)) { - amountb2[i] = 0; - i++; - } } } |