This commit is contained in:
Kovid Goyal 2016-03-22 10:08:41 +05:30
parent 48f80f2a81
commit 7fad5939b3

View File

@ -310,17 +310,16 @@ class CBC(ModeOfOperation):
class Counter:
def __init__(self, initial_value, number_of_bytes=16):
self.number_of_bytes = number_of_bytes
self.bytes = Uint8Array(number_of_bytes)
initial_value = initial_value or 1
if type(initial_value) is 'number':
self.bytes = Uint8Array(number_of_bytes)
self.set_value(initial_value)
else:
self.bytes.set(initial_value)
self.bytes = Uint8Array(initial_value)
def set_value(self, value):
c = self.bytes
for v'var index = self.number_of_bytes; index >= 0; index--':
for v'var index = self.bytes.length; index >= 0; index--':
c[index] = value % 256
value >>= 8
@ -329,7 +328,7 @@ class Counter:
def increment(self):
c = self.bytes
for v'var i = self.number_of_bytes; i >= 0; i--':
for v'var i = self.bytes.length; i >= 0; i--':
if c[i] is 255:
c[i] = 0
else:
@ -348,9 +347,8 @@ class CTR(ModeOfOperation):
def __init__(self, key, counter):
ModeOfOperation.__init__(self, key)
self.cval = counter
self.wmem = Uint8Array(16)
self.counter = Counter(self.cval)
self.counter = Counter(counter)
self.counter_index = 16
def _crypt(self, bytes):
@ -399,6 +397,7 @@ class CTR(ModeOfOperation):
offset = tag_bytes.length
return bytes_to_string(b, offset)
if __name__ == '__main__':
text = 'testing a basic roundtrip ø̄ū'