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

Side by Side Diff: net/base/ev_root_ca_metadata_unittest.cc

Issue 10857020: Do not perform online revocation checking when the user has explicitly disabled it, except for when… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review feedback Created 8 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/base/ev_root_ca_metadata.h" 5 #include "net/base/ev_root_ca_metadata.h"
6 6
7 #include "net/base/cert_test_util.h" 7 #include "net/base/cert_test_util.h"
8 #include "net/base/x509_cert_types.h" 8 #include "net/base/x509_cert_types.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
11 #if defined(USE_NSS)
12 #include "crypto/scoped_nss_types.h"
13 #endif
14
11 namespace net { 15 namespace net {
12 16
17 namespace {
18
13 static const char kVerisignPolicy[] = "2.16.840.1.113733.1.7.23.6"; 19 static const char kVerisignPolicy[] = "2.16.840.1.113733.1.7.23.6";
14 static const char kThawtePolicy[] = "2.16.840.1.113733.1.7.48.1"; 20 static const char kThawtePolicy[] = "2.16.840.1.113733.1.7.48.1";
15 static const char kFakePolicy[] = "2.16.840.1.42"; 21 static const char kFakePolicy[] = "2.16.840.1.42";
16 static const SHA1Fingerprint kVerisignFingerprint = 22 static const SHA1Fingerprint kVerisignFingerprint =
17 { { 0x74, 0x2c, 0x31, 0x92, 0xe6, 0x07, 0xe4, 0x24, 0xeb, 0x45, 23 { { 0x74, 0x2c, 0x31, 0x92, 0xe6, 0x07, 0xe4, 0x24, 0xeb, 0x45,
18 0x49, 0x54, 0x2b, 0xe1, 0xbb, 0xc5, 0x3e, 0x61, 0x74, 0xe2 } }; 24 0x49, 0x54, 0x2b, 0xe1, 0xbb, 0xc5, 0x3e, 0x61, 0x74, 0xe2 } };
19 static const SHA1Fingerprint kFakeFingerprint = 25 static const SHA1Fingerprint kFakeFingerprint =
20 { { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 26 { { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99,
21 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99 } }; 27 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99 } };
22 28
29 #if defined(USE_NSS) || defined(OS_WIN)
30 class EVOidData {
31 public:
32 EVOidData();
33 bool Init();
34
35 EVRootCAMetadata::PolicyOID verisign_policy;
36 EVRootCAMetadata::PolicyOID thawte_policy;
37 EVRootCAMetadata::PolicyOID fake_policy;
38 };
39
40 #endif // defined(USE_NSS) || defined(OS_WIN)
41
23 #if defined(USE_NSS) 42 #if defined(USE_NSS)
24 43
25 TEST(EVRootCAMetadataTest, Basic) { 44 SECOidTag RegisterOID(PLArenaPool* arena, const char* oid_string) {
26 EVRootCAMetadata* ev_metadata(EVRootCAMetadata::GetInstance()); 45 SECOidData oid_data;
27 std::vector<EVRootCAMetadata::PolicyOID> oids; 46 memset(&oid_data, 0, sizeof(oid_data));
47 oid_data.offset = SEC_OID_UNKNOWN;
48 oid_data.desc = oid_string;
49 oid_data.mechanism = CKM_INVALID_MECHANISM;
50 oid_data.supportedExtension = INVALID_CERT_EXTENSION;
28 51
29 EXPECT_TRUE(ev_metadata->GetPolicyOIDsForCA(kVerisignFingerprint, &oids)); 52 SECStatus rv = SEC_StringToOID(arena, &oid_data.oid, oid_string, 0);
30 EXPECT_LT(0u, oids.size()); 53 if (rv != SECSuccess)
31 oids.clear(); 54 return SEC_OID_UNKNOWN;
32 55
33 EXPECT_FALSE(ev_metadata->GetPolicyOIDsForCA(kFakeFingerprint, &oids)); 56 return SECOID_AddEntry(&oid_data);
34 EXPECT_EQ(0u, oids.size());
35 } 57 }
36 58
37 TEST(EVRootCAMetadataTest, AddRemove) { 59 EVOidData::EVOidData()
60 : verisign_policy(SEC_OID_UNKNOWN),
61 thawte_policy(SEC_OID_UNKNOWN),
62 fake_policy(SEC_OID_UNKNOWN) {
63 }
64
65 bool EVOidData::Init() {
66 crypto::ScopedPLArenaPool pool(PORT_NewArena(DER_DEFAULT_CHUNKSIZE));
67 if (!pool.get())
68 return false;
69
70 verisign_policy = RegisterOID(pool.get(), kVerisignPolicy);
71 thawte_policy = RegisterOID(pool.get(), kThawtePolicy);
72 fake_policy = RegisterOID(pool.get(), kFakePolicy);
73
74 return verisign_policy != SEC_OID_UNKNOWN &&
75 thawte_policy != SEC_OID_UNKNOWN &&
76 fake_policy != SEC_OID_UNKNOWN;
77 }
78
79 #elif defined(OS_WIN)
80
81 EVOidData::EVOidData()
82 : verisign_policy(kVerisignPolicy),
83 thawte_policy(kThawtePolicy),
84 fake_policy(kFakePolicy) {
85 }
86
87 bool EVOidData::Init() {
88 return true;
89 }
90
91 #endif
92
93 #if defined(USE_NSS) || defined(OS_WIN)
94
95 class EVRootCAMetadataTest : public testing::Test {
96 protected:
97 virtual void SetUp() OVERRIDE {
98 ASSERT_TRUE(ev_oid_data.Init());
99 }
100
101 EVOidData ev_oid_data;
102 };
103
104 TEST_F(EVRootCAMetadataTest, Basic) {
38 EVRootCAMetadata* ev_metadata(EVRootCAMetadata::GetInstance()); 105 EVRootCAMetadata* ev_metadata(EVRootCAMetadata::GetInstance());
39 std::vector<EVRootCAMetadata::PolicyOID> oids;
40 106
41 EXPECT_FALSE(ev_metadata->GetPolicyOIDsForCA(kFakeFingerprint, &oids)); 107 EXPECT_TRUE(ev_metadata->IsEVPolicyOID(ev_oid_data.verisign_policy));
108 EXPECT_FALSE(ev_metadata->IsEVPolicyOID(ev_oid_data.fake_policy));
109 EXPECT_TRUE(ev_metadata->HasEVPolicyOID(kVerisignFingerprint,
110 ev_oid_data.verisign_policy));
111 EXPECT_FALSE(ev_metadata->HasEVPolicyOID(kFakeFingerprint,
112 ev_oid_data.verisign_policy));
113 EXPECT_FALSE(ev_metadata->HasEVPolicyOID(kVerisignFingerprint,
114 ev_oid_data.fake_policy));
115 EXPECT_FALSE(ev_metadata->HasEVPolicyOID(kVerisignFingerprint,
116 ev_oid_data.thawte_policy));
117 }
118
119 TEST_F(EVRootCAMetadataTest, AddRemove) {
120 EVRootCAMetadata* ev_metadata(EVRootCAMetadata::GetInstance());
121
122 EXPECT_FALSE(ev_metadata->IsEVPolicyOID(ev_oid_data.fake_policy));
123 EXPECT_FALSE(ev_metadata->HasEVPolicyOID(kFakeFingerprint,
124 ev_oid_data.fake_policy));
42 125
43 { 126 {
44 ScopedTestEVPolicy test_ev_policy(ev_metadata, kFakeFingerprint, 127 ScopedTestEVPolicy test_ev_policy(ev_metadata, kFakeFingerprint,
45 kFakePolicy); 128 kFakePolicy);
46 129
47 EXPECT_TRUE(ev_metadata->GetPolicyOIDsForCA(kFakeFingerprint, &oids)); 130 EXPECT_TRUE(ev_metadata->IsEVPolicyOID(ev_oid_data.fake_policy));
48 EXPECT_EQ(1u, oids.size()); 131 EXPECT_TRUE(ev_metadata->HasEVPolicyOID(kFakeFingerprint,
132 ev_oid_data.fake_policy));
49 } 133 }
50 134
51 EXPECT_FALSE(ev_metadata->GetPolicyOIDsForCA(kFakeFingerprint, &oids)); 135 EXPECT_FALSE(ev_metadata->IsEVPolicyOID(ev_oid_data.fake_policy));
136 EXPECT_FALSE(ev_metadata->HasEVPolicyOID(kFakeFingerprint,
137 ev_oid_data.fake_policy));
52 } 138 }
53 139
54 #elif defined(OS_WIN) 140 #endif // defined(USE_NSS) || defined(OS_WIN)
55 141
56 TEST(EVRootCAMetadataTest, Basic) { 142 } // namespace
57 EVRootCAMetadata* ev_metadata(EVRootCAMetadata::GetInstance());
58
59 EXPECT_TRUE(ev_metadata->IsEVPolicyOID(kVerisignPolicy));
60 EXPECT_FALSE(ev_metadata->IsEVPolicyOID(kFakePolicy));
61 EXPECT_TRUE(ev_metadata->HasEVPolicyOID(kVerisignFingerprint,
62 kVerisignPolicy));
63 EXPECT_FALSE(ev_metadata->HasEVPolicyOID(kFakeFingerprint,
64 kVerisignPolicy));
65 EXPECT_FALSE(ev_metadata->HasEVPolicyOID(kVerisignFingerprint,
66 kFakePolicy));
67 EXPECT_FALSE(ev_metadata->HasEVPolicyOID(kVerisignFingerprint,
68 kThawtePolicy));
69 }
70
71 TEST(EVRootCAMetadataTest, AddRemove) {
72 EVRootCAMetadata* ev_metadata(EVRootCAMetadata::GetInstance());
73
74 EXPECT_FALSE(ev_metadata->IsEVPolicyOID(kFakePolicy));
75 EXPECT_FALSE(ev_metadata->HasEVPolicyOID(kFakeFingerprint,
76 kFakePolicy));
77
78 {
79 ScopedTestEVPolicy test_ev_policy(ev_metadata, kFakeFingerprint,
80 kFakePolicy);
81
82 EXPECT_TRUE(ev_metadata->IsEVPolicyOID(kFakePolicy));
83 EXPECT_TRUE(ev_metadata->HasEVPolicyOID(kFakeFingerprint,
84 kFakePolicy));
85 }
86
87 EXPECT_FALSE(ev_metadata->IsEVPolicyOID(kFakePolicy));
88 EXPECT_FALSE(ev_metadata->HasEVPolicyOID(kFakeFingerprint,
89 kFakePolicy));
90 }
91
92 #endif // defined(OS_WIN)
93 143
94 } // namespace net 144 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698