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

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

Issue 8662036: Support EC certs in OriginBoundCertService and OriginBoundCertStore. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review changes Created 9 years 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
« no previous file with comments | « net/base/default_origin_bound_cert_store.cc ('k') | net/base/net_error_list.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 70
71 void MockPersistentStore::Flush(const base::Closure& completion_task) { 71 void MockPersistentStore::Flush(const base::Closure& completion_task) {
72 NOTREACHED(); 72 NOTREACHED();
73 } 73 }
74 74
75 TEST(DefaultOriginBoundCertStoreTest, TestLoading) { 75 TEST(DefaultOriginBoundCertStoreTest, TestLoading) {
76 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); 76 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore);
77 77
78 persistent_store->AddOriginBoundCert( 78 persistent_store->AddOriginBoundCert(
79 DefaultOriginBoundCertStore::OriginBoundCert( 79 DefaultOriginBoundCertStore::OriginBoundCert(
80 "https://encrypted.google.com/", "a", "b")); 80 "https://encrypted.google.com/", CLIENT_CERT_RSA_SIGN, "a", "b"));
81 persistent_store->AddOriginBoundCert( 81 persistent_store->AddOriginBoundCert(
82 DefaultOriginBoundCertStore::OriginBoundCert( 82 DefaultOriginBoundCertStore::OriginBoundCert(
83 "https://www.verisign.com/", "c", "d")); 83 "https://www.verisign.com/", CLIENT_CERT_ECDSA_SIGN, "c", "d"));
84 84
85 // Make sure certs load properly. 85 // Make sure certs load properly.
86 DefaultOriginBoundCertStore store(persistent_store.get()); 86 DefaultOriginBoundCertStore store(persistent_store.get());
87 EXPECT_EQ(2, store.GetCertCount()); 87 EXPECT_EQ(2, store.GetCertCount());
88 store.SetOriginBoundCert("https://www.verisign.com/", "e", "f"); 88 store.SetOriginBoundCert(
89 "https://www.verisign.com/", CLIENT_CERT_RSA_SIGN, "e", "f");
89 EXPECT_EQ(2, store.GetCertCount()); 90 EXPECT_EQ(2, store.GetCertCount());
90 store.SetOriginBoundCert("https://www.twitter.com/", "g", "h"); 91 store.SetOriginBoundCert(
92 "https://www.twitter.com/", CLIENT_CERT_RSA_SIGN, "g", "h");
91 EXPECT_EQ(3, store.GetCertCount()); 93 EXPECT_EQ(3, store.GetCertCount());
92 } 94 }
93 95
94 TEST(DefaultOriginBoundCertStoreTest, TestSettingAndGetting) { 96 TEST(DefaultOriginBoundCertStoreTest, TestSettingAndGetting) {
95 DefaultOriginBoundCertStore store(NULL); 97 DefaultOriginBoundCertStore store(NULL);
98 SSLClientCertType type;
96 std::string private_key, cert; 99 std::string private_key, cert;
97 EXPECT_EQ(0, store.GetCertCount()); 100 EXPECT_EQ(0, store.GetCertCount());
98 EXPECT_FALSE(store.GetOriginBoundCert("https://www.verisign.com/", 101 EXPECT_FALSE(store.GetOriginBoundCert("https://www.verisign.com/",
99 &private_key, 102 &type,
100 &cert)); 103 &private_key,
104 &cert));
101 EXPECT_TRUE(private_key.empty()); 105 EXPECT_TRUE(private_key.empty());
102 EXPECT_TRUE(cert.empty()); 106 EXPECT_TRUE(cert.empty());
103 store.SetOriginBoundCert("https://www.verisign.com/", "i", "j"); 107 store.SetOriginBoundCert(
108 "https://www.verisign.com/", CLIENT_CERT_RSA_SIGN, "i", "j");
104 EXPECT_TRUE(store.GetOriginBoundCert("https://www.verisign.com/", 109 EXPECT_TRUE(store.GetOriginBoundCert("https://www.verisign.com/",
105 &private_key, 110 &type,
106 &cert)); 111 &private_key,
112 &cert));
113 EXPECT_EQ(CLIENT_CERT_RSA_SIGN, type);
107 EXPECT_EQ("i", private_key); 114 EXPECT_EQ("i", private_key);
108 EXPECT_EQ("j", cert); 115 EXPECT_EQ("j", cert);
109 } 116 }
110 117
111 TEST(DefaultOriginBoundCertStoreTest, TestDuplicateCerts) { 118 TEST(DefaultOriginBoundCertStoreTest, TestDuplicateCerts) {
112 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); 119 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore);
113 DefaultOriginBoundCertStore store(persistent_store.get()); 120 DefaultOriginBoundCertStore store(persistent_store.get());
114 121
122 SSLClientCertType type;
115 std::string private_key, cert; 123 std::string private_key, cert;
116 EXPECT_EQ(0, store.GetCertCount()); 124 EXPECT_EQ(0, store.GetCertCount());
117 store.SetOriginBoundCert("https://www.verisign.com/", "a", "b"); 125 store.SetOriginBoundCert(
118 store.SetOriginBoundCert("https://www.verisign.com/", "c", "d"); 126 "https://www.verisign.com/", CLIENT_CERT_RSA_SIGN, "a", "b");
127 store.SetOriginBoundCert(
128 "https://www.verisign.com/", CLIENT_CERT_ECDSA_SIGN, "c", "d");
119 129
120 EXPECT_EQ(1, store.GetCertCount()); 130 EXPECT_EQ(1, store.GetCertCount());
121 EXPECT_TRUE(store.GetOriginBoundCert("https://www.verisign.com/", 131 EXPECT_TRUE(store.GetOriginBoundCert("https://www.verisign.com/",
122 &private_key, 132 &type,
123 &cert)); 133 &private_key,
134 &cert));
135 EXPECT_EQ(CLIENT_CERT_ECDSA_SIGN, type);
124 EXPECT_EQ("c", private_key); 136 EXPECT_EQ("c", private_key);
125 EXPECT_EQ("d", cert); 137 EXPECT_EQ("d", cert);
126 } 138 }
127 139
128 TEST(DefaultOriginBoundCertStoreTest, TestDeleteAll) { 140 TEST(DefaultOriginBoundCertStoreTest, TestDeleteAll) {
129 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); 141 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore);
130 DefaultOriginBoundCertStore store(persistent_store.get()); 142 DefaultOriginBoundCertStore store(persistent_store.get());
131 143
132 EXPECT_EQ(0, store.GetCertCount()); 144 EXPECT_EQ(0, store.GetCertCount());
133 store.SetOriginBoundCert("https://www.verisign.com/", "a", "b"); 145 store.SetOriginBoundCert(
134 store.SetOriginBoundCert("https://www.google.com/", "c", "d"); 146 "https://www.verisign.com/", CLIENT_CERT_RSA_SIGN, "a", "b");
135 store.SetOriginBoundCert("https://www.harvard.com/", "e", "f"); 147 store.SetOriginBoundCert(
148 "https://www.google.com/", CLIENT_CERT_RSA_SIGN, "c", "d");
149 store.SetOriginBoundCert(
150 "https://www.harvard.com/", CLIENT_CERT_RSA_SIGN, "e", "f");
136 151
137 EXPECT_EQ(3, store.GetCertCount()); 152 EXPECT_EQ(3, store.GetCertCount());
138 store.DeleteAll(); 153 store.DeleteAll();
139 EXPECT_EQ(0, store.GetCertCount()); 154 EXPECT_EQ(0, store.GetCertCount());
140 } 155 }
141 156
142 TEST(DefaultOriginBoundCertStoreTest, TestDelete) { 157 TEST(DefaultOriginBoundCertStoreTest, TestDelete) {
143 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); 158 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore);
144 DefaultOriginBoundCertStore store(persistent_store.get()); 159 DefaultOriginBoundCertStore store(persistent_store.get());
145 160
161 SSLClientCertType type;
146 std::string private_key, cert; 162 std::string private_key, cert;
147 EXPECT_EQ(0, store.GetCertCount()); 163 EXPECT_EQ(0, store.GetCertCount());
148 store.SetOriginBoundCert("https://www.verisign.com/", "a", "b"); 164 store.SetOriginBoundCert(
149 store.SetOriginBoundCert("https://www.google.com/", "c", "d"); 165 "https://www.verisign.com/", CLIENT_CERT_RSA_SIGN, "a", "b");
166 store.SetOriginBoundCert(
167 "https://www.google.com/", CLIENT_CERT_ECDSA_SIGN, "c", "d");
150 168
151 EXPECT_EQ(2, store.GetCertCount()); 169 EXPECT_EQ(2, store.GetCertCount());
152 store.DeleteOriginBoundCert("https://www.verisign.com/"); 170 store.DeleteOriginBoundCert("https://www.verisign.com/");
153 EXPECT_EQ(1, store.GetCertCount()); 171 EXPECT_EQ(1, store.GetCertCount());
154 EXPECT_FALSE(store.GetOriginBoundCert("https://www.verisign.com/", 172 EXPECT_FALSE(store.GetOriginBoundCert("https://www.verisign.com/",
155 &private_key, 173 &type,
156 &cert));
157 EXPECT_TRUE(store.GetOriginBoundCert("https://www.google.com/",
158 &private_key, 174 &private_key,
159 &cert)); 175 &cert));
176 EXPECT_TRUE(store.GetOriginBoundCert("https://www.google.com/",
177 &type,
178 &private_key,
179 &cert));
160 store.DeleteOriginBoundCert("https://www.google.com/"); 180 store.DeleteOriginBoundCert("https://www.google.com/");
161 EXPECT_EQ(0, store.GetCertCount()); 181 EXPECT_EQ(0, store.GetCertCount());
162 EXPECT_FALSE(store.GetOriginBoundCert("https://www.google.com/", 182 EXPECT_FALSE(store.GetOriginBoundCert("https://www.google.com/",
163 &private_key, 183 &type,
164 &cert)); 184 &private_key,
185 &cert));
165 } 186 }
166 187
167 TEST(DefaultOriginBoundCertStoreTest, TestGetAll) { 188 TEST(DefaultOriginBoundCertStoreTest, TestGetAll) {
168 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore); 189 scoped_refptr<MockPersistentStore> persistent_store(new MockPersistentStore);
169 DefaultOriginBoundCertStore store(persistent_store.get()); 190 DefaultOriginBoundCertStore store(persistent_store.get());
170 191
171 EXPECT_EQ(0, store.GetCertCount()); 192 EXPECT_EQ(0, store.GetCertCount());
172 store.SetOriginBoundCert("https://www.verisign.com/", "a", "b"); 193 store.SetOriginBoundCert(
173 store.SetOriginBoundCert("https://www.google.com/", "c", "d"); 194 "https://www.verisign.com/", CLIENT_CERT_RSA_SIGN, "a", "b");
174 store.SetOriginBoundCert("https://www.harvard.com/", "e", "f"); 195 store.SetOriginBoundCert(
175 store.SetOriginBoundCert("https://www.mit.com/", "g", "h"); 196 "https://www.google.com/", CLIENT_CERT_ECDSA_SIGN, "c", "d");
197 store.SetOriginBoundCert(
198 "https://www.harvard.com/", CLIENT_CERT_RSA_SIGN, "e", "f");
199 store.SetOriginBoundCert(
200 "https://www.mit.com/", CLIENT_CERT_RSA_SIGN, "g", "h");
176 201
177 EXPECT_EQ(4, store.GetCertCount()); 202 EXPECT_EQ(4, store.GetCertCount());
178 std::vector<OriginBoundCertStore::OriginBoundCertInfo> certs; 203 std::vector<OriginBoundCertStore::OriginBoundCert> certs;
179 store.GetAllOriginBoundCerts(&certs); 204 store.GetAllOriginBoundCerts(&certs);
180 EXPECT_EQ(4u, certs.size()); 205 EXPECT_EQ(4u, certs.size());
181 } 206 }
182 207
183 } // namespace net 208 } // namespace net
OLDNEW
« no previous file with comments | « net/base/default_origin_bound_cert_store.cc ('k') | net/base/net_error_list.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698