Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(353)

Side by Side Diff: third_party/tlslite/tlslite/utils/codec.py

Issue 210323002: Update tlslite to 0.4.6. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Executable bit and --similarity=80 Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # Author: Trevor Perrin
2 # See the LICENSE file for legal information regarding use of this file.
3
1 """Classes for reading/writing binary data (such as TLS records).""" 4 """Classes for reading/writing binary data (such as TLS records)."""
2 5
3 from compat import * 6 from .compat import *
4 7
5 class Writer: 8 class Writer(object):
6 def __init__(self, length=0): 9 def __init__(self):
7 #If length is zero, then this is just a "trial run" to determine length 10 self.bytes = bytearray(0)
8 self.index = 0
9 self.bytes = createByteArrayZeros(length)
10 11
11 def add(self, x, length): 12 def add(self, x, length):
12 if self.bytes: 13 self.bytes += bytearray(length)
13 newIndex = self.index+length-1 14 newIndex = len(self.bytes) - 1
14 while newIndex >= self.index: 15 for count in range(length):
15 self.bytes[newIndex] = x & 0xFF 16 self.bytes[newIndex] = x & 0xFF
16 x >>= 8 17 x >>= 8
17 newIndex -= 1 18 newIndex -= 1
18 self.index += length
19 19
20 def addFixSeq(self, seq, length): 20 def addFixSeq(self, seq, length):
21 if self.bytes: 21 for e in seq:
22 for e in seq: 22 self.add(e, length)
23 self.add(e, length)
24 else:
25 self.index += len(seq)*length
26 23
27 def addVarSeq(self, seq, length, lengthLength): 24 def addVarSeq(self, seq, length, lengthLength):
28 if self.bytes: 25 self.add(len(seq)*length, lengthLength)
29 self.add(len(seq)*length, lengthLength) 26 for e in seq:
30 for e in seq: 27 self.add(e, length)
31 self.add(e, length)
32 else:
33 self.index += lengthLength + (len(seq)*length)
34 28
35 29 class Parser(object):
36 class Parser:
37 def __init__(self, bytes): 30 def __init__(self, bytes):
38 self.bytes = bytes 31 self.bytes = bytes
39 self.index = 0 32 self.index = 0
40 33
41 def get(self, length): 34 def get(self, length):
42 if self.index + length > len(self.bytes): 35 if self.index + length > len(self.bytes):
43 raise SyntaxError() 36 raise SyntaxError()
44 x = 0 37 x = 0
45 for count in range(length): 38 for count in range(length):
46 x <<= 8 39 x <<= 8
(...skipping 13 matching lines...) Expand all
60 def getFixList(self, length, lengthList): 53 def getFixList(self, length, lengthList):
61 l = [0] * lengthList 54 l = [0] * lengthList
62 for x in range(lengthList): 55 for x in range(lengthList):
63 l[x] = self.get(length) 56 l[x] = self.get(length)
64 return l 57 return l
65 58
66 def getVarList(self, length, lengthLength): 59 def getVarList(self, length, lengthLength):
67 lengthList = self.get(lengthLength) 60 lengthList = self.get(lengthLength)
68 if lengthList % length != 0: 61 if lengthList % length != 0:
69 raise SyntaxError() 62 raise SyntaxError()
70 lengthList = int(lengthList/length) 63 lengthList = lengthList // length
71 l = [0] * lengthList 64 l = [0] * lengthList
72 for x in range(lengthList): 65 for x in range(lengthList):
73 l[x] = self.get(length) 66 l[x] = self.get(length)
74 return l 67 return l
75 68
76 def startLengthCheck(self, lengthLength): 69 def startLengthCheck(self, lengthLength):
77 self.lengthCheck = self.get(lengthLength) 70 self.lengthCheck = self.get(lengthLength)
78 self.indexCheck = self.index 71 self.indexCheck = self.index
79 72
80 def setLengthCheck(self, length): 73 def setLengthCheck(self, length):
81 self.lengthCheck = length 74 self.lengthCheck = length
82 self.indexCheck = self.index 75 self.indexCheck = self.index
83 76
84 def stopLengthCheck(self): 77 def stopLengthCheck(self):
85 if (self.index - self.indexCheck) != self.lengthCheck: 78 if (self.index - self.indexCheck) != self.lengthCheck:
86 raise SyntaxError() 79 raise SyntaxError()
87 80
88 def atLengthCheck(self): 81 def atLengthCheck(self):
89 if (self.index - self.indexCheck) < self.lengthCheck: 82 if (self.index - self.indexCheck) < self.lengthCheck:
90 return False 83 return False
91 elif (self.index - self.indexCheck) == self.lengthCheck: 84 elif (self.index - self.indexCheck) == self.lengthCheck:
92 return True 85 return True
93 else: 86 else:
94 raise SyntaxError() 87 raise SyntaxError()
OLDNEW
« no previous file with comments | « third_party/tlslite/tlslite/utils/cipherfactory.py ('k') | third_party/tlslite/tlslite/utils/compat.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698