summaryrefslogtreecommitdiff
path: root/monitor/gaol/gaol_lib.py
diff options
context:
space:
mode:
Diffstat (limited to 'monitor/gaol/gaol_lib.py')
-rwxr-xr-xmonitor/gaol/gaol_lib.py66
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