diff options
author | Josef Gustafsson <josef.gson@gmail.com> | 2015-09-21 12:11:30 +0200 |
---|---|---|
committer | Josef Gustafsson <josef.gson@gmail.com> | 2015-09-21 12:11:30 +0200 |
commit | 4f3be5f797b16519c69fa2e34f999941bd6ce821 (patch) | |
tree | 4d1d1b43c3a2ebb912652bc2c5b81824017abd0e | |
parent | 59f065ab412f5777017854ef9b6d41d3d3449e52 (diff) |
adding program for moving entries between logs
-rw-r--r-- | monitor/josef_lib.py | 4 | ||||
-rwxr-xr-x | monitor/josef_logreader.py | 2 | ||||
-rwxr-xr-x | monitor/josef_mover.py | 66 | ||||
-rw-r--r-- | monitor/monitor_conf.py | 40 |
4 files changed, 88 insertions, 24 deletions
diff --git a/monitor/josef_lib.py b/monitor/josef_lib.py index 28ea0c0..36a0c3d 100644 --- a/monitor/josef_lib.py +++ b/monitor/josef_lib.py @@ -32,7 +32,6 @@ def check_domain_all(raw_entry, log=None): except IndexError: return None - def get_full_cert(entry): try: log = "https://" + entry["log"] + "/" @@ -50,8 +49,6 @@ def get_full_cert(entry): cert = check_domain_all(raw_entry) return cert - - def encode_tree(tree): res = [] for layer in tree: @@ -512,6 +509,7 @@ def unpack_mtl(merkle_tree_leaf): issuer_key_hash = timestamped_entry[10:42] (leafcert, rest_entry) = unpack_tls_array(timestamped_entry[42:], 3) return (leafcert, timestamp, issuer_key_hash) + def get_leaf_hash(merkle_tree_leaf): leaf_hash = hashlib.sha256() leaf_hash.update(struct.pack(">b", 0)) diff --git a/monitor/josef_logreader.py b/monitor/josef_logreader.py index 8be4dd5..d261fd4 100755 --- a/monitor/josef_logreader.py +++ b/monitor/josef_logreader.py @@ -41,7 +41,7 @@ def print_log_stats(l): # break if line[:len(NEW_STH_STR)] == NEW_STH_STR: timestamp = datetime.datetime.strptime(line[-20:-1], '%Y-%m-%d %H:%M:%S') - age = datetime.datetime.now() - timestamp + age = datetime.datetime.utcnow() - timestamp size = line.split("Size: ")[1].split(",")[0] # print line[:-1] print "STH age: " + str(age)[:-7] diff --git a/monitor/josef_mover.py b/monitor/josef_mover.py new file mode 100755 index 0000000..3de0cb4 --- /dev/null +++ b/monitor/josef_mover.py @@ -0,0 +1,66 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import sys +import time +import datetime +import os +import json + +from monitor_conf import * +from josef_lib import * + +def print_reply(rep, entry, precert): + t = datetime.datetime.fromtimestamp(rep['timestamp'] / 1000, UTC()).strftime("%Y-%m-%d %H:%M:%S") + log_id = rep["id"] + + # print res + + print "Time:", t + + for log in ctlogs: + if str(log_id) == log["id"]: + l = log + break + else: + l = {"name" : "Log not found" + log_id} + + print "Log:", l["name"] + + # check_sct_signature(log["url"], entry, rep, precert, log["key"]) + + # print "Signature: CHECKING NOT IMPLEMENTED YET!" + # print "" + + +source = ctlogs[0] +dests = [ctlogs[8]] + +first = 20001 +last = 20100 + +entries = get_entries(source["url"], first, last)["entries"] + +# print entries + +for log in dests: + for item in entries: + entry = extract_original_entry(item) + if entry[2]: + precert = True + else: + precert = False + submission = [] + + for e in entry[0]: + submission.append(base64.b64encode(e)) + + if precert: + res = add_prechain(log["url"], {"chain" : submission}) + else: + res = add_chain(log["url"], {"chain" : submission}) + + print_reply(res, entry, precert) + + + diff --git a/monitor/monitor_conf.py b/monitor/monitor_conf.py index b926fd7..86f8505 100644 --- a/monitor/monitor_conf.py +++ b/monitor/monitor_conf.py @@ -29,20 +29,20 @@ MONITORED_DOMAINS = [ # CT logs and associated keys ctlogs = [ - # {"name" : "pilot", - # "url" : "https://ct.googleapis.com/pilot/", - # "key" : "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEfahLEimAoz2t01p3uMziiLOl/fHTDM0YDOhBRuiBARsV4UvxG2LdNgoIGLrtCzWE0J5APC2em4JlvR8EEEFMoA==", - # "id" : "pLkJkLQYWBSHuxOizGdwCjw1mAT5G9+443fNDsgN3BA="}, + {"name" : "pilot", + "url" : "https://ct.googleapis.com/pilot/", + "key" : "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEfahLEimAoz2t01p3uMziiLOl/fHTDM0YDOhBRuiBARsV4UvxG2LdNgoIGLrtCzWE0J5APC2em4JlvR8EEEFMoA==", + "id" : "pLkJkLQYWBSHuxOizGdwCjw1mAT5G9+443fNDsgN3BA="}, - # {"name" : "plausible", - # "url" : "https://plausible.ct.nordu.net/", - # "key" : "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE9UV9+jO2MCTzkabodO2F7LM03MUBc8MrdAtkcW6v6GA9taTTw9QJqofm0BbdAsbtJL/unyEf0zIkRgXjjzaYqQ==", - # "id" : "qucLfzy41WbIbC8Wl5yfRF9pqw60U1WJsvd6AwEE880="}, + {"name" : "plausible", + "url" : "https://plausible.ct.nordu.net/", + "key" : "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE9UV9+jO2MCTzkabodO2F7LM03MUBc8MrdAtkcW6v6GA9taTTw9QJqofm0BbdAsbtJL/unyEf0zIkRgXjjzaYqQ==", + "id" : "qucLfzy41WbIbC8Wl5yfRF9pqw60U1WJsvd6AwEE880="}, - # {"name" : "digicert", - # "url" : "https://ct1.digicert-ct.com/log/", - # "key" : "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAkbFvhu7gkAW6MHSrBlpE1n4+HCFRkC5OLAjgqhkTH+/uzSfSl8ois8ZxAD2NgaTZe1M9akhYlrYkes4JECs6A==", - # "id" : "VhQGmi/XwuzT9eG9RLI+x0Z2ubyZEVzA75SYVdaJ0N0="}, + {"name" : "digicert", + "url" : "https://ct1.digicert-ct.com/log/", + "key" : "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAkbFvhu7gkAW6MHSrBlpE1n4+HCFRkC5OLAjgqhkTH+/uzSfSl8ois8ZxAD2NgaTZe1M9akhYlrYkes4JECs6A==", + "id" : "VhQGmi/XwuzT9eG9RLI+x0Z2ubyZEVzA75SYVdaJ0N0="}, {"name" : "izenpe", "url" : "https://ct.izenpe.com/", @@ -54,15 +54,15 @@ ctlogs = [ "key" : "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAECyPLhWKYYUgEc+tUXfPQB4wtGS2MNvXrjwFCCnyYJifBtd2Sk7Cu+Js9DNhMTh35FftHaHu6ZrclnNBKwmbbSA==", "id" : "zbUXm3/BwEb+6jETaj+PAC5hgvr4iW/syLL1tatgSQA="}, - # {"name" : "aviator", - # "url" : "https://ct.googleapis.com/aviator/", - # "key" : "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1/TMabLkDpCjiupacAlP7xNi0I1JYP8bQFAHDG1xhtolSY1l4QgNRzRrvSe8liE+NPWHdjGxfx3JhTsN9x8/6Q==", - # "id" : "aPaY+B9kgr46jO65KB1M/HFRXWeT1ETRCmesu09P+8Q="}, + {"name" : "aviator", + "url" : "https://ct.googleapis.com/aviator/", + "key" : "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1/TMabLkDpCjiupacAlP7xNi0I1JYP8bQFAHDG1xhtolSY1l4QgNRzRrvSe8liE+NPWHdjGxfx3JhTsN9x8/6Q==", + "id" : "aPaY+B9kgr46jO65KB1M/HFRXWeT1ETRCmesu09P+8Q="}, - # {"name" : "rocketeer", - # "url" : "https://ct.googleapis.com/rocketeer/", - # "key" : "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIFsYyDzBi7MxCAC/oJBXK7dHjG+1aLCOkHjpoHPqTyghLpzA9BYbqvnV16mAw04vUjyYASVGJCUoI3ctBcJAeg==", - # "id": "7ku9t3XOYLrhQmkfq+GeZqMPfl+wctiDAMR7iXqo/cs="}, + {"name" : "rocketeer", + "url" : "https://ct.googleapis.com/rocketeer/", + "key" : "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIFsYyDzBi7MxCAC/oJBXK7dHjG+1aLCOkHjpoHPqTyghLpzA9BYbqvnV16mAw04vUjyYASVGJCUoI3ctBcJAeg==", + "id": "7ku9t3XOYLrhQmkfq+GeZqMPfl+wctiDAMR7iXqo/cs="}, {"name" : "symantec", "url" : "https://ct.ws.symantec.com/", |