| Index: third_party/twisted_8_1/twisted/conch/ssh/common.py
|
| diff --git a/third_party/twisted_8_1/twisted/conch/ssh/common.py b/third_party/twisted_8_1/twisted/conch/ssh/common.py
|
| deleted file mode 100644
|
| index 8392dc2946d1b601d46ce120ca9acaef5ff24a1d..0000000000000000000000000000000000000000
|
| --- a/third_party/twisted_8_1/twisted/conch/ssh/common.py
|
| +++ /dev/null
|
| @@ -1,130 +0,0 @@
|
| -# -*- test-case-name: twisted.conch.test.test_ssh -*-
|
| -# Copyright (c) 2001-2007 Twisted Matrix Laboratories.
|
| -# See LICENSE for details.
|
| -
|
| -
|
| -"""
|
| -Common functions for the SSH classes.
|
| -
|
| -Maintainer: U{Paul Swartz<mailto:z3p@twistedmatrix.com>}
|
| -"""
|
| -
|
| -import struct, warnings
|
| -
|
| -try:
|
| - from Crypto import Util
|
| -except ImportError:
|
| - warnings.warn("PyCrypto not installed, but continuing anyways!",
|
| - RuntimeWarning)
|
| -
|
| -from twisted.python import randbytes
|
| -
|
| -class Entropy(object):
|
| - """
|
| - A Crypto.Util.randpool.RandomPool mock for compatibility.
|
| - """
|
| - def get_bytes(self, numBytes):
|
| - """
|
| - Get a number of random bytes.
|
| - """
|
| - warnings.warn("entropy.get_bytes is deprecated, please use "
|
| - "twisted.python.randbytes.secureRandom instead.",
|
| - category=DeprecationWarning, stacklevel=2)
|
| - return randbytes.secureRandom(numBytes)
|
| -
|
| -entropy = Entropy()
|
| -
|
| -
|
| -def NS(t):
|
| - """
|
| - net string
|
| - """
|
| - return struct.pack('!L',len(t)) + t
|
| -
|
| -def getNS(s, count=1):
|
| - """
|
| - get net string
|
| - """
|
| - ns = []
|
| - c = 0
|
| - for i in range(count):
|
| - l, = struct.unpack('!L',s[c:c+4])
|
| - ns.append(s[c+4:4+l+c])
|
| - c += 4 + l
|
| - return tuple(ns) + (s[c:],)
|
| -
|
| -def MP(number):
|
| - if number==0: return '\000'*4
|
| - assert number>0
|
| - bn = Util.number.long_to_bytes(number)
|
| - if ord(bn[0])&128:
|
| - bn = '\000' + bn
|
| - return struct.pack('>L',len(bn)) + bn
|
| -
|
| -def getMP(data, count=1):
|
| - """
|
| - Get multiple precision integer out of the string. A multiple precision
|
| - integer is stored as a 4-byte length followed by length bytes of the
|
| - integer. If count is specified, get count integers out of the string.
|
| - The return value is a tuple of count integers followed by the rest of
|
| - the data.
|
| - """
|
| - mp = []
|
| - c = 0
|
| - for i in range(count):
|
| - length, = struct.unpack('>L',data[c:c+4])
|
| - mp.append(Util.number.bytes_to_long(data[c+4:c+4+length]))
|
| - c += 4 + length
|
| - return tuple(mp) + (data[c:],)
|
| -
|
| -def _MPpow(x, y, z):
|
| - """return the MP version of (x**y)%z
|
| - """
|
| - return MP(pow(x,y,z))
|
| -
|
| -def ffs(c, s):
|
| - """
|
| - first from second
|
| - goes through the first list, looking for items in the second, returns the first one
|
| - """
|
| - for i in c:
|
| - if i in s: return i
|
| -
|
| -getMP_py = getMP
|
| -MP_py = MP
|
| -_MPpow_py = _MPpow
|
| -pyPow = pow
|
| -
|
| -def _fastgetMP(data, count=1):
|
| - mp = []
|
| - c = 0
|
| - for i in range(count):
|
| - length = struct.unpack('!L', data[c:c+4])[0]
|
| - mp.append(long(gmpy.mpz(data[c + 4:c + 4 + length][::-1] + '\x00', 256)))
|
| - c += length + 4
|
| - return tuple(mp) + (data[c:],)
|
| -
|
| -def _fastMP(i):
|
| - i2 = gmpy.mpz(i).binary()[::-1]
|
| - return struct.pack('!L', len(i2)) + i2
|
| -
|
| -def _fastMPpow(x, y, z=None):
|
| - r = pyPow(gmpy.mpz(x),y,z).binary()[::-1]
|
| - return struct.pack('!L', len(r)) + r
|
| -
|
| -def _fastpow(x, y, z=None):
|
| - return pyPow(gmpy.mpz(x), y, z)
|
| -
|
| -def install():
|
| - global getMP, MP, _MPpow
|
| - getMP = _fastgetMP
|
| - MP = _fastMP
|
| - _MPpow = _fastMPpow
|
| - __builtins__['pow'] = _fastpow # evil evil
|
| -
|
| -try:
|
| - import gmpy
|
| - install()
|
| -except ImportError:
|
| - pass
|
| -
|
|
|