diff options
author | Linus Nordberg <linus@nordberg.se> | 2015-03-25 09:55:03 +0100 |
---|---|---|
committer | Linus Nordberg <linus@nordberg.se> | 2015-03-25 09:55:03 +0100 |
commit | 94282d502072f894f3168ef8c2c7527fe4a69e52 (patch) | |
tree | 0ae1b630221867acf3f56f08a042cbf94df3943a /tools/certtools.py | |
parent | 575d810afbcfcca99f701f3ea42de79bf6e283d1 (diff) |
Add tools/fetchacert.py, fetching exactly one chain from a log.
Also move a piece of common code from fetchallcerts.py to certtools.py.
Diffstat (limited to 'tools/certtools.py')
-rw-r--r-- | tools/certtools.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tools/certtools.py b/tools/certtools.py index 0e639f2..ffd631c 100644 --- a/tools/certtools.py +++ b/tools/certtools.py @@ -588,3 +588,13 @@ def verify_inclusion_proof(inclusion_proof, index, treesize, leafhash): chain = zip([(index, 0)] + nodes_for_index(index, treesize), [leafhash] + inclusion_proof) (_, hash) = reduce(lambda e1, e2: combine_two_hashes(e1, e2, treesize), chain) return hash + +def extract_original_entry(entry): + leaf_input = base64.decodestring(entry["leaf_input"]) + (leaf_cert, timestamp, issuer_key_hash) = unpack_mtl(leaf_input) + extra_data = base64.decodestring(entry["extra_data"]) + if issuer_key_hash != None: + (precert, extra_data) = extract_precertificate(extra_data) + leaf_cert = precert + certchain = decode_certificate_chain(extra_data) + return ([leaf_cert] + certchain, timestamp, issuer_key_hash) |