354 Commits

Author SHA1 Message Date
Andrew Ayer
709aa01308 Add Comodo Dodo to the openLogs list 2017-10-17 17:24:59 -07:00
Andrew Ayer
8b2664b474 Release 0.5 0.5 2017-05-18 10:04:18 -07:00
Andrew Ayer
62cbba12a3 Remove PuChuangSiDa log
They've flown the coop and will likely be removed from Chrome.
2017-05-13 09:52:19 -07:00
Andrew Ayer
3df9fb4e73 Add Venafi Gen2 log
It's not qualified by Chrome yet, but it is accumulating so many entries
already that I think it's good to get a head start on monitoring it.
2017-04-29 13:02:58 -07:00
Andrew Ayer
1814cb87e5 Return additional info about pre-cert from ValidatePrecert 2017-04-27 10:48:48 -07:00
Andrew Ayer
06c253a0ea Continue processing a log even if an STH failed to verify
It may still be possible to audit other STHs, and to scan new entries
up to the latest verified STH.  This allows Cert Spotter to continue
to make forward progress even if a log is persistently skewed (as the
DigiCert has been lately).

Also, rework some code to be simpler and less redundant.
2017-04-27 10:48:48 -07:00
Alex Gaynor
1f8751aba5 Update the date for Chromium mandatory CT 2017-04-23 14:19:09 -04:00
Andrew Ayer
5d9fa9dfd9 Release 0.4 0.4 2017-04-03 15:30:53 -07:00
Andrew Ayer
e1dd1f25bf Remove Venafi log, which forked and will be removed from Chrome
https://groups.google.com/a/chromium.org/forum/#!topic/ct-policy/KMAcNT3asTQ
2017-03-20 11:36:57 -07:00
Andrew Ayer
583aebe9ab Add PuChuangSiDa 1 log
It is scheduled for inclusion in Chrome:

https://bugs.chromium.org/p/chromium/issues/detail?id=667663
2017-03-20 11:35:12 -07:00
Andrew Ayer
fa81965dee Remove log ID comments from logs.go 2017-03-20 11:33:11 -07:00
Andrew Ayer
b051332b1d Release 0.3 0.3 2017-02-20 13:13:09 -08:00
Andrew Ayer
8b9c08b984 submitct: apply gofmt 2017-02-05 10:09:42 -08:00
Andrew Ayer
732a660767 submitct: reorganize code 2017-02-05 10:09:19 -08:00
Andrew Ayer
b94d850dbe submitct: use maps for efficiency
This will make submitct work better with lots of certificates as input.
2017-02-05 10:07:30 -08:00
Andrew Ayer
74ffda2dc6 x509: factor out ParseRDNSequence 2017-02-05 10:04:43 -08:00
Andrew Ayer
779230cbc8 submitct: include cert index in log entries 2017-02-04 16:09:56 -08:00
Andrew Ayer
e7a9ba6e7d Add submitct program for submitting certs 2017-02-04 16:05:51 -08:00
Andrew Ayer
8846cbcbd9 Add OpenLogs array, for logs with open submission policies 2017-02-04 16:04:00 -08:00
Andrew Ayer
b6f99bad2c logclient: add support for add-chain request 2017-02-04 16:03:48 -08:00
Andrew Ayer
fecfeb033d logclient: add support for POST requests 2017-02-04 16:03:35 -08:00
Andrew Ayer
13b064878b Update NEWS file 2017-01-10 11:25:02 -08:00
Andrew Ayer
e8c4f10e97 Use a lock file to prevent certspotter from running concurrently 2017-01-10 10:50:41 -08:00
Andrew Ayer
2f0833ac9c Apply gofmt 2017-01-08 10:17:00 -08:00
Andrew Ayer
9f3e9968ec Rename verified_sth.json to just sth.json 2017-01-08 10:15:41 -08:00
Andrew Ayer
7adbc6cffe Add .json extension to log state filenames
Since they are JSON.
2017-01-08 10:14:44 -08:00
Andrew Ayer
b88de6b320 Rename "position" to "tree" in log state 2017-01-06 14:49:42 -08:00
Andrew Ayer
9c3e697231 CollapsedMerkleTree: rename stack to nodes 2017-01-06 14:43:20 -08:00
Andrew Ayer
671814cd9b CollapsedMerkleTree: rename numLeaves to size 2017-01-06 14:41:51 -08:00
Andrew Ayer
9ceedea9ef Rename MerkleTreeBuilder to CollapsedMerkleTree 2017-01-06 14:39:08 -08:00
Andrew Ayer
cf742c121e Update NEWS file 2017-01-06 13:36:56 -08:00
Andrew Ayer
d8b1877e8d Improve filenames of unverified STHs
Include the tree size in plain decimal, since it's more user-friendly.

Don't include tree size in hash (redundant now that we're storing it
outside of hash) or version (implied by signature).
2017-01-06 12:51:10 -08:00
Andrew Ayer
1719aa5d8e Set log ID in STHs that we download
This will facilitate STH pollination.
2017-01-06 12:50:21 -08:00
Andrew Ayer
0eb6d199a4 Improve the name of a function 2017-01-06 12:24:09 -08:00
Andrew Ayer
c8f0a0f9e8 Only write once file if run was 100% successful
Otherwise, if a single log was unreachable, we'd be force to download
all of it on the next run.
2017-01-06 12:23:20 -08:00
Andrew Ayer
0d9b81ecc8 Tweak logic for storing tree position 2017-01-06 12:19:53 -08:00
Andrew Ayer
87c6bc4f1c Add CONTRIBUTING file 2017-01-06 10:55:52 -08:00
Andrew Ayer
8ea4003994 Add some additional logging 2017-01-06 10:31:34 -08:00
Andrew Ayer
0c751f0294 Drop the MerkleTreeBuilder return value from VerifyConsistencyProof 2017-01-05 21:06:37 -08:00
Andrew Ayer
ef00e22ec1 Remove unused code 2017-01-05 21:02:28 -08:00
Andrew Ayer
0af0262498 Overhaul log processing and auditing
1. Instead of storing a single STH per log, we now store one verified
STH and any number of unverified STHs.  When we process a log, we verify
each unverified STH using a consistency proof with the verified STH,
and only delete it if it successfully verifies.  We set the verified
STH to the largest STH which we've successfully verified.

This has two important benefits.  First, we never ever delete an STH
unless we can successfully verify it (previously, we would forget about
an STH under certain error conditions).  Second, it lays the groundwork
for STH pollination.  Upon reception of an STH, we can simply drop it in
the log's unverified_sths directory (assuming the signature is valid),
and Cert Spotter will audit it.

There is no more "evidence" directory; if a consistency proof fails,
the STHs will already be present elsewhere in the state directory.

2. We now persist a MerkleTreeBuilder between each run of Cert Spotter,
instead of rebuilding it every time from the consistency proof.  This is
not intrinsically better, but it makes the code simpler considering we
can now fetch numerous consistency proofs per run.

3. To accommodate the above changes, the state directory has a brand
new layout.  The state directory is now versioned, and Cert Spotter
will automatically migrate old state directories to the new layout.
This migration logic will be removed in a future Cert Spotter release.

As a bonus, the code is generally cleaner now :-)
2017-01-05 21:00:35 -08:00
Andrew Ayer
54d9762ff2 Add JSON marshalling for MerkleTreeBuilder 2017-01-05 15:43:26 -08:00
Andrew Ayer
7c55be7d5c Add GetNumLeaves function for MerkleTreeBuilder 2017-01-05 15:00:56 -08:00
Andrew Ayer
3673518b30 Add constructor functions for MerkleTreeBuilder 2017-01-05 14:48:35 -08:00
Andrew Ayer
39737f33ec Rename MerkleTreeBuilder.size to numLeaves 2017-01-05 14:41:54 -08:00
Andrew Ayer
f920ef0ec3 Add a TODO 2017-01-05 14:32:28 -08:00
Andrew Ayer
55d12ee013 Support empty trees 2017-01-05 14:32:22 -08:00
Andrew Ayer
4868243259 Add ID function to LogInfo to return log ID 2016-11-26 17:48:15 -08:00
Andrew Ayer
ff6d1f21fd Add a TODO comment 2016-11-26 17:47:57 -08:00
Andrew Ayer
0bd48084f0 Add MakeMerkleTreeBuilder 2016-11-25 20:13:17 -08:00