crypto: replace rand<T>()%N idiom with unbiased rand_idx(N)

This commit is contained in:
stoffu 2019-04-03 14:10:24 +09:00
parent b6726aaa6c
commit a2195b9b7f
No known key found for this signature in database
GPG key ID: 41DAB8343A9EC012
5 changed files with 36 additions and 12 deletions

View file

@ -1259,7 +1259,7 @@ namespace nodetool
}
}
else
random_index = crypto::rand<size_t>() % filtered.size();
random_index = crypto::rand_idx(filtered.size());
CHECK_AND_ASSERT_MES(random_index < filtered.size(), false, "random_index < filtered.size() failed!!");
random_index = filtered[random_index];
@ -1313,7 +1313,7 @@ namespace nodetool
return true;
size_t try_count = 0;
size_t current_index = crypto::rand<size_t>()%m_seed_nodes.size();
size_t current_index = crypto::rand_idx(m_seed_nodes.size());
const net_server& server = m_network_zones.at(epee::net_utils::zone::public_).m_net_server;
while(true)
{

View file

@ -398,7 +398,7 @@ namespace nodetool
return false;
}
size_t random_index = crypto::rand<size_t>() % m_peers_gray.size();
size_t random_index = crypto::rand_idx(m_peers_gray.size());
peers_indexed::index<by_time>::type& by_time_index = m_peers_gray.get<by_time>();
pe = *epee::misc_utils::move_it_backward(--by_time_index.end(), random_index);