From: Bob Halley Date: Thu, 4 Aug 2016 13:03:31 +0000 (-0700) Subject: Use random.SystemRandom when available. X-Git-Tag: v1.15.0~31 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=52e95798b4fe36e393ca7a90678f12ff0233c96a;p=thirdparty%2Fdnspython.git Use random.SystemRandom when available. --- diff --git a/dns/entropy.py b/dns/entropy.py index 22114579..7a2d87d1 100644 --- a/dns/entropy.py +++ b/dns/entropy.py @@ -14,6 +14,7 @@ # OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. import os +import random import time from ._compat import long, binary_type try: @@ -122,10 +123,19 @@ class EntropyPool(object): pool = EntropyPool() +try: + system_random = random.SystemRandom() +except: + system_random = None def random_16(): - return pool.random_16() - + if system_random is not None: + return system_random.randrange(0, 65536) + else: + return pool.random_16() def between(first, last): - return pool.random_between(first, last) + if system_random is not None: + return system_random.randrange(first, last + 1) + else: + return pool.random_between(first, last)