summaryrefslogtreecommitdiff
path: root/monitor/josef_lib.py
diff options
context:
space:
mode:
authorJosef Gustafsson <josef.gson@gmail.com>2015-09-14 12:13:38 +0200
committerJosef Gustafsson <josef.gson@gmail.com>2015-09-14 12:13:38 +0200
commitd1fdfc9e9c567eec255e3e82fda3c082634bc0fa (patch)
tree77a7a1945263d61497dce8d7ce5e8b4b9a4020c9 /monitor/josef_lib.py
parent4b81149ede45a5638a5dbadac4c62540b1143bd5 (diff)
refactoring and moving things around
Diffstat (limited to 'monitor/josef_lib.py')
-rw-r--r--monitor/josef_lib.py36
1 files changed, 32 insertions, 4 deletions
diff --git a/monitor/josef_lib.py b/monitor/josef_lib.py
index 45ca80f..61b315e 100644
--- a/monitor/josef_lib.py
+++ b/monitor/josef_lib.py
@@ -31,6 +31,37 @@ from Crypto.Signature import PKCS1_v1_5
# raise e
# return json.loads(f.read())
+
+def check_domain_all(raw_entry, log=None):
+ orig_entry = extract_original_entry(raw_entry)
+ try:
+ cert_info = my_get_all_cert_info(orig_entry[0][0])
+ if log:
+ cert_info["log"] = log[8:-1] # strip generic URL stuff
+ return cert_info
+ except IndexError:
+ return None
+
+
+def get_full_cert(entry):
+ try:
+ log = "https://" + entry["log"] + "/"
+ leaf_hash = entry["leaf_hash"]
+ except:
+ print "Could not get stats from entry."
+ return
+ # Get tree size in sth
+ sth = get_sth(log)
+ # Get index (rest of proof discarded)
+ proof = get_proof_by_hash(log, base64.b64decode(leaf_hash), sth["tree_size"])
+ leaf_index = proof["leaf_index"]
+ # Get full entry
+ raw_entry = get_entries(log, leaf_index, leaf_index)["entries"][0]
+ cert = check_domain_all(raw_entry)
+ return cert
+
+
+
def encode_tree(tree):
res = []
for layer in tree:
@@ -107,10 +138,7 @@ def my_get_all_cert_info(s):
if parsed[1]:
print "ERROR:", parsed[1]
sys.exit(1)
- result = []
- for line in parsed[0].split("\n"):
- result.append(line)
- return result
+ return parsed[0]
def get_pemlike(filename, marker):