From 019da28a8e620d4e2b5ac828af9c9118c0821c40 Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Mon, 19 Feb 2018 15:17:38 +0100 Subject: More structure changes --- viewstate.py | 47 ----------------------------------------------- 1 file changed, 47 deletions(-) delete mode 100644 viewstate.py (limited to 'viewstate.py') diff --git a/viewstate.py b/viewstate.py deleted file mode 100644 index b75cd37..0000000 --- a/viewstate.py +++ /dev/null @@ -1,47 +0,0 @@ -from base64 import b64decode, b64encode - - -CONSTS = { - 100: {}, - 101: '', - 102: 0, - 103: True, - 104: False -} - -def parse_const(b): - return CONSTS.get(b, None) - -def parse(b): - assert type(b) == bytes().__class__ - if len(b) == 1: - return parse_const(b[0]) - return None - - -class ViewState(object): - - def __init__(self, base64=''): - self.base64 = base64 - self.raw = b64decode(self.base64) - self.decoded = None - - @property - def preamble(self): - return self.raw[:2] - - @property - def body(self): - return self.raw[2:] - - def is_valid(self): - format_marker = b'\xff' - version_marker = b'\x01' - preamble = format_marker + version_marker - return self.preamble == preamble - - def decode(self): - if not self.is_valid(): - raise Exception('Cannot decode invalid viewstate, bad preamble') - self.decoded = parse(self.body) - return self.decoded -- cgit v1.3.1