SILENT KILLERPanel

Current Path: > > > usr > lib > python3.6 > > > site-packages > dns


Operation   : Linux premium131.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
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: ///usr/lib/python3.6///site-packages/dns

NameTypeSizeLast ModifiedActions
__pycache__ Directory - -
rdtypes Directory - -
__init__.py File 1327 bytes September 20 2016 16:24:02.
_compat.py File 1313 bytes September 20 2016 16:24:02.
dnssec.py File 14791 bytes September 20 2016 16:24:02.
e164.py File 3147 bytes September 20 2016 16:24:02.
edns.py File 4384 bytes September 20 2016 16:24:02.
entropy.py File 4465 bytes September 20 2016 16:24:02.
exception.py File 4626 bytes September 20 2016 19:13:40.
flags.py File 2664 bytes September 20 2016 16:24:02.
grange.py File 1973 bytes September 20 2016 16:24:02.
hash.py File 1100 bytes September 20 2016 16:24:02.
inet.py File 3242 bytes September 20 2016 16:24:02.
ipv4.py File 2031 bytes September 20 2016 16:24:02.
ipv6.py File 5293 bytes September 20 2016 16:24:02.
message.py File 43129 bytes September 26 2016 15:38:18.
name.py File 29425 bytes May 23 2024 10:29:27.
namedict.py File 3677 bytes September 20 2016 16:24:02.
node.py File 6056 bytes September 20 2016 16:24:02.
opcode.py File 2538 bytes September 20 2016 16:24:02.
query.py File 19645 bytes May 23 2024 10:29:27.
rcode.py File 3104 bytes September 20 2016 16:24:02.
rdata.py File 14997 bytes September 20 2016 16:24:02.
rdataclass.py File 3258 bytes September 20 2016 16:24:02.
rdataset.py File 11556 bytes September 20 2016 16:24:02.
rdatatype.py File 5339 bytes September 20 2016 19:54:45.
renderer.py File 11923 bytes September 20 2016 16:24:02.
resolver.py File 52105 bytes September 26 2016 15:52:30.
reversename.py File 3311 bytes September 20 2016 16:24:02.
rrset.py File 5995 bytes September 25 2016 19:25:33.
set.py File 7715 bytes September 20 2016 16:24:02.
tokenizer.py File 18313 bytes September 20 2016 16:24:02.
tsig.py File 7718 bytes September 20 2016 16:24:02.
tsigkeyring.py File 1737 bytes September 20 2016 16:24:02.
ttl.py File 2283 bytes September 20 2016 16:24:02.
update.py File 10012 bytes September 20 2016 16:24:02.
version.py File 1258 bytes September 20 2016 16:24:02.
wiredata.py File 3731 bytes September 20 2016 16:24:02.
zone.py File 40026 bytes September 29 2016 22:29:39.

Reading 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)

SILENT KILLER Tool