summaryrefslogtreecommitdiff
path: root/monitor/gaol/gaol_lib.py
blob: 07e674b923ec7c834a54476aa0a48fb1d44365b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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