aboutsummaryrefslogtreecommitdiff
path: root/src/crypto
diff options
context:
space:
mode:
authorstoffu <stoffu@protonmail.ch>2017-06-20 08:27:31 +0900
committerstoffu <stoffu@protonmail.ch>2017-06-22 18:11:15 +0900
commit8da82256d475656a8a4932b9e2d623f80c7e62e6 (patch)
treeb0da633f40618ad4d199861138e70fd9dd082afb /src/crypto
parentSignature proving payment to destination by only revealing key derivation, no... (diff)
downloadmonero-8da82256d475656a8a4932b9e2d623f80c7e62e6.tar.xz
crypto: moved boost::lock_guard into a smaller scope
Diffstat (limited to '')
-rw-r--r--src/crypto/crypto.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/crypto/crypto.cpp b/src/crypto/crypto.cpp
index 6ae7e5f24..1c7adff3b 100644
--- a/src/crypto/crypto.cpp
+++ b/src/crypto/crypto.cpp
@@ -81,12 +81,16 @@ namespace crypto {
}
/* generate a random 32-byte (256-bit) integer and copy it to res */
- static inline void random_scalar(ec_scalar &res) {
+ static inline void random_scalar_not_thread_safe(ec_scalar &res) {
unsigned char tmp[64];
generate_random_bytes_not_thread_safe(64, tmp);
sc_reduce(tmp);
memcpy(&res, tmp, 32);
}
+ static inline void random_scalar(ec_scalar &res) {
+ boost::lock_guard<boost::mutex> lock(random_lock);
+ random_scalar_not_thread_safe(res);
+ }
static inline void hash_to_scalar(const void *data, size_t length, ec_scalar &res) {
cn_fast_hash(data, length, reinterpret_cast<hash &>(res));
@@ -99,7 +103,6 @@ namespace crypto {
*
*/
secret_key crypto_ops::generate_keys(public_key &pub, secret_key &sec, const secret_key& recovery_key, bool recover) {
- boost::lock_guard<boost::mutex> lock(random_lock);
ge_p3 point;
secret_key rng;
@@ -205,7 +208,6 @@ namespace crypto {
};
void crypto_ops::generate_signature(const hash &prefix_hash, const public_key &pub, const secret_key &sec, signature &sig) {
- boost::lock_guard<boost::mutex> lock(random_lock);
ge_p3 tmp3;
ec_scalar k;
s_comm buf;
@@ -405,7 +407,6 @@ POP_WARNINGS
const public_key *const *pubs, size_t pubs_count,
const secret_key &sec, size_t sec_index,
signature *sig) {
- boost::lock_guard<boost::mutex> lock(random_lock);
size_t i;
ge_p3 image_unp;
ge_dsmp image_pre;