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

Side by Side Diff: chromeos/network/onc/onc_certificate_importer_impl_unittest.cc

Issue 582413002: Make ONCCertificateImporter async. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
« no previous file with comments | « chromeos/network/onc/onc_certificate_importer_impl.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "chromeos/network/onc/onc_certificate_importer_impl.h" 5 #include "chromeos/network/onc/onc_certificate_importer_impl.h"
6 6
7 #include <cert.h> 7 #include <cert.h>
8 #include <certdb.h> 8 #include <certdb.h>
9 #include <keyhi.h> 9 #include <keyhi.h>
10 #include <pk11pub.h> 10 #include <pk11pub.h>
11 #include <string> 11 #include <string>
12 12
13 #include "base/bind.h" 13 #include "base/bind.h"
14 #include "base/logging.h" 14 #include "base/logging.h"
15 #include "base/strings/string_number_conversions.h" 15 #include "base/strings/string_number_conversions.h"
16 #include "base/test/test_simple_task_runner.h"
17 #include "base/thread_task_runner_handle.h"
16 #include "base/values.h" 18 #include "base/values.h"
17 #include "chromeos/network/onc/onc_test_utils.h" 19 #include "chromeos/network/onc/onc_test_utils.h"
18 #include "components/onc/onc_constants.h" 20 #include "components/onc/onc_constants.h"
19 #include "crypto/nss_util_internal.h" 21 #include "crypto/scoped_test_nss_db.h"
20 #include "crypto/scoped_test_nss_chromeos_user.h"
21 #include "net/base/crypto_module.h" 22 #include "net/base/crypto_module.h"
22 #include "net/cert/cert_type.h" 23 #include "net/cert/cert_type.h"
23 #include "net/cert/nss_cert_database_chromeos.h" 24 #include "net/cert/nss_cert_database_chromeos.h"
24 #include "net/cert/x509_certificate.h" 25 #include "net/cert/x509_certificate.h"
25 #include "testing/gtest/include/gtest/gtest.h" 26 #include "testing/gtest/include/gtest/gtest.h"
26 27
27 namespace chromeos { 28 namespace chromeos {
28 namespace onc { 29 namespace onc {
29 30
30 namespace { 31 namespace {
(...skipping 25 matching lines...) Expand all
56 net::CertType GetCertType(net::X509Certificate::OSCertHandle cert) { 57 net::CertType GetCertType(net::X509Certificate::OSCertHandle cert) {
57 NOTIMPLEMENTED(); 58 NOTIMPLEMENTED();
58 return net::OTHER_CERT; 59 return net::OTHER_CERT;
59 } 60 }
60 #endif // USE_NSS 61 #endif // USE_NSS
61 62
62 } // namespace 63 } // namespace
63 64
64 class ONCCertificateImporterImplTest : public testing::Test { 65 class ONCCertificateImporterImplTest : public testing::Test {
65 public: 66 public:
66 ONCCertificateImporterImplTest() : user_("username_hash"), 67 ONCCertificateImporterImplTest() {}
67 private_user_("private_user_hash") {} 68 virtual ~ONCCertificateImporterImplTest() {}
68 69
69 virtual void SetUp() { 70 virtual void SetUp() OVERRIDE {
70 ASSERT_TRUE(user_.constructed_successfully()); 71 ASSERT_TRUE(public_nssdb_.is_open());
71 ASSERT_TRUE(private_user_.constructed_successfully()); 72 ASSERT_TRUE(private_nssdb_.is_open());
72 73
73 // By default test user will have the same public and private slot. 74 task_runner_ = new base::TestSimpleTaskRunner();
74 // Unfortunatelly, ONC importer should care about which slot certificates 75 thread_task_runner_handle_.reset(
75 // get imported to. To work around this, we create another NSS user whose 76 new base::ThreadTaskRunnerHandle(task_runner_));
76 // public slot will act as the private slot. 77
77 // TODO(tbarzic): See if there's a better way to achieve this.
78 test_nssdb_.reset(new net::NSSCertDatabaseChromeOS( 78 test_nssdb_.reset(new net::NSSCertDatabaseChromeOS(
79 crypto::GetPublicSlotForChromeOSUser(user_.username_hash()), 79 crypto::ScopedPK11Slot(public_nssdb_.slot()),
80 crypto::GetPublicSlotForChromeOSUser(private_user_.username_hash()))); 80 crypto::ScopedPK11Slot(private_nssdb_.slot())));
81 81
82 // Test db should be empty at start of test. 82 // Test db should be empty at start of test.
83 EXPECT_TRUE(ListCertsInPublicSlot().empty()); 83 EXPECT_TRUE(ListCertsInPublicSlot().empty());
84 EXPECT_TRUE(ListCertsInPrivateSlot().empty()); 84 EXPECT_TRUE(ListCertsInPrivateSlot().empty());
85 } 85 }
86 86
87 virtual ~ONCCertificateImporterImplTest() {} 87 virtual void TearDown() OVERRIDE {
88 thread_task_runner_handle_.reset();
89 task_runner_ = NULL;
90 }
88 91
89 protected: 92 protected:
93 void OnImportCompleted(bool expected_success,
94 bool success,
95 const net::CertificateList& onc_trusted_certificates) {
96 EXPECT_EQ(expected_success, success);
97 web_trust_certificates_ = onc_trusted_certificates;
98 }
99
90 void AddCertificatesFromFile(std::string filename, bool expected_success) { 100 void AddCertificatesFromFile(std::string filename, bool expected_success) {
91 scoped_ptr<base::DictionaryValue> onc = 101 scoped_ptr<base::DictionaryValue> onc =
92 test_utils::ReadTestDictionary(filename); 102 test_utils::ReadTestDictionary(filename);
93 scoped_ptr<base::Value> certificates_value; 103 scoped_ptr<base::Value> certificates_value;
94 base::ListValue* certificates = NULL; 104 base::ListValue* certificates = NULL;
95 onc->RemoveWithoutPathExpansion(::onc::toplevel_config::kCertificates, 105 onc->RemoveWithoutPathExpansion(::onc::toplevel_config::kCertificates,
96 &certificates_value); 106 &certificates_value);
97 certificates_value.release()->GetAsList(&certificates); 107 certificates_value.release()->GetAsList(&certificates);
98 onc_certificates_.reset(certificates); 108 onc_certificates_.reset(certificates);
99 109
100 web_trust_certificates_.clear(); 110 web_trust_certificates_.clear();
101 imported_server_and_ca_certs_.clear(); 111 CertificateImporterImpl importer(task_runner_, test_nssdb_.get());
102 CertificateImporterImpl importer(test_nssdb_.get()); 112 importer.ImportCertificates(
103 EXPECT_EQ( 113 *certificates,
104 expected_success, 114 ::onc::ONC_SOURCE_USER_IMPORT, // allow web trust
105 importer.ParseAndStoreCertificates(true, // allow web trust 115 base::Bind(&ONCCertificateImporterImplTest::OnImportCompleted,
106 *certificates, 116 base::Unretained(this),
107 &web_trust_certificates_, 117 expected_success));
108 &imported_server_and_ca_certs_)); 118
119 task_runner_->RunUntilIdle();
109 120
110 public_list_ = ListCertsInPublicSlot(); 121 public_list_ = ListCertsInPublicSlot();
111 private_list_ = ListCertsInPrivateSlot(); 122 private_list_ = ListCertsInPrivateSlot();
112 } 123 }
113 124
114 void AddCertificateFromFile(std::string filename, 125 void AddCertificateFromFile(std::string filename,
115 net::CertType expected_type, 126 net::CertType expected_type,
116 std::string* guid) { 127 std::string* guid) {
117 std::string guid_temporary; 128 std::string guid_temporary;
118 if (!guid) 129 if (!guid)
119 guid = &guid_temporary; 130 guid = &guid_temporary;
120 131
121 AddCertificatesFromFile(filename, true); 132 AddCertificatesFromFile(filename, true);
122 ASSERT_EQ(1ul, public_list_.size() + private_list_.size()); 133
123 if (!public_list_.empty()) 134 if (expected_type == net::SERVER_CERT || expected_type == net::CA_CERT) {
135 ASSERT_EQ(1u, public_list_.size());
124 EXPECT_EQ(expected_type, GetCertType(public_list_[0]->os_cert_handle())); 136 EXPECT_EQ(expected_type, GetCertType(public_list_[0]->os_cert_handle()));
125 if (!private_list_.empty()) 137 EXPECT_TRUE(private_list_.empty());
138 } else { // net::USER_CERT
139 EXPECT_TRUE(public_list_.empty());
140 ASSERT_EQ(1u, private_list_.size());
126 EXPECT_EQ(expected_type, GetCertType(private_list_[0]->os_cert_handle())); 141 EXPECT_EQ(expected_type, GetCertType(private_list_[0]->os_cert_handle()));
142 }
127 143
128 base::DictionaryValue* certificate = NULL; 144 base::DictionaryValue* certificate = NULL;
129 onc_certificates_->GetDictionary(0, &certificate); 145 onc_certificates_->GetDictionary(0, &certificate);
130 certificate->GetStringWithoutPathExpansion(::onc::certificate::kGUID, guid); 146 certificate->GetStringWithoutPathExpansion(::onc::certificate::kGUID, guid);
131
132 if (expected_type == net::SERVER_CERT || expected_type == net::CA_CERT) {
133 EXPECT_EQ(1u, imported_server_and_ca_certs_.size());
134 EXPECT_TRUE(
135 imported_server_and_ca_certs_[*guid]->Equals(public_list_[0].get()));
136 } else { // net::USER_CERT
137 EXPECT_TRUE(imported_server_and_ca_certs_.empty());
138 }
139 } 147 }
140 148
149 // Certificates and the NSSCertDatabase depend on these test DBs. Destroy them
150 // last.
151 crypto::ScopedTestNSSDB public_nssdb_;
152 crypto::ScopedTestNSSDB private_nssdb_;
153
154 scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
155 scoped_ptr<base::ThreadTaskRunnerHandle> thread_task_runner_handle_;
141 scoped_ptr<net::NSSCertDatabaseChromeOS> test_nssdb_; 156 scoped_ptr<net::NSSCertDatabaseChromeOS> test_nssdb_;
142 scoped_ptr<base::ListValue> onc_certificates_; 157 scoped_ptr<base::ListValue> onc_certificates_;
143 // List of certs in the nssdb's public slot. 158 // List of certs in the nssdb's public slot.
144 net::CertificateList public_list_; 159 net::CertificateList public_list_;
145 // List of certs in the nssdb's "private" slot. 160 // List of certs in the nssdb's "private" slot.
146 net::CertificateList private_list_; 161 net::CertificateList private_list_;
147 net::CertificateList web_trust_certificates_; 162 net::CertificateList web_trust_certificates_;
148 CertificateImporterImpl::CertsByGUID imported_server_and_ca_certs_;
149 163
150 private: 164 private:
151 net::CertificateList ListCertsInPublicSlot() { 165 net::CertificateList ListCertsInPublicSlot() {
152 return ListCertsInSlot(test_nssdb_->GetPublicSlot().get()); 166 return ListCertsInSlot(public_nssdb_.slot());
153 } 167 }
154 168
155 net::CertificateList ListCertsInPrivateSlot() { 169 net::CertificateList ListCertsInPrivateSlot() {
156 return ListCertsInSlot(test_nssdb_->GetPrivateSlot().get()); 170 return ListCertsInSlot(private_nssdb_.slot());
157 } 171 }
158 172
159 net::CertificateList ListCertsInSlot(PK11SlotInfo* slot) { 173 net::CertificateList ListCertsInSlot(PK11SlotInfo* slot) {
160 net::CertificateList result; 174 net::CertificateList result;
161 CERTCertList* cert_list = PK11_ListCertsInSlot(slot); 175 CERTCertList* cert_list = PK11_ListCertsInSlot(slot);
162 for (CERTCertListNode* node = CERT_LIST_HEAD(cert_list); 176 for (CERTCertListNode* node = CERT_LIST_HEAD(cert_list);
163 !CERT_LIST_END(node, cert_list); 177 !CERT_LIST_END(node, cert_list);
164 node = CERT_LIST_NEXT(node)) { 178 node = CERT_LIST_NEXT(node)) {
165 result.push_back(net::X509Certificate::CreateFromHandle( 179 result.push_back(net::X509Certificate::CreateFromHandle(
166 node->cert, net::X509Certificate::OSCertHandles())); 180 node->cert, net::X509Certificate::OSCertHandles()));
167 } 181 }
168 CERT_DestroyCertList(cert_list); 182 CERT_DestroyCertList(cert_list);
169 183
170 // Sort the result so that test comparisons can be deterministic. 184 // Sort the result so that test comparisons can be deterministic.
171 std::sort(result.begin(), result.end(), net::X509Certificate::LessThan()); 185 std::sort(result.begin(), result.end(), net::X509Certificate::LessThan());
172 return result; 186 return result;
173 } 187 }
174
175 crypto::ScopedTestNSSChromeOSUser user_;
176 crypto::ScopedTestNSSChromeOSUser private_user_;
177 }; 188 };
178 189
179 TEST_F(ONCCertificateImporterImplTest, MultipleCertificates) { 190 TEST_F(ONCCertificateImporterImplTest, MultipleCertificates) {
180 AddCertificatesFromFile("managed_toplevel2.onc", true); 191 AddCertificatesFromFile("managed_toplevel2.onc", true);
181 EXPECT_EQ(onc_certificates_->GetSize(), public_list_.size()); 192 EXPECT_EQ(onc_certificates_->GetSize(), public_list_.size());
182 EXPECT_TRUE(private_list_.empty()); 193 EXPECT_TRUE(private_list_.empty());
183 EXPECT_EQ(2ul, imported_server_and_ca_certs_.size()); 194 EXPECT_EQ(2ul, public_list_.size());
184 } 195 }
185 196
186 TEST_F(ONCCertificateImporterImplTest, MultipleCertificatesWithFailures) { 197 TEST_F(ONCCertificateImporterImplTest, MultipleCertificatesWithFailures) {
187 AddCertificatesFromFile("toplevel_partially_invalid.onc", false); 198 AddCertificatesFromFile("toplevel_partially_invalid.onc", false);
188 EXPECT_EQ(3ul, onc_certificates_->GetSize()); 199 EXPECT_EQ(3ul, onc_certificates_->GetSize());
189 EXPECT_EQ(1ul, private_list_.size()); 200 EXPECT_EQ(1ul, private_list_.size());
190 EXPECT_TRUE(public_list_.empty()); 201 EXPECT_TRUE(public_list_.empty());
191 EXPECT_TRUE(imported_server_and_ca_certs_.empty());
192 } 202 }
193 203
194 TEST_F(ONCCertificateImporterImplTest, AddClientCertificate) { 204 TEST_F(ONCCertificateImporterImplTest, AddClientCertificate) {
195 std::string guid; 205 std::string guid;
196 AddCertificateFromFile("certificate-client.onc", net::USER_CERT, &guid); 206 AddCertificateFromFile("certificate-client.onc", net::USER_CERT, &guid);
197 EXPECT_TRUE(web_trust_certificates_.empty()); 207 EXPECT_TRUE(web_trust_certificates_.empty());
198 EXPECT_EQ(1ul, private_list_.size()); 208 EXPECT_EQ(1ul, private_list_.size());
199 EXPECT_TRUE(public_list_.empty()); 209 EXPECT_TRUE(public_list_.empty());
200 210
201 SECKEYPrivateKeyList* privkey_list = 211 SECKEYPrivateKeyList* privkey_list =
202 PK11_ListPrivKeysInSlot(test_nssdb_->GetPrivateSlot().get(), NULL, NULL); 212 PK11_ListPrivKeysInSlot(private_nssdb_.slot(), NULL, NULL);
203 EXPECT_TRUE(privkey_list); 213 EXPECT_TRUE(privkey_list);
204 if (privkey_list) { 214 if (privkey_list) {
205 SECKEYPrivateKeyListNode* node = PRIVKEY_LIST_HEAD(privkey_list); 215 SECKEYPrivateKeyListNode* node = PRIVKEY_LIST_HEAD(privkey_list);
206 int count = 0; 216 int count = 0;
207 while (!PRIVKEY_LIST_END(node, privkey_list)) { 217 while (!PRIVKEY_LIST_END(node, privkey_list)) {
208 char* name = PK11_GetPrivateKeyNickname(node->key); 218 char* name = PK11_GetPrivateKeyNickname(node->key);
209 EXPECT_STREQ(guid.c_str(), name); 219 EXPECT_STREQ(guid.c_str(), name);
210 PORT_Free(name); 220 PORT_Free(name);
211 count++; 221 count++;
212 node = PRIVKEY_LIST_NEXT(node); 222 node = PRIVKEY_LIST_NEXT(node);
213 } 223 }
214 EXPECT_EQ(1, count); 224 EXPECT_EQ(1, count);
215 SECKEY_DestroyPrivateKeyList(privkey_list); 225 SECKEY_DestroyPrivateKeyList(privkey_list);
216 } 226 }
217 227
218 SECKEYPublicKeyList* pubkey_list = 228 SECKEYPublicKeyList* pubkey_list =
219 PK11_ListPublicKeysInSlot(test_nssdb_->GetPrivateSlot().get(), NULL); 229 PK11_ListPublicKeysInSlot(private_nssdb_.slot(), NULL);
220 EXPECT_TRUE(pubkey_list); 230 EXPECT_TRUE(pubkey_list);
221 if (pubkey_list) { 231 if (pubkey_list) {
222 SECKEYPublicKeyListNode* node = PUBKEY_LIST_HEAD(pubkey_list); 232 SECKEYPublicKeyListNode* node = PUBKEY_LIST_HEAD(pubkey_list);
223 int count = 0; 233 int count = 0;
224 while (!PUBKEY_LIST_END(node, pubkey_list)) { 234 while (!PUBKEY_LIST_END(node, pubkey_list)) {
225 count++; 235 count++;
226 node = PUBKEY_LIST_NEXT(node); 236 node = PUBKEY_LIST_NEXT(node);
227 } 237 }
228 EXPECT_EQ(1, count); 238 EXPECT_EQ(1, count);
229 SECKEY_DestroyPublicKeyList(pubkey_list); 239 SECKEY_DestroyPublicKeyList(pubkey_list);
230 } 240 }
231 } 241 }
232 242
233 TEST_F(ONCCertificateImporterImplTest, AddServerCertificateWithWebTrust) { 243 TEST_F(ONCCertificateImporterImplTest, AddServerCertificateWithWebTrust) {
234 AddCertificateFromFile("certificate-server.onc", net::SERVER_CERT, NULL); 244 AddCertificateFromFile("certificate-server.onc", net::SERVER_CERT, NULL);
235 245
236 SECKEYPrivateKeyList* privkey_list = 246 SECKEYPrivateKeyList* privkey_list =
237 PK11_ListPrivKeysInSlot(test_nssdb_->GetPrivateSlot().get(), NULL, NULL); 247 PK11_ListPrivKeysInSlot(private_nssdb_.slot(), NULL, NULL);
238 EXPECT_FALSE(privkey_list); 248 EXPECT_FALSE(privkey_list);
239 249
240 SECKEYPublicKeyList* pubkey_list = 250 SECKEYPublicKeyList* pubkey_list =
241 PK11_ListPublicKeysInSlot(test_nssdb_->GetPrivateSlot().get(), NULL); 251 PK11_ListPublicKeysInSlot(private_nssdb_.slot(), NULL);
242 EXPECT_FALSE(pubkey_list); 252 EXPECT_FALSE(pubkey_list);
243 253
244 ASSERT_EQ(1u, web_trust_certificates_.size()); 254 ASSERT_EQ(1u, web_trust_certificates_.size());
245 ASSERT_EQ(1u, public_list_.size()); 255 ASSERT_EQ(1u, public_list_.size());
246 EXPECT_TRUE(private_list_.empty()); 256 EXPECT_TRUE(private_list_.empty());
247 EXPECT_TRUE(CERT_CompareCerts(public_list_[0]->os_cert_handle(), 257 EXPECT_TRUE(CERT_CompareCerts(public_list_[0]->os_cert_handle(),
248 web_trust_certificates_[0]->os_cert_handle())); 258 web_trust_certificates_[0]->os_cert_handle()));
249 } 259 }
250 260
251 TEST_F(ONCCertificateImporterImplTest, AddWebAuthorityCertificateWithWebTrust) { 261 TEST_F(ONCCertificateImporterImplTest, AddWebAuthorityCertificateWithWebTrust) {
252 AddCertificateFromFile("certificate-web-authority.onc", net::CA_CERT, NULL); 262 AddCertificateFromFile("certificate-web-authority.onc", net::CA_CERT, NULL);
253 263
254 SECKEYPrivateKeyList* privkey_list = 264 SECKEYPrivateKeyList* privkey_list =
255 PK11_ListPrivKeysInSlot(test_nssdb_->GetPrivateSlot().get(), NULL, NULL); 265 PK11_ListPrivKeysInSlot(private_nssdb_.slot(), NULL, NULL);
256 EXPECT_FALSE(privkey_list); 266 EXPECT_FALSE(privkey_list);
257 267
258 SECKEYPublicKeyList* pubkey_list = 268 SECKEYPublicKeyList* pubkey_list =
259 PK11_ListPublicKeysInSlot(test_nssdb_->GetPrivateSlot().get(), NULL); 269 PK11_ListPublicKeysInSlot(private_nssdb_.slot(), NULL);
260 EXPECT_FALSE(pubkey_list); 270 EXPECT_FALSE(pubkey_list);
261 271
262 ASSERT_EQ(1u, web_trust_certificates_.size()); 272 ASSERT_EQ(1u, web_trust_certificates_.size());
263 ASSERT_EQ(1u, public_list_.size()); 273 ASSERT_EQ(1u, public_list_.size());
264 EXPECT_TRUE(private_list_.empty()); 274 EXPECT_TRUE(private_list_.empty());
265 EXPECT_TRUE(CERT_CompareCerts(public_list_[0]->os_cert_handle(), 275 EXPECT_TRUE(CERT_CompareCerts(public_list_[0]->os_cert_handle(),
266 web_trust_certificates_[0]->os_cert_handle())); 276 web_trust_certificates_[0]->os_cert_handle()));
267 } 277 }
268 278
269 TEST_F(ONCCertificateImporterImplTest, AddAuthorityCertificateWithoutWebTrust) { 279 TEST_F(ONCCertificateImporterImplTest, AddAuthorityCertificateWithoutWebTrust) {
270 AddCertificateFromFile("certificate-authority.onc", net::CA_CERT, NULL); 280 AddCertificateFromFile("certificate-authority.onc", net::CA_CERT, NULL);
271 EXPECT_TRUE(web_trust_certificates_.empty()); 281 EXPECT_TRUE(web_trust_certificates_.empty());
272 282
273 SECKEYPrivateKeyList* privkey_list = 283 SECKEYPrivateKeyList* privkey_list =
274 PK11_ListPrivKeysInSlot(test_nssdb_->GetPrivateSlot().get(), NULL, NULL); 284 PK11_ListPrivKeysInSlot(private_nssdb_.slot(), NULL, NULL);
275 EXPECT_FALSE(privkey_list); 285 EXPECT_FALSE(privkey_list);
276 286
277 SECKEYPublicKeyList* pubkey_list = 287 SECKEYPublicKeyList* pubkey_list =
278 PK11_ListPublicKeysInSlot(test_nssdb_->GetPrivateSlot().get(), NULL); 288 PK11_ListPublicKeysInSlot(private_nssdb_.slot(), NULL);
279 EXPECT_FALSE(pubkey_list); 289 EXPECT_FALSE(pubkey_list);
280 } 290 }
281 291
282 struct CertParam { 292 struct CertParam {
283 CertParam(net::CertType certificate_type, 293 CertParam(net::CertType certificate_type,
284 const char* original_filename, 294 const char* original_filename,
285 const char* update_filename) 295 const char* update_filename)
286 : cert_type(certificate_type), 296 : cert_type(certificate_type),
287 original_file(original_filename), 297 original_file(original_filename),
288 update_file(update_filename) {} 298 update_file(update_filename) {}
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 "certificate-client-update.onc"), 341 "certificate-client-update.onc"),
332 CertParam(net::SERVER_CERT, 342 CertParam(net::SERVER_CERT,
333 "certificate-server.onc", 343 "certificate-server.onc",
334 "certificate-server-update.onc"), 344 "certificate-server-update.onc"),
335 CertParam(net::CA_CERT, 345 CertParam(net::CA_CERT,
336 "certificate-web-authority.onc", 346 "certificate-web-authority.onc",
337 "certificate-web-authority-update.onc"))); 347 "certificate-web-authority-update.onc")));
338 348
339 } // namespace onc 349 } // namespace onc
340 } // namespace chromeos 350 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/network/onc/onc_certificate_importer_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698