diff options
| author | Yuval Adam <_@yuv.al> | 2018-02-19 15:17:38 +0100 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2018-02-19 15:17:38 +0100 |
| commit | 019da28a8e620d4e2b5ac828af9c9118c0821c40 (patch) | |
| tree | 5167d62ed9f6c613bc185f29f1398fee2a1fbba5 /viewstate.py | |
| parent | 64f84aa1b4bf604835406577e994556e72fd76c9 (diff) | |
More structure changes
Diffstat (limited to 'viewstate.py')
| -rw-r--r-- | viewstate.py | 47 |
1 files changed, 0 insertions, 47 deletions
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 |
