Index: third_party/tlslite/tlslite/utils/jython_compat.py |
diff --git a/third_party/tlslite/tlslite/utils/jython_compat.py b/third_party/tlslite/tlslite/utils/jython_compat.py |
deleted file mode 100644 |
index 1245183a99c0fa29a15ec55d4b8ecf70358f2c11..0000000000000000000000000000000000000000 |
--- a/third_party/tlslite/tlslite/utils/jython_compat.py |
+++ /dev/null |
@@ -1,195 +0,0 @@ |
-"""Miscellaneous functions to mask Python/Jython differences.""" |
- |
-import os |
-import sha |
- |
-if os.name != "java": |
- BaseException = Exception |
- |
- from sets import Set |
- import array |
- import math |
- |
- def createByteArraySequence(seq): |
- return array.array('B', seq) |
- def createByteArrayZeros(howMany): |
- return array.array('B', [0] * howMany) |
- def concatArrays(a1, a2): |
- return a1+a2 |
- |
- def bytesToString(bytes): |
- return bytes.tostring() |
- |
- def stringToBytes(s): |
- bytes = createByteArrayZeros(0) |
- bytes.fromstring(s) |
- return bytes |
- |
- def numBits(n): |
- if n==0: |
- return 0 |
- return int(math.floor(math.log(n, 2))+1) |
- |
- class CertChainBase: pass |
- class SelfTestBase: pass |
- class ReportFuncBase: pass |
- |
- #Helper functions for working with sets (from Python 2.3) |
- def iterSet(set): |
- return iter(set) |
- |
- def getListFromSet(set): |
- return list(set) |
- |
- #Factory function for getting a SHA1 object |
- def getSHA1(s): |
- return sha.sha(s) |
- |
- import sys |
- import traceback |
- |
- def formatExceptionTrace(e): |
- newStr = "".join(traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback)) |
- return newStr |
- |
-else: |
- #Jython 2.1 is missing lots of python 2.3 stuff, |
- #which we have to emulate here: |
- import java |
- import jarray |
- |
- BaseException = java.lang.Exception |
- |
- def createByteArraySequence(seq): |
- if isinstance(seq, type("")): #If it's a string, convert |
- seq = [ord(c) for c in seq] |
- return jarray.array(seq, 'h') #use short instead of bytes, cause bytes are signed |
- def createByteArrayZeros(howMany): |
- return jarray.zeros(howMany, 'h') #use short instead of bytes, cause bytes are signed |
- def concatArrays(a1, a2): |
- l = list(a1)+list(a2) |
- return createByteArraySequence(l) |
- |
- #WAY TOO SLOW - MUST BE REPLACED------------ |
- def bytesToString(bytes): |
- return "".join([chr(b) for b in bytes]) |
- |
- def stringToBytes(s): |
- bytes = createByteArrayZeros(len(s)) |
- for count, c in enumerate(s): |
- bytes[count] = ord(c) |
- return bytes |
- #WAY TOO SLOW - MUST BE REPLACED------------ |
- |
- def numBits(n): |
- if n==0: |
- return 0 |
- n= 1L * n; #convert to long, if it isn't already |
- return n.__tojava__(java.math.BigInteger).bitLength() |
- |
- #This properly creates static methods for Jython |
- class staticmethod: |
- def __init__(self, anycallable): self.__call__ = anycallable |
- |
- #Properties are not supported for Jython |
- class property: |
- def __init__(self, anycallable): pass |
- |
- #True and False have to be specially defined |
- False = 0 |
- True = 1 |
- |
- class StopIteration(Exception): pass |
- |
- def enumerate(collection): |
- return zip(range(len(collection)), collection) |
- |
- class Set: |
- def __init__(self, seq=None): |
- self.values = {} |
- if seq: |
- for e in seq: |
- self.values[e] = None |
- |
- def add(self, e): |
- self.values[e] = None |
- |
- def discard(self, e): |
- if e in self.values.keys(): |
- del(self.values[e]) |
- |
- def union(self, s): |
- ret = Set() |
- for e in self.values.keys(): |
- ret.values[e] = None |
- for e in s.values.keys(): |
- ret.values[e] = None |
- return ret |
- |
- def issubset(self, other): |
- for e in self.values.keys(): |
- if e not in other.values.keys(): |
- return False |
- return True |
- |
- def __nonzero__( self): |
- return len(self.values.keys()) |
- |
- def __contains__(self, e): |
- return e in self.values.keys() |
- |
- def iterSet(set): |
- return set.values.keys() |
- |
- def getListFromSet(set): |
- return set.values.keys() |
- |
- """ |
- class JCE_SHA1: |
- def __init__(self, s=None): |
- self.md = java.security.MessageDigest.getInstance("SHA1") |
- if s: |
- self.update(s) |
- |
- def update(self, s): |
- self.md.update(s) |
- |
- def copy(self): |
- sha1 = JCE_SHA1() |
- sha1.md = self.md.clone() |
- return sha1 |
- |
- def digest(self): |
- digest = self.md.digest() |
- bytes = jarray.zeros(20, 'h') |
- for count in xrange(20): |
- x = digest[count] |
- if x < 0: x += 256 |
- bytes[count] = x |
- return bytes |
- """ |
- |
- #Factory function for getting a SHA1 object |
- #The JCE_SHA1 class is way too slow... |
- #the sha.sha object we use instead is broken in the jython 2.1 |
- #release, and needs to be patched |
- def getSHA1(s): |
- #return JCE_SHA1(s) |
- return sha.sha(s) |
- |
- |
- #Adjust the string to an array of bytes |
- def stringToJavaByteArray(s): |
- bytes = jarray.zeros(len(s), 'b') |
- for count, c in enumerate(s): |
- x = ord(c) |
- if x >= 128: x -= 256 |
- bytes[count] = x |
- return bytes |
- |
- import sys |
- import traceback |
- |
- def formatExceptionTrace(e): |
- newStr = "".join(traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback)) |
- return newStr |