In order to audit CT logs, we must request audit proofs for SCTs that Chrome receives. This can be done over DNS, as defined in https://github.com/google/certificate-transparency-rfcs/blob/master/dns/draft-ct-over-dns.md.
The net::DnsClient class, found in net/dns/dns_client.h, could be used to send the requests. A new class, certificate_transparency::LogDnsClient, should be created in components/certificate_transparency/log_dns_client.h. It should use a net::DnsClient to provide methods for asynchronously querying a CT log for the following information:
1) The index of a tree leaf, given its hash.
2) An audit proof, given a leaf index and tree size.
For testing purposes, mock net::DnsClient, net::DnsTransaction and net::DnsTransactionFactory classes should be created.
Comment 1 by bugdroid1@chromium.org
, May 26 2016