X7ROOT File Manager
Current Path:
/usr/lib64/python2.7/site-packages/dns
usr
/
lib64
/
python2.7
/
site-packages
/
dns
/
📁
..
📄
__init__.py
(1.3 KB)
📄
__init__.pyc
(765 B)
📄
__init__.pyo
(765 B)
📄
dnssec.py
(14.37 KB)
📄
dnssec.pyc
(13.46 KB)
📄
dnssec.pyo
(13.38 KB)
📄
e164.py
(3.01 KB)
📄
e164.pyc
(2.76 KB)
📄
e164.pyo
(2.76 KB)
📄
edns.py
(4.21 KB)
📄
edns.pyc
(5.2 KB)
📄
edns.pyo
(5.2 KB)
📄
entropy.py
(3.79 KB)
📄
entropy.pyc
(3.7 KB)
📄
entropy.pyo
(3.7 KB)
📄
exception.py
(1.29 KB)
📄
exception.pyc
(1.56 KB)
📄
exception.pyo
(1.56 KB)
📄
flags.py
(2.62 KB)
📄
flags.pyc
(2.58 KB)
📄
flags.pyo
(2.58 KB)
📄
grange.py
(1.83 KB)
📄
grange.pyc
(1.15 KB)
📄
grange.pyo
(1.08 KB)
📄
hash.py
(2.34 KB)
📄
hash.pyc
(2.11 KB)
📄
hash.pyo
(2.11 KB)
📄
inet.py
(3.16 KB)
📄
inet.pyc
(2.61 KB)
📄
inet.pyo
(2.61 KB)
📄
ipv4.py
(1.81 KB)
📄
ipv4.pyc
(1.37 KB)
📄
ipv4.pyo
(1.37 KB)
📄
ipv6.py
(4.97 KB)
📄
ipv6.pyc
(3.44 KB)
📄
ipv6.pyo
(3.44 KB)
📄
message.py
(41.63 KB)
📄
message.pyc
(36.39 KB)
📄
message.pyo
(36.39 KB)
📄
name.py
(21.82 KB)
📄
name.pyc
(23 KB)
📄
name.pyo
(23 KB)
📄
namedict.py
(2.06 KB)
📄
namedict.pyc
(1.92 KB)
📄
namedict.pyo
(1.92 KB)
📄
node.py
(5.89 KB)
📄
node.pyc
(6.15 KB)
📄
node.pyo
(6.15 KB)
📄
opcode.py
(2.55 KB)
📄
opcode.pyc
(2.49 KB)
📄
opcode.pyo
(2.49 KB)
📄
query.py
(17.89 KB)
📄
query.pyc
(15.31 KB)
📄
query.pyo
(15.31 KB)
📄
rcode.py
(3.03 KB)
📄
rcode.pyc
(2.92 KB)
📄
rcode.pyo
(2.92 KB)
📄
rdata.py
(15.34 KB)
📄
rdata.pyc
(16.59 KB)
📄
rdata.pyo
(16.59 KB)
📄
rdataclass.py
(3.22 KB)
📄
rdataclass.pyc
(2.96 KB)
📄
rdataclass.pyo
(2.96 KB)
📄
rdataset.py
(11.28 KB)
📄
rdataset.pyc
(11.08 KB)
📄
rdataset.pyo
(11.03 KB)
📄
rdatatype.py
(5.07 KB)
📄
rdatatype.pyc
(5.29 KB)
📄
rdatatype.pyo
(5.29 KB)
📁
rdtypes
📄
renderer.py
(11.63 KB)
📄
renderer.pyc
(10.85 KB)
📄
renderer.pyo
(10.75 KB)
📄
resolver.py
(45.35 KB)
📄
resolver.pyc
(37.16 KB)
📄
resolver.pyo
(37.16 KB)
📄
reversename.py
(3.03 KB)
📄
reversename.pyc
(2.4 KB)
📄
reversename.pyo
(2.4 KB)
📄
rrset.py
(5.76 KB)
📄
rrset.pyc
(6.17 KB)
📄
rrset.pyo
(6.17 KB)
📄
set.py
(7.66 KB)
📄
set.pyc
(9.81 KB)
📄
set.pyo
(9.81 KB)
📄
tokenizer.py
(17.54 KB)
📄
tokenizer.pyc
(16.92 KB)
📄
tokenizer.pyo
(16.92 KB)
📄
tsig.py
(8.1 KB)
📄
tsig.pyc
(8.08 KB)
📄
tsig.pyo
(8.08 KB)
📄
tsigkeyring.py
(1.61 KB)
📄
tsigkeyring.pyc
(1.16 KB)
📄
tsigkeyring.pyo
(1.16 KB)
📄
ttl.py
(2.13 KB)
📄
ttl.pyc
(1.48 KB)
📄
ttl.pyo
(1.48 KB)
📄
update.py
(9.92 KB)
📄
update.pyc
(8.27 KB)
📄
update.pyo
(8.27 KB)
📄
version.py
(1.24 KB)
📄
version.pyc
(560 B)
📄
version.pyo
(560 B)
📄
wiredata.py
(2.53 KB)
📄
wiredata.pyc
(2.19 KB)
📄
wiredata.pyo
(2.19 KB)
📄
zone.py
(37.94 KB)
📄
zone.pyc
(33.52 KB)
📄
zone.pyo
(33.52 KB)
Editing: 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 time 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: try: import sha self.hash = sha.new() self.hash_len = 20 except: import md5 self.hash = md5.new() self.hash_len = 16 self.pool = '\0' * self.hash_len if not seed is None: self.stir(seed) self.seeded = True else: self.seeded = False def stir(self, entropy, already_locked=False): if not already_locked: self.lock.acquire() try: bytes = [ord(c) for c in self.pool] for c in entropy: if self.pool_index == self.hash_len: self.pool_index = 0 b = ord(c) & 0xff bytes[self.pool_index] ^= b self.pool_index += 1 self.pool = ''.join([chr(c) for c in bytes]) finally: if not already_locked: self.lock.release() def _maybe_seed(self): if not self.seeded: try: seed = os.urandom(16) except: try: r = file('/dev/urandom', 'r', 0) try: seed = r.read(16) finally: r.close() except: seed = str(time.time()) self.seeded = True self.stir(seed, True) def random_8(self): self.lock.acquire() self._maybe_seed() try: if self.digest is None or self.next_byte == self.hash_len: self.hash.update(self.pool) self.digest = self.hash.digest() self.stir(self.digest, True) self.next_byte = 0 value = ord(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 > 4294967296L: raise ValueError('too big') if size > 65536: rand = self.random_32 max = 4294967295L elif size > 256: rand = self.random_16 max = 65535 else: rand = self.random_8 max = 255 return (first + size * rand() // (max + 1)) pool = EntropyPool() def random_16(): return pool.random_16() def between(first, last): return pool.random_between(first, last)
Upload File
Create Folder