diff options
author | Josef Gustafsson <josef.gson@gmail.com> | 2015-09-14 12:13:38 +0200 |
---|---|---|
committer | Josef Gustafsson <josef.gson@gmail.com> | 2015-09-14 12:13:38 +0200 |
commit | d1fdfc9e9c567eec255e3e82fda3c082634bc0fa (patch) | |
tree | 77a7a1945263d61497dce8d7ce5e8b4b9a4020c9 /monitor/josef_lib.py | |
parent | 4b81149ede45a5638a5dbadac4c62540b1143bd5 (diff) |
refactoring and moving things around
Diffstat (limited to 'monitor/josef_lib.py')
-rw-r--r-- | monitor/josef_lib.py | 36 |
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): |