summaryrefslogtreecommitdiff
path: root/viewstate.py
diff options
context:
space:
mode:
Diffstat (limited to 'viewstate.py')
-rw-r--r--viewstate.py47
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