summaryrefslogtreecommitdiff
path: root/monitor/josef_lib.py
diff options
context:
space:
mode:
Diffstat (limited to 'monitor/josef_lib.py')
-rw-r--r--monitor/josef_lib.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/monitor/josef_lib.py b/monitor/josef_lib.py
index d78de48..0f6ac24 100644
--- a/monitor/josef_lib.py
+++ b/monitor/josef_lib.py
@@ -16,6 +16,7 @@ import datetime
import cStringIO
import zipfile
import shutil
+from copy import deepcopy
from certkeys import publickeys
from Crypto.Hash import SHA256
@@ -47,6 +48,16 @@ def get_all_roots(base_url):
root_cert = base64.decodestring(accepted_cert)
return certs
+def check_domain(raw_entry, log=None):
+ orig_entry = extract_original_entry(raw_entry)
+ try:
+ cert_info = my_get_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 check_domain_all(raw_entry, log=None):
orig_entry = extract_original_entry(raw_entry)
try:
@@ -917,3 +928,15 @@ def reduce_subtree_to_root(layers):
return next_merkle_layer(layers[0])
return layers[0]
+def verify_subtree(sth, subtree, base_url):
+ try:
+ tmp = deepcopy(subtree)
+ root = base64.b64encode(reduce_subtree_to_root(tmp)[0])
+
+ if root == sth["sha256_root_hash"]:
+ return True
+ else:
+ return False
+ except:
+ return False
+