diff options
Diffstat (limited to 'Lib/os.py')
-rw-r--r-- | Lib/os.py | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -656,3 +656,24 @@ try: _make_statvfs_result) except NameError: # statvfs_result may not exist pass + +if not _exists("urandom"): + _urandomfd = None + def urandom(n): + """urandom(n) -> str + + Return a string of n random bytes suitable for cryptographic use. + + """ + global _urandomfd + if not _urandomfd: + try: + _urandomfd = open("/dev/urandom", O_RDONLY) + except: + _urandomfd = NotImplementedError + if _urandomfd is NotImplementedError: + raise NotImplementedError("/dev/urandom (or equivalent) not found") + bytes = "" + while len(bytes) < n: + bytes += read(_urandomfd, n - len(bytes)) + return bytes |