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

Side by Side Diff: components/gcm_driver/crypto/encryption_header_parsers_unittest.cc

Issue 1446163002: Rename Encryption-Key to Crypto-Key, "key" parameter to "aesgcm128". (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: one more rename Created 5 years, 1 month 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "components/gcm_driver/crypto/encryption_header_parsers.h" 5 #include "components/gcm_driver/crypto/encryption_header_parsers.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 122
123 for (size_t i = 0; i < arraysize(expected_failures); i++) { 123 for (size_t i = 0; i < arraysize(expected_failures); i++) {
124 SCOPED_TRACE(i); 124 SCOPED_TRACE(i);
125 125
126 std::vector<EncryptionHeaderValues> values; 126 std::vector<EncryptionHeaderValues> values;
127 EXPECT_FALSE(ParseEncryptionHeader(expected_failures[i], &values)); 127 EXPECT_FALSE(ParseEncryptionHeader(expected_failures[i], &values));
128 EXPECT_EQ(0u, values.size()); 128 EXPECT_EQ(0u, values.size());
129 } 129 }
130 } 130 }
131 131
132 TEST(EncryptionHeaderParsersTest, ParseValidEncryptionKeyHeaders) { 132 TEST(EncryptionHeaderParsersTest, ParseValidCryptoKeyHeaders) {
133 struct { 133 struct {
134 const char* const header; 134 const char* const header;
135 const char* const parsed_keyid; 135 const char* const parsed_keyid;
136 const char* const parsed_key; 136 const char* const parsed_aesgcm128;
137 const char* const parsed_dh; 137 const char* const parsed_dh;
138 } expected_results[] = { 138 } expected_results[] = {
139 { "keyid=foo;key=c2l4dGVlbmNvb2xieXRlcw;dh=dHdlbHZlY29vbGJ5dGVz", 139 { "keyid=foo;aesgcm128=c2l4dGVlbmNvb2xieXRlcw;dh=dHdlbHZlY29vbGJ5dGVz",
140 "foo", "sixteencoolbytes", "twelvecoolbytes" }, 140 "foo", "sixteencoolbytes", "twelvecoolbytes" },
141 { "keyid=foo; key=c2l4dGVlbmNvb2xieXRlcw; dh=dHdlbHZlY29vbGJ5dGVz", 141 { "keyid=foo; aesgcm128=c2l4dGVlbmNvb2xieXRlcw; dh=dHdlbHZlY29vbGJ5dGVz",
142 "foo", "sixteencoolbytes", "twelvecoolbytes" }, 142 "foo", "sixteencoolbytes", "twelvecoolbytes" },
143 { "keyid = foo ; key = c2l4dGVlbmNvb2xieXRlcw ; dh = dHdlbHZlY29vbGJ5dGVz ", 143 { "keyid = foo ; aesgcm128 = c2l4dGVlbmNvb2xieXRlcw ; dh = dHdlbHZlY29vbGJ5"
144 "dGVz ",
144 "foo", "sixteencoolbytes", "twelvecoolbytes" }, 145 "foo", "sixteencoolbytes", "twelvecoolbytes" },
145 { "KEYID=foo;KEY=c2l4dGVlbmNvb2xieXRlcw;DH=dHdlbHZlY29vbGJ5dGVz", 146 { "KEYID=foo;AESGCM128=c2l4dGVlbmNvb2xieXRlcw;DH=dHdlbHZlY29vbGJ5dGVz",
146 "foo", "sixteencoolbytes", "twelvecoolbytes" }, 147 "foo", "sixteencoolbytes", "twelvecoolbytes" },
147 { "keyid=foo", "foo", "", "" }, 148 { "keyid=foo", "foo", "", "" },
148 { "key=c2l4dGVlbmNvb2xieXRlcw", "", "sixteencoolbytes", "" }, 149 { "aesgcm128=c2l4dGVlbmNvb2xieXRlcw", "", "sixteencoolbytes", "" },
149 { "key=\"c2l4dGVlbmNvb2xieXRlcw\"", "", "sixteencoolbytes", "" }, 150 { "aesgcm128=\"c2l4dGVlbmNvb2xieXRlcw\"", "", "sixteencoolbytes", "" },
150 { "key='c2l4dGVlbmNvb2xieXRlcw'", "", "sixteencoolbytes", "" }, 151 { "aesgcm128='c2l4dGVlbmNvb2xieXRlcw'", "", "sixteencoolbytes", "" },
151 { "dh=dHdlbHZlY29vbGJ5dGVz", "", "", "twelvecoolbytes" }, 152 { "dh=dHdlbHZlY29vbGJ5dGVz", "", "", "twelvecoolbytes" },
152 { "keyid=foo;someothervalue=bar;key=dHdlbHZlY29vbGJ5dGVz", 153 { "keyid=foo;someothervalue=bar;aesgcm128=dHdlbHZlY29vbGJ5dGVz",
153 "foo", "twelvecoolbytes", "" }, 154 "foo", "twelvecoolbytes", "" },
154 { "keyid=foo;keyid=bar", "bar", "", "" }, 155 { "keyid=foo;keyid=bar", "bar", "", "" },
155 }; 156 };
156 157
157 for (size_t i = 0; i < arraysize(expected_results); i++) { 158 for (size_t i = 0; i < arraysize(expected_results); i++) {
158 SCOPED_TRACE(i); 159 SCOPED_TRACE(i);
159 160
160 std::vector<EncryptionKeyHeaderValues> values; 161 std::vector<CryptoKeyHeaderValues> values;
161 ASSERT_TRUE(ParseEncryptionKeyHeader(expected_results[i].header, &values)); 162 ASSERT_TRUE(ParseCryptoKeyHeader(expected_results[i].header, &values));
162 ASSERT_EQ(1u, values.size()); 163 ASSERT_EQ(1u, values.size());
163 164
164 EXPECT_EQ(expected_results[i].parsed_keyid, values[0].keyid); 165 EXPECT_EQ(expected_results[i].parsed_keyid, values[0].keyid);
165 EXPECT_EQ(expected_results[i].parsed_key, values[0].key); 166 EXPECT_EQ(expected_results[i].parsed_aesgcm128, values[0].aesgcm128);
166 EXPECT_EQ(expected_results[i].parsed_dh, values[0].dh); 167 EXPECT_EQ(expected_results[i].parsed_dh, values[0].dh);
167 } 168 }
168 } 169 }
169 170
170 TEST(EncryptionHeaderParsersTest, ParseValidMultiValueEncryptionKeyHeaders) { 171 TEST(EncryptionHeaderParsersTest, ParseValidMultiValueCryptoKeyHeaders) {
171 const size_t kNumberOfValues = 2u; 172 const size_t kNumberOfValues = 2u;
172 173
173 struct { 174 struct {
174 const char* const header; 175 const char* const header;
175 struct { 176 struct {
176 const char* const keyid; 177 const char* const keyid;
177 const char* const key; 178 const char* const aesgcm128;
178 const char* const dh; 179 const char* const dh;
179 } parsed_values[kNumberOfValues]; 180 } parsed_values[kNumberOfValues];
180 } expected_results[] = { 181 } expected_results[] = {
181 { "keyid=foo;key=c2l4dGVlbmNvb2xieXRlcw;dh=dHdlbHZlY29vbGJ5dGVz,keyid=bar;" 182 { "keyid=foo;aesgcm128=c2l4dGVlbmNvb2xieXRlcw;dh=dHdlbHZlY29vbGJ5dGVz,"
182 "key=dHdlbHZlY29vbGJ5dGVz;dh=c2l4dGVlbmNvb2xieXRlcw", 183 "keyid=bar;aesgcm128=dHdlbHZlY29vbGJ5dGVz;dh=c2l4dGVlbmNvb2xieXRlcw",
183 { { "foo", "sixteencoolbytes", "twelvecoolbytes" }, 184 { { "foo", "sixteencoolbytes", "twelvecoolbytes" },
184 { "bar", "twelvecoolbytes", "sixteencoolbytes" } } }, 185 { "bar", "twelvecoolbytes", "sixteencoolbytes" } } },
185 { "keyid=foo,key=c2l4dGVlbmNvb2xieXRlcw", 186 { "keyid=foo,aesgcm128=c2l4dGVlbmNvb2xieXRlcw",
186 { { "foo", "", "" }, 187 { { "foo", "", "" },
187 { "", "sixteencoolbytes", "" } } }, 188 { "", "sixteencoolbytes", "" } } },
188 { "keyid=foo,keyid=bar;dh=dHdlbHZlY29vbGJ5dGVz", 189 { "keyid=foo,keyid=bar;dh=dHdlbHZlY29vbGJ5dGVz",
189 { { "foo", "", "" }, 190 { { "foo", "", "" },
190 { "bar", "", "twelvecoolbytes" } } }, 191 { "bar", "", "twelvecoolbytes" } } },
191 { "keyid=\"foo,keyid=bar\",key=c2l4dGVlbmNvb2xieXRlcw", 192 { "keyid=\"foo,keyid=bar\",aesgcm128=c2l4dGVlbmNvb2xieXRlcw",
192 { { "foo,keyid=bar", "", "" }, 193 { { "foo,keyid=bar", "", "" },
193 { "", "sixteencoolbytes", "" } } }, 194 { "", "sixteencoolbytes", "" } } },
194 }; 195 };
195 196
196 for (size_t i = 0; i < arraysize(expected_results); i++) { 197 for (size_t i = 0; i < arraysize(expected_results); i++) {
197 SCOPED_TRACE(i); 198 SCOPED_TRACE(i);
198 199
199 std::vector<EncryptionKeyHeaderValues> values; 200 std::vector<CryptoKeyHeaderValues> values;
200 ASSERT_TRUE(ParseEncryptionKeyHeader(expected_results[i].header, &values)); 201 ASSERT_TRUE(ParseCryptoKeyHeader(expected_results[i].header, &values));
201 ASSERT_EQ(kNumberOfValues, values.size()); 202 ASSERT_EQ(kNumberOfValues, values.size());
202 203
203 for (size_t j = 0; j < kNumberOfValues; ++j) { 204 for (size_t j = 0; j < kNumberOfValues; ++j) {
204 EXPECT_EQ(expected_results[i].parsed_values[j].keyid, values[j].keyid); 205 EXPECT_EQ(expected_results[i].parsed_values[j].keyid, values[j].keyid);
205 EXPECT_EQ(expected_results[i].parsed_values[j].key, values[j].key); 206 EXPECT_EQ(expected_results[i].parsed_values[j].aesgcm128,
207 values[j].aesgcm128);
206 EXPECT_EQ(expected_results[i].parsed_values[j].dh, values[j].dh); 208 EXPECT_EQ(expected_results[i].parsed_values[j].dh, values[j].dh);
207 } 209 }
208 } 210 }
209 } 211 }
210 212
211 TEST(EncryptionHeaderParsersTest, ParseInvalidEncryptionKeyHeaders) { 213 TEST(EncryptionHeaderParsersTest, ParseInvalidCryptoKeyHeaders) {
212 const char* const expected_failures[] = { 214 const char* const expected_failures[] = {
213 "keyid", 215 "keyid",
214 "keyid=", 216 "keyid=",
215 "keyid=foo,keyid", 217 "keyid=foo,keyid",
216 "keyid=foo;novaluekey", 218 "keyid=foo;novaluekey",
217 "key", 219 "aesgcm128",
218 "key=", 220 "aesgcm128=",
219 "key=123$xyz", 221 "aesgcm128=123$xyz",
220 "key=foobar,key=123$xyz", 222 "aesgcm128=foobar,aesgcm128=123$xyz",
221 "dh", 223 "dh",
222 "dh=", 224 "dh=",
223 "dh=YmV/2ZXJ-sMDA", 225 "dh=YmV/2ZXJ-sMDA",
224 "dh=dHdlbHZlY29vbGJ5dGVz=====", 226 "dh=dHdlbHZlY29vbGJ5dGVz=====",
225 "dh=123$xyz", 227 "dh=123$xyz",
226 }; 228 };
227 229
228 for (size_t i = 0; i < arraysize(expected_failures); i++) { 230 for (size_t i = 0; i < arraysize(expected_failures); i++) {
229 SCOPED_TRACE(i); 231 SCOPED_TRACE(i);
230 232
231 std::vector<EncryptionKeyHeaderValues> values; 233 std::vector<CryptoKeyHeaderValues> values;
232 EXPECT_FALSE(ParseEncryptionKeyHeader(expected_failures[i], &values)); 234 EXPECT_FALSE(ParseCryptoKeyHeader(expected_failures[i], &values));
233 EXPECT_EQ(0u, values.size()); 235 EXPECT_EQ(0u, values.size());
234 } 236 }
235 } 237 }
236 238
237 TEST(EncryptionHeaderParsersTest, SixValueHeader) { 239 TEST(EncryptionHeaderParsersTest, SixValueHeader) {
238 const char* const header = "keyid=0,keyid=1,keyid=2,keyid=3,keyid=4,keyid=5"; 240 const char* const header = "keyid=0,keyid=1,keyid=2,keyid=3,keyid=4,keyid=5";
239 241
240 std::vector<EncryptionHeaderValues> encryption_values; 242 std::vector<EncryptionHeaderValues> encryption_values;
241 ASSERT_TRUE(ParseEncryptionHeader(header, &encryption_values)); 243 ASSERT_TRUE(ParseEncryptionHeader(header, &encryption_values));
242 244
243 std::vector<EncryptionKeyHeaderValues> encryption_key_values; 245 std::vector<CryptoKeyHeaderValues> crypto_key_values;
244 ASSERT_TRUE(ParseEncryptionKeyHeader(header, &encryption_key_values)); 246 ASSERT_TRUE(ParseCryptoKeyHeader(header, &crypto_key_values));
245 247
246 ASSERT_EQ(6u, encryption_values.size()); 248 ASSERT_EQ(6u, encryption_values.size());
247 ASSERT_EQ(6u, encryption_key_values.size()); 249 ASSERT_EQ(6u, crypto_key_values.size());
248 250
249 for (size_t i = 0; i < encryption_values.size(); i++) { 251 for (size_t i = 0; i < encryption_values.size(); i++) {
250 SCOPED_TRACE(i); 252 SCOPED_TRACE(i);
251 253
252 const std::string value = base::IntToString(i); 254 const std::string value = base::IntToString(i);
253 255
254 EXPECT_EQ(value, encryption_values[i].keyid); 256 EXPECT_EQ(value, encryption_values[i].keyid);
255 EXPECT_EQ(value, encryption_key_values[i].keyid); 257 EXPECT_EQ(value, crypto_key_values[i].keyid);
256 } 258 }
257 } 259 }
258 260
259 TEST(EncryptionHeaderParsersTest, InvalidHeadersDoNotModifyOutput) { 261 TEST(EncryptionHeaderParsersTest, InvalidHeadersDoNotModifyOutput) {
260 EncryptionHeaderValues encryption_value; 262 EncryptionHeaderValues encryption_value;
261 encryption_value.keyid = "mykeyid"; 263 encryption_value.keyid = "mykeyid";
262 encryption_value.salt = "somesalt"; 264 encryption_value.salt = "somesalt";
263 encryption_value.rs = 42u; 265 encryption_value.rs = 42u;
264 266
265 std::vector<EncryptionHeaderValues> encryption_values; 267 std::vector<EncryptionHeaderValues> encryption_values;
266 encryption_values.push_back(encryption_value); 268 encryption_values.push_back(encryption_value);
267 269
268 ASSERT_FALSE(ParseEncryptionHeader("rs=foobar", &encryption_values)); 270 ASSERT_FALSE(ParseEncryptionHeader("rs=foobar", &encryption_values));
269 ASSERT_EQ(1u, encryption_values.size()); 271 ASSERT_EQ(1u, encryption_values.size());
270 272
271 EXPECT_EQ("mykeyid", encryption_values[0].keyid); 273 EXPECT_EQ("mykeyid", encryption_values[0].keyid);
272 EXPECT_EQ("somesalt", encryption_values[0].salt); 274 EXPECT_EQ("somesalt", encryption_values[0].salt);
273 EXPECT_EQ(42u, encryption_values[0].rs); 275 EXPECT_EQ(42u, encryption_values[0].rs);
274 276
275 EncryptionKeyHeaderValues encryption_key_value; 277 CryptoKeyHeaderValues crypto_key_value;
276 encryption_key_value.keyid = "myotherkeyid"; 278 crypto_key_value.keyid = "myotherkeyid";
277 encryption_key_value.key = "akey"; 279 crypto_key_value.aesgcm128 = "akey";
278 encryption_key_value.dh = "yourdh"; 280 crypto_key_value.dh = "yourdh";
279 281
280 std::vector<EncryptionKeyHeaderValues> encryption_key_values; 282 std::vector<CryptoKeyHeaderValues> crypto_key_values;
281 encryption_key_values.push_back(encryption_key_value); 283 crypto_key_values.push_back(crypto_key_value);
282 284
283 ASSERT_FALSE(ParseEncryptionKeyHeader("key=$$$", &encryption_key_values)); 285 ASSERT_FALSE(ParseCryptoKeyHeader("aesgcm128=$$$", &crypto_key_values));
284 ASSERT_EQ(1u, encryption_key_values.size()); 286 ASSERT_EQ(1u, crypto_key_values.size());
285 287
286 EXPECT_EQ("myotherkeyid", encryption_key_values[0].keyid); 288 EXPECT_EQ("myotherkeyid", crypto_key_values[0].keyid);
287 EXPECT_EQ("akey", encryption_key_values[0].key); 289 EXPECT_EQ("akey", crypto_key_values[0].aesgcm128);
288 EXPECT_EQ("yourdh", encryption_key_values[0].dh); 290 EXPECT_EQ("yourdh", crypto_key_values[0].dh);
289 } 291 }
290 292
291 } // namespace 293 } // namespace
292 294
293 } // namespace gcm 295 } // namespace gcm
OLDNEW
« no previous file with comments | « components/gcm_driver/crypto/encryption_header_parsers.cc ('k') | components/gcm_driver/crypto/gcm_encryption_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698