diff options
| author | Yuval Adam <yuval@y3xz.com> | 2016-03-24 01:41:47 +0200 |
|---|---|---|
| committer | Yuval Adam <yuval@y3xz.com> | 2016-03-24 01:41:47 +0200 |
| commit | 15bc07a8fe5d72bff673429f70b60fb8990fe3b4 (patch) | |
| tree | d0bc50d9c707cb28051d27cc6f07867343bd15ec | |
| parent | 45747990238cc708dfa370c8339a21f1aae5439b (diff) | |
Add is_valid() impl and test
| -rw-r--r-- | README.md | 6 | ||||
| -rw-r--r-- | test.py | 13 | ||||
| -rw-r--r-- | viewstate.py | 14 |
3 files changed, 33 insertions, 0 deletions
@@ -9,6 +9,12 @@ from viewstate import ViewState vs = ViewState(base64EncodedViewState) ``` +## Test + +```python +python test.py +``` + ## References - https://github.com/mutantzombie/JavaScript-ViewState-Parser @@ -0,0 +1,13 @@ +import unittest + +from viewstate import ViewState + +class TestViewState(unittest.TestCase): + + def test_is_valid(self): + with open('samples/ngcs.sample', 'r') as f: + vs = ViewState(f.read()) + self.assertTrue(vs.is_valid()) + +if __name__ == '__main__': + unittest.main() diff --git a/viewstate.py b/viewstate.py new file mode 100644 index 0000000..30da967 --- /dev/null +++ b/viewstate.py @@ -0,0 +1,14 @@ +from base64 import b64decode, b64encode + + +class ViewState(object): + + def __init__(self, base64_encoded): + self.base64_encoded = base64_encoded + self.raw = b64decode(self.base64_encoded) + + def is_valid(self): + format_marker = b'\xff' + version_marker = b'\x01' + preamble = format_marker + version_marker + return self.raw[:2] == preamble |
