Linux tsuru-no-tsurugi 5.15.0-186-generic #196-Ubuntu SMP Sat Jun 20 16:09:34 UTC 2026 x86_64
Apache/2.4.52 (Ubuntu)
Server IP : 192.168.0.18 & Your IP : 216.73.216.68
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
python3 /
dist-packages /
twisted /
python /
Delete
Unzip
Name
Size
Permission
Date
Action
__pycache__
[ DIR ]
drwxr-xr-x
2026-06-05 06:15
_pydoctortemplates
[ DIR ]
drwxr-xr-x
2026-06-05 06:15
test
[ DIR ]
drwxr-xr-x
2026-06-05 06:15
__init__.py
598
B
-rw-r--r--
2022-02-07 22:12
_appdirs.py
820
B
-rw-r--r--
2022-02-07 22:12
_inotify.py
3.41
KB
-rw-r--r--
2022-02-07 22:12
_pydoctor.py
6.58
KB
-rw-r--r--
2022-02-07 22:12
_release.py
18.44
KB
-rw-r--r--
2022-02-07 22:12
_shellcomp.py
24.69
KB
-rw-r--r--
2022-02-07 22:12
_textattributes.py
8.88
KB
-rw-r--r--
2022-02-07 22:12
_tzhelper.py
3.05
KB
-rw-r--r--
2022-02-07 22:12
_url.py
228
B
-rw-r--r--
2022-02-07 22:12
compat.py
16.53
KB
-rw-r--r--
2022-02-07 22:12
components.py
13.87
KB
-rw-r--r--
2022-02-07 22:12
constants.py
513
B
-rw-r--r--
2022-02-07 22:12
context.py
3.96
KB
-rw-r--r--
2022-02-07 22:12
deprecate.py
27.02
KB
-rw-r--r--
2022-02-07 22:12
failure.py
26.37
KB
-rw-r--r--
2022-02-07 22:12
fakepwd.py
6.57
KB
-rw-r--r--
2022-02-07 22:12
filepath.py
52.76
KB
-rw-r--r--
2022-02-07 22:12
formmethod.py
11.82
KB
-rw-r--r--
2022-02-07 22:12
htmlizer.py
3.54
KB
-rw-r--r--
2022-02-07 22:12
lockfile.py
7.84
KB
-rw-r--r--
2022-02-07 22:12
log.py
21.78
KB
-rw-r--r--
2022-02-07 22:12
logfile.py
9.88
KB
-rw-r--r--
2022-02-07 22:12
modules.py
26.09
KB
-rw-r--r--
2022-02-07 22:12
monkey.py
2.11
KB
-rw-r--r--
2022-02-07 22:12
procutils.py
1.34
KB
-rw-r--r--
2022-02-07 22:12
randbytes.py
3.38
KB
-rw-r--r--
2022-02-07 22:12
rebuild.py
6.96
KB
-rw-r--r--
2022-02-07 22:12
reflect.py
20
KB
-rw-r--r--
2022-02-07 22:12
release.py
1.08
KB
-rw-r--r--
2022-02-07 22:12
roots.py
7.01
KB
-rw-r--r--
2022-02-07 22:12
runtime.py
5.79
KB
-rw-r--r--
2022-02-07 22:12
sendmsg.py
2.62
KB
-rw-r--r--
2022-02-07 22:12
shortcut.py
2.25
KB
-rw-r--r--
2022-02-07 22:12
syslog.py
3.57
KB
-rw-r--r--
2022-02-07 22:12
systemd.py
2.92
KB
-rw-r--r--
2022-02-07 22:12
text.py
5.29
KB
-rw-r--r--
2022-02-07 22:12
threadable.py
3.25
KB
-rw-r--r--
2022-02-07 22:12
threadpool.py
9.96
KB
-rw-r--r--
2022-02-07 22:12
twisted-completion.zsh
1.34
KB
-rw-r--r--
2022-02-07 22:12
url.py
244
B
-rw-r--r--
2022-02-07 22:12
urlpath.py
8.25
KB
-rw-r--r--
2022-02-07 22:12
usage.py
33.77
KB
-rw-r--r--
2022-02-07 22:12
util.py
26.79
KB
-rw-r--r--
2022-02-07 22:12
versions.py
273
B
-rw-r--r--
2022-02-07 22:12
win32.py
4.68
KB
-rw-r--r--
2022-02-07 22:12
zippath.py
8.82
KB
-rw-r--r--
2022-02-07 22:12
zipstream.py
9.45
KB
-rw-r--r--
2022-02-07 22:12
Save
Rename
# -*- test-case-name: twisted.test.test_randbytes -*- # Copyright (c) Twisted Matrix Laboratories. # See LICENSE for details. """ Cryptographically secure random implementation, with fallback on normal random. """ import os import random import warnings getrandbits = getattr(random, "getrandbits", None) _fromhex = bytes.fromhex class SecureRandomNotAvailable(RuntimeError): """ Exception raised when no secure random algorithm is found. """ class SourceNotAvailable(RuntimeError): """ Internal exception used when a specific random source is not available. """ class RandomFactory: """ Factory providing L{secureRandom} and L{insecureRandom} methods. You shouldn't have to instantiate this class, use the module level functions instead: it is an implementation detail and could be removed or changed arbitrarily. """ # This variable is no longer used, and will eventually be removed. randomSources = () getrandbits = getrandbits def _osUrandom(self, nbytes): """ Wrapper around C{os.urandom} that cleanly manage its absence. """ try: return os.urandom(nbytes) except (AttributeError, NotImplementedError) as e: raise SourceNotAvailable(e) def secureRandom(self, nbytes, fallback=False): """ Return a number of secure random bytes. @param nbytes: number of bytes to generate. @type nbytes: C{int} @param fallback: Whether the function should fallback on non-secure random or not. Default to C{False}. @type fallback: C{bool} @return: a string of random bytes. @rtype: C{str} """ try: return self._osUrandom(nbytes) except SourceNotAvailable: pass if fallback: warnings.warn( "urandom unavailable - " "proceeding with non-cryptographically secure random source", category=RuntimeWarning, stacklevel=2, ) return self.insecureRandom(nbytes) else: raise SecureRandomNotAvailable("No secure random source available") def _randBits(self, nbytes): """ Wrapper around C{os.getrandbits}. """ if self.getrandbits is not None: n = self.getrandbits(nbytes * 8) hexBytes = ("%%0%dx" % (nbytes * 2)) % n return _fromhex(hexBytes) raise SourceNotAvailable("random.getrandbits is not available") _maketrans = bytes.maketrans _BYTES = _maketrans(b"", b"") def _randModule(self, nbytes): """ Wrapper around the C{random} module. """ return b"".join([bytes([random.choice(self._BYTES)]) for i in range(nbytes)]) def insecureRandom(self, nbytes): """ Return a number of non secure random bytes. @param nbytes: number of bytes to generate. @type nbytes: C{int} @return: a string of random bytes. @rtype: C{str} """ for src in ("_randBits", "_randModule"): try: return getattr(self, src)(nbytes) except SourceNotAvailable: pass factory = RandomFactory() secureRandom = factory.secureRandom insecureRandom = factory.insecureRandom del factory __all__ = ["secureRandom", "insecureRandom", "SecureRandomNotAvailable"]