#include "net/cert/internal/cert_issuer_source_aia.h"
#include <string_view>
#include "base/containers/span.h"
#include "base/logging.h"
#include "net/cert/cert_net_fetcher.h"
#include "net/cert/x509_util.h"
#include "third_party/boringssl/src/pki/cert_errors.h"
#include "third_party/boringssl/src/pki/pem.h"
#include "url/gurl.h"
namespace net {
namespace {
const int kTimeoutMilliseconds = …;
const int kMaxResponseBytes = …;
const int kMaxFetchesPerCert = …;
bool ParseCertFromDer(base::span<const uint8_t> data,
bssl::ParsedCertificateList* results) { … }
bool ParseCertsFromCms(base::span<const uint8_t> data,
bssl::ParsedCertificateList* results) { … }
bool ParseCertFromPem(const uint8_t* data,
size_t length,
bssl::ParsedCertificateList* results) { … }
class AiaRequest : public bssl::CertIssuerSource::Request { … };
AiaRequest::~AiaRequest() = default;
void AiaRequest::GetNext(bssl::ParsedCertificateList* out_certs) { … }
void AiaRequest::AddCertFetcherRequest(
std::unique_ptr<CertNetFetcher::Request> cert_fetcher_request) { … }
bool AiaRequest::AddCompletedFetchToResults(
Error error,
std::vector<uint8_t> fetched_bytes,
bssl::ParsedCertificateList* results) { … }
}
CertIssuerSourceAia::CertIssuerSourceAia(
scoped_refptr<CertNetFetcher> cert_fetcher)
: … { … }
CertIssuerSourceAia::~CertIssuerSourceAia() = default;
void CertIssuerSourceAia::SyncGetIssuersOf(
const bssl::ParsedCertificate* cert,
bssl::ParsedCertificateList* issuers) { … }
void CertIssuerSourceAia::AsyncGetIssuersOf(const bssl::ParsedCertificate* cert,
std::unique_ptr<Request>* out_req) { … }
}