Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(706)

Side by Side Diff: net/cert/internal/cert_issuer_source_aia.cc

Issue 2126803004: WIP: NSS trust store integration for path builder. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@cert-command-line-path-builder-add_certpathbuilder
Patch Set: . Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/cert/internal/cert_issuer_source_aia.h" 5 #include "net/cert/internal/cert_issuer_source_aia.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "net/cert/cert_net_fetcher.h" 8 #include "net/cert/cert_net_fetcher.h"
9 #include "url/gurl.h" 9 #include "url/gurl.h"
10 10
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 // TODO(mattm): propagate error info. 92 // TODO(mattm): propagate error info.
93 LOG(ERROR) << "Error parsing AIA data"; 93 LOG(ERROR) << "Error parsing AIA data";
94 } 94 }
95 } 95 }
96 // If the client is waiting for results, need to run callback if: 96 // If the client is waiting for results, need to run callback if:
97 // * Some are available now. 97 // * Some are available now.
98 // * The last fetch finished, even with no results. (Client needs to know to 98 // * The last fetch finished, even with no results. (Client needs to know to
99 // stop waiting.) 99 // stop waiting.)
100 if (client_waiting_for_callback && (HasNext() || pending_requests_ == 0)) 100 if (client_waiting_for_callback && (HasNext() || pending_requests_ == 0))
101 issuers_callback_.Run(this); 101 issuers_callback_.Run(this);
102 // |this| may be deleted here.
102 } 103 }
103 104
104 } // namespace 105 } // namespace
105 106
106 CertIssuerSourceAia::CertIssuerSourceAia(CertNetFetcher* cert_fetcher) 107 CertIssuerSourceAia::CertIssuerSourceAia(CertNetFetcher* cert_fetcher)
107 : cert_fetcher_(cert_fetcher) {} 108 : cert_fetcher_(cert_fetcher) {}
108 109
109 CertIssuerSourceAia::~CertIssuerSourceAia() = default; 110 CertIssuerSourceAia::~CertIssuerSourceAia() = default;
110 111
111 void CertIssuerSourceAia::SyncGetIssuersOf(const ParsedCertificate* cert, 112 void CertIssuerSourceAia::SyncGetIssuersOf(const ParsedCertificate* cert,
112 ParsedCertificateList* issuers) { 113 ParsedCertificateList* issuers) {
113 // CertIssuerSourceAia never returns synchronous results. 114 // CertIssuerSourceAia never returns synchronous results.
114 } 115 }
115 116
116 void CertIssuerSourceAia::AsyncGetIssuersOf( 117 void CertIssuerSourceAia::AsyncGetIssuersOf(
117 const ParsedCertificate* cert, 118 scoped_refptr<ParsedCertificate> cert,
118 const IssuerCallback& issuers_callback, 119 const IssuerCallback& issuers_callback,
119 std::unique_ptr<Request>* out_req) { 120 std::unique_ptr<Request>* out_req) {
120 out_req->reset(); 121 out_req->reset();
121 122
122 if (!cert->has_authority_info_access()) 123 if (!cert->has_authority_info_access())
123 return; 124 return;
124 125
125 // RFC 5280 section 4.2.2.1: 126 // RFC 5280 section 4.2.2.1:
126 // 127 //
127 // An authorityInfoAccess extension may include multiple instances of 128 // An authorityInfoAccess extension may include multiple instances of
(...skipping 30 matching lines...) Expand all
158 aia_request->AddCertFetcherRequest(cert_fetcher_->FetchCaIssuers( 159 aia_request->AddCertFetcherRequest(cert_fetcher_->FetchCaIssuers(
159 url, kTimeoutMilliseconds, kMaxResponseBytes, 160 url, kTimeoutMilliseconds, kMaxResponseBytes,
160 base::Bind(&AiaRequest::OnFetchCompleted, 161 base::Bind(&AiaRequest::OnFetchCompleted,
161 base::Unretained(aia_request.get())))); 162 base::Unretained(aia_request.get()))));
162 } 163 }
163 164
164 *out_req = std::move(aia_request); 165 *out_req = std::move(aia_request);
165 } 166 }
166 167
167 } // namespace net 168 } // namespace net
OLDNEW
« no previous file with comments | « net/cert/internal/cert_issuer_source_aia.h ('k') | net/cert/internal/cert_issuer_source_aia_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698