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

Side by Side Diff: net/cert/internal/verify_name_match_unittest.cc

Issue 1214933009: Class for parsing and evaluating RFC 5280 NameConstraints. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@compare_DN2
Patch Set: ios copy_test_data Created 5 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
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 "net/cert/internal/verify_name_match.h" 5 #include "net/cert/internal/verify_name_match.h"
6 6
7 #include "base/base_paths.h" 7 #include "base/base_paths.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/files/file_util.h" 9 #include "base/files/file_util.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 ASSERT_TRUE(LoadTestData("ascii", value_type_2(), "unmangled", &der_2)); 226 ASSERT_TRUE(LoadTestData("ascii", value_type_2(), "unmangled", &der_2));
227 if (TypesAreComparable(value_type_1(), value_type_2())) { 227 if (TypesAreComparable(value_type_1(), value_type_2())) {
228 EXPECT_TRUE(VerifyNameMatch(SequenceValueFromString(der_1), 228 EXPECT_TRUE(VerifyNameMatch(SequenceValueFromString(der_1),
229 SequenceValueFromString(der_2))); 229 SequenceValueFromString(der_2)));
230 } else { 230 } else {
231 EXPECT_FALSE(VerifyNameMatch(SequenceValueFromString(der_1), 231 EXPECT_FALSE(VerifyNameMatch(SequenceValueFromString(der_1),
232 SequenceValueFromString(der_2))); 232 SequenceValueFromString(der_2)));
233 } 233 }
234 } 234 }
235 235
236 TEST_P(VerifyNameMatchDifferingTypesTest, NormalizableTypesInSubtrees) {
237 std::string der_1;
238 ASSERT_TRUE(LoadTestData("ascii", value_type_1(), "unmangled", &der_1));
239 std::string der_1_extra_rdn;
240 ASSERT_TRUE(LoadTestData("ascii", value_type_1(), "unmangled-extra_rdn",
241 &der_1_extra_rdn));
242 std::string der_1_extra_attr;
243 ASSERT_TRUE(LoadTestData("ascii", value_type_1(), "unmangled-extra_attr",
244 &der_1_extra_attr));
245 std::string der_2;
246 ASSERT_TRUE(LoadTestData("ascii", value_type_2(), "unmangled", &der_2));
247 std::string der_2_extra_rdn;
248 ASSERT_TRUE(LoadTestData("ascii", value_type_2(), "unmangled-extra_rdn",
249 &der_2_extra_rdn));
250 std::string der_2_extra_attr;
251 ASSERT_TRUE(LoadTestData("ascii", value_type_2(), "unmangled-extra_attr",
252 &der_2_extra_attr));
253
254 if (TypesAreComparable(value_type_1(), value_type_2())) {
255 EXPECT_TRUE(VerifyNameInSubtree(SequenceValueFromString(der_1),
256 SequenceValueFromString(der_2)));
257 EXPECT_TRUE(VerifyNameInSubtree(SequenceValueFromString(der_2),
258 SequenceValueFromString(der_1)));
259 EXPECT_TRUE(VerifyNameInSubtree(SequenceValueFromString(der_1_extra_rdn),
260 SequenceValueFromString(der_2)));
261 EXPECT_TRUE(VerifyNameInSubtree(SequenceValueFromString(der_2_extra_rdn),
262 SequenceValueFromString(der_1)));
263 } else {
264 EXPECT_FALSE(VerifyNameInSubtree(SequenceValueFromString(der_1),
265 SequenceValueFromString(der_2)));
266 EXPECT_FALSE(VerifyNameInSubtree(SequenceValueFromString(der_2),
267 SequenceValueFromString(der_1)));
268 EXPECT_FALSE(VerifyNameInSubtree(SequenceValueFromString(der_1_extra_rdn),
269 SequenceValueFromString(der_2)));
270 EXPECT_FALSE(VerifyNameInSubtree(SequenceValueFromString(der_2_extra_rdn),
271 SequenceValueFromString(der_1)));
272 }
273
274 EXPECT_FALSE(VerifyNameInSubtree(SequenceValueFromString(der_1),
275 SequenceValueFromString(der_2_extra_rdn)));
276 EXPECT_FALSE(VerifyNameInSubtree(SequenceValueFromString(der_2),
277 SequenceValueFromString(der_1_extra_rdn)));
278 EXPECT_FALSE(VerifyNameInSubtree(SequenceValueFromString(der_1_extra_attr),
279 SequenceValueFromString(der_2)));
280 EXPECT_FALSE(VerifyNameInSubtree(SequenceValueFromString(der_2_extra_attr),
281 SequenceValueFromString(der_1)));
282 EXPECT_FALSE(VerifyNameInSubtree(SequenceValueFromString(der_1),
283 SequenceValueFromString(der_2_extra_attr)));
284 EXPECT_FALSE(VerifyNameInSubtree(SequenceValueFromString(der_2),
285 SequenceValueFromString(der_1_extra_attr)));
286 }
287
236 // Runs VerifyNameMatchDifferingTypesTest for all combinations of value types in 288 // Runs VerifyNameMatchDifferingTypesTest for all combinations of value types in
237 // value_type1 and value_type_2. 289 // value_type1 and value_type_2.
238 INSTANTIATE_TEST_CASE_P(InstantiationName, 290 INSTANTIATE_TEST_CASE_P(InstantiationName,
239 VerifyNameMatchDifferingTypesTest, 291 VerifyNameMatchDifferingTypesTest,
240 ::testing::Combine(::testing::ValuesIn(kValueTypes), 292 ::testing::Combine(::testing::ValuesIn(kValueTypes),
241 ::testing::ValuesIn(kValueTypes))); 293 ::testing::ValuesIn(kValueTypes)));
242 294
243 class VerifyNameMatchUnicodeConversionTest 295 class VerifyNameMatchUnicodeConversionTest
244 : public ::testing::TestWithParam< 296 : public ::testing::TestWithParam<
245 ::testing::tuple<const char*, 297 ::testing::tuple<const char*,
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 std::string a; 505 std::string a;
454 ASSERT_TRUE(LoadTestData("ascii", "mixed", "rdn_dupetype_sorting_1", &a)); 506 ASSERT_TRUE(LoadTestData("ascii", "mixed", "rdn_dupetype_sorting_1", &a));
455 std::string b; 507 std::string b;
456 ASSERT_TRUE(LoadTestData("ascii", "mixed", "rdn_dupetype_sorting_2", &b)); 508 ASSERT_TRUE(LoadTestData("ascii", "mixed", "rdn_dupetype_sorting_2", &b));
457 EXPECT_TRUE( 509 EXPECT_TRUE(
458 VerifyNameMatch(SequenceValueFromString(a), SequenceValueFromString(b))); 510 VerifyNameMatch(SequenceValueFromString(a), SequenceValueFromString(b)));
459 EXPECT_TRUE( 511 EXPECT_TRUE(
460 VerifyNameMatch(SequenceValueFromString(b), SequenceValueFromString(a))); 512 VerifyNameMatch(SequenceValueFromString(b), SequenceValueFromString(a)));
461 } 513 }
462 514
515 TEST(VerifyNameInSubtreeInvalidDataTest, FailOnEmptyRdn) {
516 std::string valid;
517 ASSERT_TRUE(LoadTestData("ascii", "PRINTABLESTRING", "unmangled", &valid));
518 std::string invalid;
519 ASSERT_TRUE(LoadTestData("invalid", "RDN", "empty", &invalid));
520 // For both |name| and |parent|, a RelativeDistinguishedName must have at
521 // least one AttributeTypeAndValue.
522 EXPECT_FALSE(VerifyNameInSubtree(SequenceValueFromString(valid),
523 SequenceValueFromString(invalid)));
524 EXPECT_FALSE(VerifyNameInSubtree(SequenceValueFromString(invalid),
525 SequenceValueFromString(valid)));
526 EXPECT_FALSE(VerifyNameInSubtree(SequenceValueFromString(invalid),
527 SequenceValueFromString(invalid)));
528 }
529
530 TEST(VerifyNameInSubtreeTest, EmptyNameMatching) {
531 std::string empty;
532 ASSERT_TRUE(LoadTestData("valid", "Name", "empty", &empty));
533 std::string non_empty;
534 ASSERT_TRUE(
535 LoadTestData("ascii", "PRINTABLESTRING", "unmangled", &non_empty));
536 // Empty name is in the subtree defined by empty name.
537 EXPECT_TRUE(VerifyNameInSubtree(SequenceValueFromString(empty),
538 SequenceValueFromString(empty)));
539 // Any non-empty name is in the subtree defined by empty name.
540 EXPECT_TRUE(VerifyNameInSubtree(SequenceValueFromString(non_empty),
541 SequenceValueFromString(empty)));
542 // Empty name is not in the subtree defined by non-empty name.
543 EXPECT_FALSE(VerifyNameInSubtree(SequenceValueFromString(empty),
544 SequenceValueFromString(non_empty)));
545 }
546
463 } // namespace net 547 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698