OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/browser/chromeos/cros/onc_network_parser.h" | 5 #include "chrome/browser/chromeos/cros/onc_network_parser.h" |
6 | 6 |
7 #include <cert.h> | 7 #include <cert.h> |
| 8 #include <keyhi.h> |
8 #include <pk11pub.h> | 9 #include <pk11pub.h> |
9 | 10 |
10 #include "base/lazy_instance.h" | 11 #include "base/lazy_instance.h" |
11 #include "base/scoped_temp_dir.h" | 12 #include "base/scoped_temp_dir.h" |
12 #include "base/values.h" | 13 #include "base/values.h" |
13 #include "chrome/browser/chromeos/cros/network_library.h" | 14 #include "chrome/browser/chromeos/cros/network_library.h" |
14 #include "crypto/nss_util.h" | 15 #include "crypto/nss_util.h" |
15 #include "net/base/cert_database.h" | 16 #include "net/base/cert_database.h" |
16 #include "net/base/crypto_module.h" | 17 #include "net/base/crypto_module.h" |
17 #include "net/base/x509_certificate.h" | 18 #include "net/base/x509_certificate.h" |
18 #include "testing/gtest/include/gtest/gtest.h" | 19 #include "testing/gtest/include/gtest/gtest.h" |
19 | 20 |
20 namespace chromeos { | 21 namespace chromeos { |
21 | 22 |
| 23 namespace { |
| 24 const char g_token_name[] = "OncNetworkParserTest token"; |
| 25 } |
| 26 |
22 class OncNetworkParserTest : public testing::Test { | 27 class OncNetworkParserTest : public testing::Test { |
23 public: | 28 public: |
24 static void SetUpTestCase() { | 29 static void SetUpTestCase() { |
25 ASSERT_TRUE(temp_db_dir_.Get().CreateUniqueTempDir()); | 30 ASSERT_TRUE(temp_db_dir_.Get().CreateUniqueTempDir()); |
26 // Ideally, we'd open a test DB for each test case, and close it | 31 // Ideally, we'd open a test DB for each test case, and close it |
27 // again, removing the temp dir, but unfortunately, there's a | 32 // again, removing the temp dir, but unfortunately, there's a |
28 // bug in NSS that prevents this from working, so we just open | 33 // bug in NSS that prevents this from working, so we just open |
29 // it once, and empty it for each test case. Here's the bug: | 34 // it once, and empty it for each test case. Here's the bug: |
30 // https://bugzilla.mozilla.org/show_bug.cgi?id=588269 | 35 // https://bugzilla.mozilla.org/show_bug.cgi?id=588269 |
31 ASSERT_TRUE( | 36 ASSERT_TRUE( |
32 crypto::OpenTestNSSDB(temp_db_dir_.Get().path(), | 37 crypto::OpenTestNSSDB(temp_db_dir_.Get().path(), g_token_name)); |
33 "OncNetworkParserTest db")); | |
34 } | 38 } |
35 | 39 |
36 static void TearDownTestCase() { | 40 static void TearDownTestCase() { |
37 ASSERT_TRUE(temp_db_dir_.Get().Delete()); | 41 ASSERT_TRUE(temp_db_dir_.Get().Delete()); |
38 } | 42 } |
39 | 43 |
40 virtual void SetUp() { | 44 virtual void SetUp() { |
41 slot_ = cert_db_.GetPublicModule(); | 45 slot_ = cert_db_.GetPublicModule(); |
42 | 46 |
43 // Don't run the test if the setup failed. | 47 // Don't run the test if the setup failed. |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 EXPECT_EQ(wifi->encryption(), chromeos::SECURITY_8021X); | 189 EXPECT_EQ(wifi->encryption(), chromeos::SECURITY_8021X); |
186 EXPECT_EQ(wifi->name(), "ssid"); | 190 EXPECT_EQ(wifi->name(), "ssid"); |
187 EXPECT_EQ(wifi->auto_connect(), false); | 191 EXPECT_EQ(wifi->auto_connect(), false); |
188 EXPECT_EQ(wifi->eap_method(), EAP_METHOD_LEAP); | 192 EXPECT_EQ(wifi->eap_method(), EAP_METHOD_LEAP); |
189 EXPECT_EQ(wifi->eap_use_system_cas(), true); | 193 EXPECT_EQ(wifi->eap_use_system_cas(), true); |
190 EXPECT_EQ(wifi->eap_identity(), "user"); | 194 EXPECT_EQ(wifi->eap_identity(), "user"); |
191 EXPECT_EQ(wifi->eap_passphrase(), "pass"); | 195 EXPECT_EQ(wifi->eap_passphrase(), "pass"); |
192 EXPECT_EQ(wifi->eap_anonymous_identity(), "anon"); | 196 EXPECT_EQ(wifi->eap_anonymous_identity(), "anon"); |
193 } | 197 } |
194 | 198 |
| 199 TEST_F(OncNetworkParserTest, TestAddClientCertificate) { |
| 200 std::string test_blob( |
| 201 "{" |
| 202 " \"Certificates\": [" |
| 203 " {" |
| 204 " \"GUID\": \"{f998f760-272b-6939-4c2beffe428697ac}\"," |
| 205 " \"Type\": \"Client\"," |
| 206 " \"PKCS12\": \"MIIGUQIBAzCCBhcGCSqGSIb3DQEHAaCCBggEggYEMII" |
| 207 "GADCCAv8GCSqGSIb3DQEHBqCCAvAwggLsAgEAMIIC5QYJKoZIhvcNAQcBMBwGCiqGSIb3" |
| 208 "DQEMAQYwDgQIHnFaWM2Y0BgCAggAgIICuG4ou9mxkhpus8WictLJe+JOnSQrdNXV3FMQr" |
| 209 "4pPJ6aJJFBMKZ80W2GpR8XNY/SSKkdaNr1puDm1bDBFGaHQuCKXYcWO8ynBQ1uoZaFaTT" |
| 210 "FxWbbHo89Jrvw+gIrgpoOHQ0KECEbh5vOZCjGHoaQb4QZOkw/6Cuc4QRoCPJAI3pbSPG4" |
| 211 "4kRbOuOaTZvBHSIPkGf3+R6byTvZ3Yiuw7IIzxUp2fYjtpCWd/NvtI70heJCWdb5hwCeN" |
| 212 "afIEpX+MTVuhUegysIFkOMMlUBIQSI5ky8kjx0Yi82BT/dpz9QgrqFL8NnTMXp0JlKFGL" |
| 213 "QwsIQhvGjw/E52fEWRy85B5eezgNsD4QOLeZkF0bQAz8kXfLi+0djxsHvH9W9X2pwaFiA" |
| 214 "veXR15/v+wfCwQGSsRhISGLzg/gO1agbQdaexI9GlEeZW0FEY7TblarKh8TVGNrauU7GC" |
| 215 "GDmD2w7wx2HTXfo9SbViFoYVKuxcrpHGGEtBffnIeAwN6BBee4v11jxv0i/QUdK5G6FbH" |
| 216 "qlD1AhHsm0YvidYKqJ0cnN262xIJH7dhKq/qUiAT+qk3+d3/obqxbvVY+bDoJQ10Gzj1A" |
| 217 "SMy4zcSL7KW1l99xxMr6OlKr4Sr23oGw4BIN73FB8S8qMzz/VzL4azDUyGpPkzWl0yXPs" |
| 218 "HpFWh1nZlsQehyknyWDH/waKrrG8tVWxHZLgq+zrFxQTh63UHXSD+TXB+AQg2xmQMeWlf" |
| 219 "vRcsKL8titZ6PnWCHTmZY+3ibv5avDsg7He6OcZOi9ZmYMx82QHuzb4aZ/T+OC05oA97n" |
| 220 "VNbTN6t8okkRtBamMvVhtTJANVpsdPi8saEaVF8e9liwmpq2w7pqXnzgdzvjSUpPAa4dZ" |
| 221 "BjWnZJvFOHuxZqiRzQdZbeh9+bXwsQJhRNe+d4EgFwuqebQOczeUi4NVTHTFiuPEjCCAv" |
| 222 "kGCSqGSIb3DQEHAaCCAuoEggLmMIIC4jCCAt4GCyqGSIb3DQEMCgECoIICpjCCAqIwHAY" |
| 223 "KKoZIhvcNAQwBAzAOBAi0znbEekG/MgICCAAEggKAJfFPaQyYYLohEA1ruAZfepwMVrR8" |
| 224 "eLMx00kkfXN9EoZeFPj2q7TGdqmbkUSqXnZK1ums7pFCPLgP1CsPlsq/4ZPDT2LLVFZNL" |
| 225 "OgmdQBOSTvycfsj0iKYrwRC55wJI2OXsc062sT7oa99apkgrEyHq7JbOhszfnv5+aVy/6" |
| 226 "O115dncqFPW2ei4CBzLEZyYa+Mka6CGqSdm97WVmv0emDKTFEP/FN4TH/tS8Qm6Y7DTKG" |
| 227 "CujC+hb6lTRFYJAD4uld132dv0xQFkwDZGfdnuGJuNZBDC0gZk3BYvOaCUD8Y9UB5IjfG" |
| 228 "Jax2yrurY1wSGSlTurafDTPrKqIdBovwCPsad2xz1YHC2Yy0h1FyR+2uitDyNfTiETfug" |
| 229 "3bFbjwodu9wmt31A2ZFn4JpUrTYoZ3LZXngC3nNTayU0Tkd1ICMep2GbCReL3ajOlgOKG" |
| 230 "FVoOm/qDnhiH6W/ebtAQXqVpuKut8uY0X0Ocmx7mTpmxlfDSRiBY9rvnrGfnpfLMxtFeF" |
| 231 "9jv3n8vSwvA0Xn0okAv1FWYLStiCpNxnD6lmXQvcmL/skAlJJpHY9/58qt/e5sGYrkKBw" |
| 232 "3jnX40zaK4W7GeJvhij0MRr6yUL2lvaEcWDnK6K1F90G/ybKRCTHBCJzyBe7yHhZCc+Zc" |
| 233 "vKK6DTi83fELTyupy08BkXt7oPdapxmKlZxTldo9FpPXSqrdRtAWhDkEkIEf8dMf8QrQr" |
| 234 "3glCWfbcQ047URYX45AHRnLTLLkJfdY8+Y3KsHoqL2UrOrct+J1u0mmnLbonN3pB2B4nd" |
| 235 "9X9vf9/uSFrgvk0iPO0Ro3UPRUIIYEP2Kx51pZZVDd++hl5gXtqe0NIpphGhxLycIdzEl" |
| 236 "MCMGCSqGSIb3DQEJFTEWBBR1uVpGjHRddIEYuJhz/FgG4Onh6jAxMCEwCQYFKw4DAhoFA" |
| 237 "AQU1M+0WRDkoVGbGg1jj7q2fI67qHIECBzRYESpgt5iAgIIAA==\"" |
| 238 " }" |
| 239 " ]," |
| 240 "}"); |
| 241 std::string test_guid("{f998f760-272b-6939-4c2beffe428697ac}"); |
| 242 OncNetworkParser parser(test_blob); |
| 243 ASSERT_EQ(1, parser.GetCertificatesSize()); |
| 244 |
| 245 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get(); |
| 246 EXPECT_TRUE(cert.get() != NULL); |
| 247 EXPECT_STREQ(test_guid.c_str(), cert->GetLabel().c_str()); |
| 248 |
| 249 SECKEYPublicKeyList* pubkey_list = |
| 250 PK11_ListPublicKeysInSlot(slot_->os_module_handle(), NULL); |
| 251 EXPECT_TRUE(pubkey_list); |
| 252 if (pubkey_list) { |
| 253 SECKEYPublicKeyListNode* node = PUBKEY_LIST_HEAD(pubkey_list); |
| 254 while (!PUBKEY_LIST_END(node, pubkey_list)) { |
| 255 EXPECT_STREQ(test_guid.c_str(), PK11_GetPublicKeyNickname(node->key)); |
| 256 node = PUBKEY_LIST_NEXT(node); |
| 257 } |
| 258 } |
| 259 SECKEY_DestroyPublicKeyList(pubkey_list); |
| 260 |
| 261 SECKEYPrivateKeyList* privkey_list = |
| 262 PK11_ListPrivKeysInSlot(slot_->os_module_handle(), NULL, NULL); |
| 263 EXPECT_TRUE(privkey_list); |
| 264 if (privkey_list) { |
| 265 SECKEYPrivateKeyListNode* node = PRIVKEY_LIST_HEAD(privkey_list); |
| 266 while (!PRIVKEY_LIST_END(node, privkey_list)) { |
| 267 EXPECT_STREQ(test_guid.c_str(), PK11_GetPrivateKeyNickname(node->key)); |
| 268 node = PRIVKEY_LIST_NEXT(node); |
| 269 } |
| 270 } |
| 271 SECKEY_DestroyPrivateKeyList(privkey_list); |
| 272 |
| 273 net::CertificateList result_list; |
| 274 cert_db_.ListCertsWithLabel(test_guid, &result_list); |
| 275 ASSERT_EQ(1ul, result_list.size()); |
| 276 EXPECT_EQ(net::USER_CERT, result_list[0]->GetCertificateType()); |
| 277 } |
| 278 |
195 TEST_F(OncNetworkParserTest, TestAddServerCertificate) { | 279 TEST_F(OncNetworkParserTest, TestAddServerCertificate) { |
196 std::string test_blob( | 280 std::string test_blob( |
197 "{" | 281 "{" |
198 " \"Certificates\": [" | 282 " \"Certificates\": [" |
199 " {" | 283 " {" |
200 " \"GUID\": \"{f998f760-272b-6939-4c2beffe428697aa}\"," | 284 " \"GUID\": \"{f998f760-272b-6939-4c2beffe428697aa}\"," |
201 " \"Type\": \"Server\"," | 285 " \"Type\": \"Server\"," |
202 " \"X509\": \"MIICWDCCAcECAxAAATANBgkqhkiG9w0BAQQFADCBkzEVM" | 286 " \"X509\": \"MIICWDCCAcECAxAAATANBgkqhkiG9w0BAQQFADCBkzEVM" |
203 "BMGA1UEChMMR29vZ2xlLCBJbmMuMREwDwYDVQQLEwhDaHJvbWVPUzEiMCAGCSqGSIb3DQ" | 287 "BMGA1UEChMMR29vZ2xlLCBJbmMuMREwDwYDVQQLEwhDaHJvbWVPUzEiMCAGCSqGSIb3DQ" |
204 "EJARYTZ3NwZW5jZXJAZ29vZ2xlLmNvbTEaMBgGA1UEBxMRTW91bnRhaW4gVmlldywgQ0E" | 288 "EJARYTZ3NwZW5jZXJAZ29vZ2xlLmNvbTEaMBgGA1UEBxMRTW91bnRhaW4gVmlldywgQ0E" |
205 "xCzAJBgNVBAgTAkNBMQswCQYDVQQGEwJVUzENMAsGA1UEAxMEbG1hbzAeFw0xMTAzMTYy" | 289 "xCzAJBgNVBAgTAkNBMQswCQYDVQQGEwJVUzENMAsGA1UEAxMEbG1hbzAeFw0xMTAzMTYy" |
206 "MzQ5MzhaFw0xMjAzMTUyMzQ5MzhaMFMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVM" | 290 "MzQ5MzhaFw0xMjAzMTUyMzQ5MzhaMFMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVM" |
207 "BMGA1UEChMMR29vZ2xlLCBJbmMuMREwDwYDVQQLEwhDaHJvbWVPUzENMAsGA1UEAxMEbG" | 291 "BMGA1UEChMMR29vZ2xlLCBJbmMuMREwDwYDVQQLEwhDaHJvbWVPUzENMAsGA1UEAxMEbG" |
208 "1hbzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA31WiJ9LvprrhKtDlW0RdLFAO7Qj" | 292 "1hbzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA31WiJ9LvprrhKtDlW0RdLFAO7Qj" |
209 "kvs+sG6j2Vp2aBSrlhALG/0BVHUhWi4F/HHJho+ncLHAg5AGO0sdAjYUdQG6tfPqjLsIA" | 293 "kvs+sG6j2Vp2aBSrlhALG/0BVHUhWi4F/HHJho+ncLHAg5AGO0sdAjYUdQG6tfPqjLsIA" |
210 "LtoKEZZdFe/JhmqOEaxWsSdu2S2RdPgCQOsP79EH58gXwu2gejCkJDmU22WL4YLuqOc17" | 294 "LtoKEZZdFe/JhmqOEaxWsSdu2S2RdPgCQOsP79EH58gXwu2gejCkJDmU22WL4YLuqOc17" |
211 "nxbDC8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCv4vMD+PMlfnftu4/6Yf/oMLE8yCOqZT" | 295 "nxbDC8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCv4vMD+PMlfnftu4/6Yf/oMLE8yCOqZT" |
212 "Q/dWCxB9PiJnOefiBeSzSZE6Uv3G7qnblZPVZaFeJMd+ostt0viCyPucFsFgLMyyoV1dM" | 296 "Q/dWCxB9PiJnOefiBeSzSZE6Uv3G7qnblZPVZaFeJMd+ostt0viCyPucFsFgLMyyoV1dM" |
213 "VPVwJT5Iq1AHehWXnTBbxUK9wioA5jOEKdroKjuSSsg/Q8Wx6cpJmttQz5olGPgstmACR" | 297 "VPVwJT5Iq1AHehWXnTBbxUK9wioA5jOEKdroKjuSSsg/Q8Wx6cpJmttQz5olGPgstmACR" |
214 "WA==\"" | 298 "WA==\"" |
215 " }" | 299 " }" |
216 " ]," | 300 " ]," |
217 "}"); | 301 "}"); |
| 302 std::string test_guid("{f998f760-272b-6939-4c2beffe428697aa}"); |
218 OncNetworkParser parser(test_blob); | 303 OncNetworkParser parser(test_blob); |
| 304 ASSERT_EQ(1, parser.GetCertificatesSize()); |
219 | 305 |
220 EXPECT_EQ(1, parser.GetCertificatesSize()); | 306 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get(); |
221 EXPECT_TRUE(parser.ParseCertificate(0)); | 307 EXPECT_TRUE(cert.get() != NULL); |
| 308 EXPECT_STREQ(test_guid.c_str(), cert->GetLabel().c_str()); |
| 309 |
| 310 SECKEYPrivateKeyList* privkey_list = |
| 311 PK11_ListPrivKeysInSlot(slot_->os_module_handle(), NULL, NULL); |
| 312 EXPECT_FALSE(privkey_list); |
| 313 |
| 314 SECKEYPublicKeyList* pubkey_list = |
| 315 PK11_ListPublicKeysInSlot(slot_->os_module_handle(), NULL); |
| 316 EXPECT_FALSE(pubkey_list); |
| 317 |
| 318 net::CertificateList result_list; |
| 319 cert_db_.ListCertsWithLabel(test_guid, &result_list); |
| 320 ASSERT_EQ(1ul, result_list.size()); |
| 321 EXPECT_EQ(net::SERVER_CERT, result_list[0]->GetCertificateType()); |
222 } | 322 } |
223 | 323 |
224 TEST_F(OncNetworkParserTest, TestAddAuthorityCertificate) { | 324 TEST_F(OncNetworkParserTest, TestAddAuthorityCertificate) { |
225 const std::string test_blob("{" | 325 const std::string test_blob("{" |
226 " \"Certificates\": [" | 326 " \"Certificates\": [" |
227 " {" | 327 " {" |
228 " \"GUID\": \"{f998f760-272b-6939-4c2beffe428697ab}\"," | 328 " \"GUID\": \"{f998f760-272b-6939-4c2beffe428697ab}\"," |
229 " \"Type\": \"Authority\"," | 329 " \"Type\": \"Authority\"," |
230 " \"Trust\": [\"Web\"]," | 330 " \"Trust\": [\"Web\"]," |
231 " \"X509\": \"MIIDojCCAwugAwIBAgIJAKGvi5ZgEWDVMA0GCSqGSIb3D" | 331 " \"X509\": \"MIIDojCCAwugAwIBAgIJAKGvi5ZgEWDVMA0GCSqGSIb3D" |
(...skipping 11 matching lines...) Expand all Loading... |
243 "bSkl4kpjCNuxoezFGupA97WhgZmkgZYwgZMxFTATBgNVBAoTDEdvb2dsZSwgSW5jLjERM" | 343 "bSkl4kpjCNuxoezFGupA97WhgZmkgZYwgZMxFTATBgNVBAoTDEdvb2dsZSwgSW5jLjERM" |
244 "A8GA1UECxMIQ2hyb21lT1MxIjAgBgkqhkiG9w0BCQEWE2dzcGVuY2VyQGdvb2dsZS5jb2" | 344 "A8GA1UECxMIQ2hyb21lT1MxIjAgBgkqhkiG9w0BCQEWE2dzcGVuY2VyQGdvb2dsZS5jb2" |
245 "0xGjAYBgNVBAcTEU1vdW50YWluIFZpZXcsIENBMQswCQYDVQQIEwJDQTELMAkGA1UEBhM" | 345 "0xGjAYBgNVBAcTEU1vdW50YWluIFZpZXcsIENBMQswCQYDVQQIEwJDQTELMAkGA1UEBhM" |
246 "CVVMxDTALBgNVBAMTBGxtYW+CCQChr4uWYBFg1TANBgkqhkiG9w0BAQQFAAOBgQCDq9wi" | 346 "CVVMxDTALBgNVBAMTBGxtYW+CCQChr4uWYBFg1TANBgkqhkiG9w0BAQQFAAOBgQCDq9wi" |
247 "Q4uVuf1CQU3sXfXCy1yqi5m8AsO9FxHvah5/SVFNwKllqTfedpCaWEswJ55YAojW9e+pY" | 347 "Q4uVuf1CQU3sXfXCy1yqi5m8AsO9FxHvah5/SVFNwKllqTfedpCaWEswJ55YAojW9e+pY" |
248 "2Fh3Fo/Y9YkF88KCtLuBjjqDKCRLxF4LycjHODKyQQ7mN/t5AtP9yKOsNvWF+M4IfReg5" | 348 "2Fh3Fo/Y9YkF88KCtLuBjjqDKCRLxF4LycjHODKyQQ7mN/t5AtP9yKOsNvWF+M4IfReg5" |
249 "1kohau6FauQx87by5NIRPdkNPvkQ==\"" | 349 "1kohau6FauQx87by5NIRPdkNPvkQ==\"" |
250 " }" | 350 " }" |
251 " ]," | 351 " ]," |
252 "}"); | 352 "}"); |
| 353 std::string test_guid("{f998f760-272b-6939-4c2beffe428697ab}"); |
253 OncNetworkParser parser(test_blob); | 354 OncNetworkParser parser(test_blob); |
| 355 ASSERT_EQ(1, parser.GetCertificatesSize()); |
254 | 356 |
255 EXPECT_EQ(1, parser.GetCertificatesSize()); | 357 scoped_refptr<net::X509Certificate> cert = parser.ParseCertificate(0).get(); |
256 EXPECT_TRUE(parser.ParseCertificate(0)); | 358 EXPECT_TRUE(cert.get() != NULL); |
257 } | 359 EXPECT_STREQ(test_guid.c_str(), cert->GetLabel().c_str()); |
258 | 360 |
259 TEST_F(OncNetworkParserTest, TestAddClientCertificate) { | 361 SECKEYPrivateKeyList* privkey_list = |
260 std::string test_blob( | 362 PK11_ListPrivKeysInSlot(slot_->os_module_handle(), NULL, NULL); |
261 "{" | 363 EXPECT_FALSE(privkey_list); |
262 " \"Certificates\": [" | |
263 " {" | |
264 " \"GUID\": \"{f998f760-272b-6939-4c2beffe428697ac}\"," | |
265 " \"Type\": \"Client\"," | |
266 " \"PKCS12\": \"MIIGUQIBAzCCBhcGCSqGSIb3DQEHAaCCBggEggYEMII" | |
267 "GADCCAv8GCSqGSIb3DQEHBqCCAvAwggLsAgEAMIIC5QYJKoZIhvcNAQcBMBwGCiqGSIb3" | |
268 "DQEMAQYwDgQIHnFaWM2Y0BgCAggAgIICuG4ou9mxkhpus8WictLJe+JOnSQrdNXV3FMQr" | |
269 "4pPJ6aJJFBMKZ80W2GpR8XNY/SSKkdaNr1puDm1bDBFGaHQuCKXYcWO8ynBQ1uoZaFaTT" | |
270 "FxWbbHo89Jrvw+gIrgpoOHQ0KECEbh5vOZCjGHoaQb4QZOkw/6Cuc4QRoCPJAI3pbSPG4" | |
271 "4kRbOuOaTZvBHSIPkGf3+R6byTvZ3Yiuw7IIzxUp2fYjtpCWd/NvtI70heJCWdb5hwCeN" | |
272 "afIEpX+MTVuhUegysIFkOMMlUBIQSI5ky8kjx0Yi82BT/dpz9QgrqFL8NnTMXp0JlKFGL" | |
273 "QwsIQhvGjw/E52fEWRy85B5eezgNsD4QOLeZkF0bQAz8kXfLi+0djxsHvH9W9X2pwaFiA" | |
274 "veXR15/v+wfCwQGSsRhISGLzg/gO1agbQdaexI9GlEeZW0FEY7TblarKh8TVGNrauU7GC" | |
275 "GDmD2w7wx2HTXfo9SbViFoYVKuxcrpHGGEtBffnIeAwN6BBee4v11jxv0i/QUdK5G6FbH" | |
276 "qlD1AhHsm0YvidYKqJ0cnN262xIJH7dhKq/qUiAT+qk3+d3/obqxbvVY+bDoJQ10Gzj1A" | |
277 "SMy4zcSL7KW1l99xxMr6OlKr4Sr23oGw4BIN73FB8S8qMzz/VzL4azDUyGpPkzWl0yXPs" | |
278 "HpFWh1nZlsQehyknyWDH/waKrrG8tVWxHZLgq+zrFxQTh63UHXSD+TXB+AQg2xmQMeWlf" | |
279 "vRcsKL8titZ6PnWCHTmZY+3ibv5avDsg7He6OcZOi9ZmYMx82QHuzb4aZ/T+OC05oA97n" | |
280 "VNbTN6t8okkRtBamMvVhtTJANVpsdPi8saEaVF8e9liwmpq2w7pqXnzgdzvjSUpPAa4dZ" | |
281 "BjWnZJvFOHuxZqiRzQdZbeh9+bXwsQJhRNe+d4EgFwuqebQOczeUi4NVTHTFiuPEjCCAv" | |
282 "kGCSqGSIb3DQEHAaCCAuoEggLmMIIC4jCCAt4GCyqGSIb3DQEMCgECoIICpjCCAqIwHAY" | |
283 "KKoZIhvcNAQwBAzAOBAi0znbEekG/MgICCAAEggKAJfFPaQyYYLohEA1ruAZfepwMVrR8" | |
284 "eLMx00kkfXN9EoZeFPj2q7TGdqmbkUSqXnZK1ums7pFCPLgP1CsPlsq/4ZPDT2LLVFZNL" | |
285 "OgmdQBOSTvycfsj0iKYrwRC55wJI2OXsc062sT7oa99apkgrEyHq7JbOhszfnv5+aVy/6" | |
286 "O115dncqFPW2ei4CBzLEZyYa+Mka6CGqSdm97WVmv0emDKTFEP/FN4TH/tS8Qm6Y7DTKG" | |
287 "CujC+hb6lTRFYJAD4uld132dv0xQFkwDZGfdnuGJuNZBDC0gZk3BYvOaCUD8Y9UB5IjfG" | |
288 "Jax2yrurY1wSGSlTurafDTPrKqIdBovwCPsad2xz1YHC2Yy0h1FyR+2uitDyNfTiETfug" | |
289 "3bFbjwodu9wmt31A2ZFn4JpUrTYoZ3LZXngC3nNTayU0Tkd1ICMep2GbCReL3ajOlgOKG" | |
290 "FVoOm/qDnhiH6W/ebtAQXqVpuKut8uY0X0Ocmx7mTpmxlfDSRiBY9rvnrGfnpfLMxtFeF" | |
291 "9jv3n8vSwvA0Xn0okAv1FWYLStiCpNxnD6lmXQvcmL/skAlJJpHY9/58qt/e5sGYrkKBw" | |
292 "3jnX40zaK4W7GeJvhij0MRr6yUL2lvaEcWDnK6K1F90G/ybKRCTHBCJzyBe7yHhZCc+Zc" | |
293 "vKK6DTi83fELTyupy08BkXt7oPdapxmKlZxTldo9FpPXSqrdRtAWhDkEkIEf8dMf8QrQr" | |
294 "3glCWfbcQ047URYX45AHRnLTLLkJfdY8+Y3KsHoqL2UrOrct+J1u0mmnLbonN3pB2B4nd" | |
295 "9X9vf9/uSFrgvk0iPO0Ro3UPRUIIYEP2Kx51pZZVDd++hl5gXtqe0NIpphGhxLycIdzEl" | |
296 "MCMGCSqGSIb3DQEJFTEWBBR1uVpGjHRddIEYuJhz/FgG4Onh6jAxMCEwCQYFKw4DAhoFA" | |
297 "AQU1M+0WRDkoVGbGg1jj7q2fI67qHIECBzRYESpgt5iAgIIAA==\"" | |
298 " }" | |
299 " ]," | |
300 "}"); | |
301 OncNetworkParser parser(test_blob); | |
302 | 364 |
303 EXPECT_EQ(1, parser.GetCertificatesSize()); | 365 SECKEYPublicKeyList* pubkey_list = |
304 EXPECT_TRUE(parser.ParseCertificate(0)); | 366 PK11_ListPublicKeysInSlot(slot_->os_module_handle(), NULL); |
| 367 EXPECT_FALSE(pubkey_list); |
| 368 |
| 369 net::CertificateList result_list; |
| 370 cert_db_.ListCertsWithLabel(test_guid, &result_list); |
| 371 ASSERT_EQ(1ul, result_list.size()); |
| 372 EXPECT_EQ(net::CA_CERT, result_list[0]->GetCertificateType()); |
305 } | 373 } |
306 | 374 |
307 } // namespace chromeos | 375 } // namespace chromeos |
OLD | NEW |