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 "net/base/default_origin_bound_cert_store.h" | 5 #include "net/base/default_origin_bound_cert_store.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 | 69 |
70 void MockPersistentStore::Flush(Task* completion_task) { | 70 void MockPersistentStore::Flush(Task* completion_task) { |
71 NOTREACHED(); | 71 NOTREACHED(); |
72 } | 72 } |
73 | 73 |
74 TEST(DefaultOriginBoundCertStoreTest, TestLoading) { | 74 TEST(DefaultOriginBoundCertStoreTest, TestLoading) { |
75 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); | 75 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); |
76 | 76 |
77 persistent_store->AddOriginBoundCert( | 77 persistent_store->AddOriginBoundCert( |
78 DefaultOriginBoundCertStore::OriginBoundCert( | 78 DefaultOriginBoundCertStore::OriginBoundCert( |
79 "https://encrypted.google.com/", "a", "b")); | 79 "https://encrypted.google.com/", ORIGIN_BOUND_RSA_CERT, "a", "b")); |
80 persistent_store->AddOriginBoundCert( | 80 persistent_store->AddOriginBoundCert( |
81 DefaultOriginBoundCertStore::OriginBoundCert( | 81 DefaultOriginBoundCertStore::OriginBoundCert( |
82 "https://www.verisign.com/", "c", "d")); | 82 "https://www.verisign.com/", ORIGIN_BOUND_EC_CERT, "c", "d")); |
83 | 83 |
84 // Make sure certs load properly. | 84 // Make sure certs load properly. |
85 DefaultOriginBoundCertStore store(persistent_store.get()); | 85 DefaultOriginBoundCertStore store(persistent_store.get()); |
86 EXPECT_EQ(2, store.GetCertCount()); | 86 EXPECT_EQ(2, store.GetCertCount()); |
87 store.SetOriginBoundCert("https://www.verisign.com/", "e", "f"); | 87 store.SetOriginBoundCert( |
| 88 "https://www.verisign.com/", ORIGIN_BOUND_RSA_CERT, "e", "f"); |
88 EXPECT_EQ(2, store.GetCertCount()); | 89 EXPECT_EQ(2, store.GetCertCount()); |
89 store.SetOriginBoundCert("https://www.twitter.com/", "g", "h"); | 90 store.SetOriginBoundCert( |
| 91 "https://www.twitter.com/", ORIGIN_BOUND_RSA_CERT, "g", "h"); |
90 EXPECT_EQ(3, store.GetCertCount()); | 92 EXPECT_EQ(3, store.GetCertCount()); |
91 } | 93 } |
92 | 94 |
93 TEST(DefaultOriginBoundCertStoreTest, TestSettingAndGetting) { | 95 TEST(DefaultOriginBoundCertStoreTest, TestSettingAndGetting) { |
94 DefaultOriginBoundCertStore store(NULL); | 96 DefaultOriginBoundCertStore store(NULL); |
| 97 OriginBoundCertType type; |
95 std::string private_key, cert; | 98 std::string private_key, cert; |
96 EXPECT_EQ(0, store.GetCertCount()); | 99 EXPECT_EQ(0, store.GetCertCount()); |
97 EXPECT_FALSE(store.GetOriginBoundCert("https://www.verisign.com/", | 100 EXPECT_FALSE(store.GetOriginBoundCert("https://www.verisign.com/", |
98 &private_key, | 101 &type, |
99 &cert)); | 102 &private_key, |
| 103 &cert)); |
100 EXPECT_TRUE(private_key.empty()); | 104 EXPECT_TRUE(private_key.empty()); |
101 EXPECT_TRUE(cert.empty()); | 105 EXPECT_TRUE(cert.empty()); |
102 store.SetOriginBoundCert("https://www.verisign.com/", "i", "j"); | 106 store.SetOriginBoundCert( |
| 107 "https://www.verisign.com/", ORIGIN_BOUND_RSA_CERT, "i", "j"); |
103 EXPECT_TRUE(store.GetOriginBoundCert("https://www.verisign.com/", | 108 EXPECT_TRUE(store.GetOriginBoundCert("https://www.verisign.com/", |
104 &private_key, | 109 &type, |
105 &cert)); | 110 &private_key, |
| 111 &cert)); |
| 112 EXPECT_EQ(ORIGIN_BOUND_RSA_CERT, type); |
106 EXPECT_EQ("i", private_key); | 113 EXPECT_EQ("i", private_key); |
107 EXPECT_EQ("j", cert); | 114 EXPECT_EQ("j", cert); |
108 } | 115 } |
109 | 116 |
110 TEST(DefaultOriginBoundCertStoreTest, TestDuplicateCerts) { | 117 TEST(DefaultOriginBoundCertStoreTest, TestDuplicateCerts) { |
111 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); | 118 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); |
112 DefaultOriginBoundCertStore store(persistent_store.get()); | 119 DefaultOriginBoundCertStore store(persistent_store.get()); |
113 | 120 |
| 121 OriginBoundCertType type; |
114 std::string private_key, cert; | 122 std::string private_key, cert; |
115 EXPECT_EQ(0, store.GetCertCount()); | 123 EXPECT_EQ(0, store.GetCertCount()); |
116 store.SetOriginBoundCert("https://www.verisign.com/", "a", "b"); | 124 store.SetOriginBoundCert( |
117 store.SetOriginBoundCert("https://www.verisign.com/", "c", "d"); | 125 "https://www.verisign.com/", ORIGIN_BOUND_RSA_CERT, "a", "b"); |
| 126 store.SetOriginBoundCert( |
| 127 "https://www.verisign.com/", ORIGIN_BOUND_EC_CERT, "c", "d"); |
118 | 128 |
119 EXPECT_EQ(1, store.GetCertCount()); | 129 EXPECT_EQ(1, store.GetCertCount()); |
120 EXPECT_TRUE(store.GetOriginBoundCert("https://www.verisign.com/", | 130 EXPECT_TRUE(store.GetOriginBoundCert("https://www.verisign.com/", |
121 &private_key, | 131 &type, |
122 &cert)); | 132 &private_key, |
| 133 &cert)); |
| 134 EXPECT_EQ(ORIGIN_BOUND_EC_CERT, type); |
123 EXPECT_EQ("c", private_key); | 135 EXPECT_EQ("c", private_key); |
124 EXPECT_EQ("d", cert); | 136 EXPECT_EQ("d", cert); |
125 } | 137 } |
126 | 138 |
127 TEST(DefaultOriginBoundCertStoreTest, TestDeleteAll) { | 139 TEST(DefaultOriginBoundCertStoreTest, TestDeleteAll) { |
128 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); | 140 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); |
129 DefaultOriginBoundCertStore store(persistent_store.get()); | 141 DefaultOriginBoundCertStore store(persistent_store.get()); |
130 | 142 |
131 EXPECT_EQ(0, store.GetCertCount()); | 143 EXPECT_EQ(0, store.GetCertCount()); |
132 store.SetOriginBoundCert("https://www.verisign.com/", "a", "b"); | 144 store.SetOriginBoundCert( |
133 store.SetOriginBoundCert("https://www.google.com/", "c", "d"); | 145 "https://www.verisign.com/", ORIGIN_BOUND_RSA_CERT, "a", "b"); |
134 store.SetOriginBoundCert("https://www.harvard.com/", "e", "f"); | 146 store.SetOriginBoundCert( |
| 147 "https://www.google.com/", ORIGIN_BOUND_RSA_CERT, "c", "d"); |
| 148 store.SetOriginBoundCert( |
| 149 "https://www.harvard.com/", ORIGIN_BOUND_RSA_CERT, "e", "f"); |
135 | 150 |
136 EXPECT_EQ(3, store.GetCertCount()); | 151 EXPECT_EQ(3, store.GetCertCount()); |
137 store.DeleteAll(); | 152 store.DeleteAll(); |
138 EXPECT_EQ(0, store.GetCertCount()); | 153 EXPECT_EQ(0, store.GetCertCount()); |
139 } | 154 } |
140 | 155 |
141 TEST(DefaultOriginBoundCertStoreTest, TestDelete) { | 156 TEST(DefaultOriginBoundCertStoreTest, TestDelete) { |
142 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); | 157 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); |
143 DefaultOriginBoundCertStore store(persistent_store.get()); | 158 DefaultOriginBoundCertStore store(persistent_store.get()); |
144 | 159 |
| 160 OriginBoundCertType type; |
145 std::string private_key, cert; | 161 std::string private_key, cert; |
146 EXPECT_EQ(0, store.GetCertCount()); | 162 EXPECT_EQ(0, store.GetCertCount()); |
147 store.SetOriginBoundCert("https://www.verisign.com/", "a", "b"); | 163 store.SetOriginBoundCert( |
148 store.SetOriginBoundCert("https://www.google.com/", "c", "d"); | 164 "https://www.verisign.com/", ORIGIN_BOUND_RSA_CERT, "a", "b"); |
| 165 store.SetOriginBoundCert( |
| 166 "https://www.google.com/", ORIGIN_BOUND_EC_CERT, "c", "d"); |
149 | 167 |
150 EXPECT_EQ(2, store.GetCertCount()); | 168 EXPECT_EQ(2, store.GetCertCount()); |
151 store.DeleteOriginBoundCert("https://www.verisign.com/"); | 169 store.DeleteOriginBoundCert("https://www.verisign.com/"); |
152 EXPECT_EQ(1, store.GetCertCount()); | 170 EXPECT_EQ(1, store.GetCertCount()); |
153 EXPECT_FALSE(store.GetOriginBoundCert("https://www.verisign.com/", | 171 EXPECT_FALSE(store.GetOriginBoundCert("https://www.verisign.com/", |
154 &private_key, | 172 &type, |
155 &cert)); | |
156 EXPECT_TRUE(store.GetOriginBoundCert("https://www.google.com/", | |
157 &private_key, | 173 &private_key, |
158 &cert)); | 174 &cert)); |
| 175 EXPECT_TRUE(store.GetOriginBoundCert("https://www.google.com/", |
| 176 &type, |
| 177 &private_key, |
| 178 &cert)); |
159 store.DeleteOriginBoundCert("https://www.google.com/"); | 179 store.DeleteOriginBoundCert("https://www.google.com/"); |
160 EXPECT_EQ(0, store.GetCertCount()); | 180 EXPECT_EQ(0, store.GetCertCount()); |
161 EXPECT_FALSE(store.GetOriginBoundCert("https://www.google.com/", | 181 EXPECT_FALSE(store.GetOriginBoundCert("https://www.google.com/", |
162 &private_key, | 182 &type, |
163 &cert)); | 183 &private_key, |
| 184 &cert)); |
164 } | 185 } |
165 | 186 |
166 TEST(DefaultOriginBoundCertStoreTest, TestGetAll) { | 187 TEST(DefaultOriginBoundCertStoreTest, TestGetAll) { |
167 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); | 188 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); |
168 DefaultOriginBoundCertStore store(persistent_store.get()); | 189 DefaultOriginBoundCertStore store(persistent_store.get()); |
169 | 190 |
170 EXPECT_EQ(0, store.GetCertCount()); | 191 EXPECT_EQ(0, store.GetCertCount()); |
171 store.SetOriginBoundCert("https://www.verisign.com/", "a", "b"); | 192 store.SetOriginBoundCert( |
172 store.SetOriginBoundCert("https://www.google.com/", "c", "d"); | 193 "https://www.verisign.com/", ORIGIN_BOUND_RSA_CERT, "a", "b"); |
173 store.SetOriginBoundCert("https://www.harvard.com/", "e", "f"); | 194 store.SetOriginBoundCert( |
174 store.SetOriginBoundCert("https://www.mit.com/", "g", "h"); | 195 "https://www.google.com/", ORIGIN_BOUND_EC_CERT, "c", "d"); |
| 196 store.SetOriginBoundCert( |
| 197 "https://www.harvard.com/", ORIGIN_BOUND_RSA_CERT, "e", "f"); |
| 198 store.SetOriginBoundCert( |
| 199 "https://www.mit.com/", ORIGIN_BOUND_RSA_CERT, "g", "h"); |
175 | 200 |
176 EXPECT_EQ(4, store.GetCertCount()); | 201 EXPECT_EQ(4, store.GetCertCount()); |
177 std::vector<OriginBoundCertStore::OriginBoundCertInfo> certs; | 202 std::vector<OriginBoundCertStore::OriginBoundCertInfo> certs; |
178 store.GetAllOriginBoundCerts(&certs); | 203 store.GetAllOriginBoundCerts(&certs); |
179 EXPECT_EQ(4u, certs.size()); | 204 EXPECT_EQ(4u, certs.size()); |
180 } | 205 } |
181 | 206 |
182 } // namespace net | 207 } // namespace net |
OLD | NEW |