diff options
Diffstat (limited to 'monitor/gaol/gaol_lib.py')
-rwxr-xr-x | monitor/gaol/gaol_lib.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/monitor/gaol/gaol_lib.py b/monitor/gaol/gaol_lib.py new file mode 100755 index 0000000..07e674b --- /dev/null +++ b/monitor/gaol/gaol_lib.py @@ -0,0 +1,66 @@ +import json +import urllib +import urllib2 +import ssl +import base64 + +from lib import * + +class sslparameters: + sslcontext = None + +def get_opener(): + try: + opener = urllib2.build_opener(urllib2.HTTPSHandler(context=sslparameters.sslcontext)) + except TypeError: + opener = urllib2.build_opener(urllib2.HTTPSHandler()) + return opener + +def urlopen(url, data=None): + return get_opener().open(url, data) + +def get_sth(baseurl): + result = urlopen(baseurl + "gaol/v1/get-sth").read() + return json.loads(result) + +def get_entries(baseurl, start, end): + params = urllib.urlencode({"start":start, "end":end}) + # try: + result = urlopen(baseurl + "gaol/v1/get-entries?" + params).read() + return json.loads(result) + +def get_consistency_proof(baseurl, tree_size1, tree_size2): + # try: + params = urllib.urlencode({"first":tree_size1, + "second":tree_size2}) + result = \ + urlopen(baseurl + "gaol/v1/get-sth-consistency?" + params).read() + return json.loads(result)["consistency"] + # except urllib2.HTTPError, e: + # print "ERROR:", e.read() + # sys.exit(1) + +def extract_original_entry(entry): + leaf_input = base64.decodestring(entry["leaf_input"]) + (data_blob, timestamp, issuer_key_hash) = unpack_mtl(leaf_input) + return (data_blob, timestamp) + +def make_blob(data): + return base64.b64encode(data) + +def add_blob(baseurl, blob): + try: + result = urlopen(baseurl + "gaol/v1/add-blob", json.dumps({"blob" : blob})).read() + return json.loads(result) + except urllib2.HTTPError, e: + return "ERROR " + str(e.code) + " : " + e.read() + # if e.code == 400: + return None + # sys.exit(1) + except ValueError, e: + print "==== FAILED REQUEST ====" + print submission + print "======= RESPONSE =======" + print result + print "========================" + raise e
\ No newline at end of file |