From 9f5fe7910f4a1bf5a425837d4915e332b945eb7b Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Fri, 17 Apr 2020 19:05:35 +0200 Subject: bpo-40286: Add randbytes() method to random.Random (GH-19527) Add random.randbytes() function and random.Random.randbytes() method to generate random bytes. Modify secrets.token_bytes() to use SystemRandom.randbytes() rather than calling directly os.urandom(). Rename also genrand_int32() to genrand_uint32(), since it returns an unsigned 32-bit integer, not a signed integer. The _random module is now built with Py_BUILD_CORE_MODULE defined. --- Lib/secrets.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'Lib/secrets.py') diff --git a/Lib/secrets.py b/Lib/secrets.py index 130434229e..a546efbdd4 100644 --- a/Lib/secrets.py +++ b/Lib/secrets.py @@ -14,7 +14,6 @@ __all__ = ['choice', 'randbelow', 'randbits', 'SystemRandom', import base64 import binascii -import os from hmac import compare_digest from random import SystemRandom @@ -44,7 +43,7 @@ def token_bytes(nbytes=None): """ if nbytes is None: nbytes = DEFAULT_ENTROPY - return os.urandom(nbytes) + return _sysrand.randbytes(nbytes) def token_hex(nbytes=None): """Return a random text string, in hexadecimal. -- cgit v1.2.1