OLD | NEW |
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/cert/x509_certificate.h" | 5 #include "net/cert/x509_certificate.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/pickle.h" | 10 #include "base/pickle.h" |
(...skipping 953 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
964 { false, "f.uk", ".uk" }, | 964 { false, "f.uk", ".uk" }, |
965 { false, "w.bar.foo.com", "?.bar.foo.com" }, | 965 { false, "w.bar.foo.com", "?.bar.foo.com" }, |
966 { false, "www.foo.com", "(www|ftp).foo.com" }, | 966 { false, "www.foo.com", "(www|ftp).foo.com" }, |
967 { false, "www.foo.com", "www.foo.com#" }, // # = null char. | 967 { false, "www.foo.com", "www.foo.com#" }, // # = null char. |
968 { false, "www.foo.com", "", "www.foo.com#*.foo.com,#,#" }, | 968 { false, "www.foo.com", "", "www.foo.com#*.foo.com,#,#" }, |
969 { false, "www.house.example", "ww.house.example" }, | 969 { false, "www.house.example", "ww.house.example" }, |
970 { false, "test.org", "", "www.test.org,*.test.org,*.org" }, | 970 { false, "test.org", "", "www.test.org,*.test.org,*.org" }, |
971 { false, "w.bar.foo.com", "w*.bar.foo.com" }, | 971 { false, "w.bar.foo.com", "w*.bar.foo.com" }, |
972 { false, "www.bar.foo.com", "ww*ww.bar.foo.com" }, | 972 { false, "www.bar.foo.com", "ww*ww.bar.foo.com" }, |
973 { false, "wwww.bar.foo.com", "ww*ww.bar.foo.com" }, | 973 { false, "wwww.bar.foo.com", "ww*ww.bar.foo.com" }, |
974 { true, "wwww.bar.foo.com", "w*w.bar.foo.com" }, | 974 { false, "wwww.bar.foo.com", "w*w.bar.foo.com" }, |
975 { false, "wwww.bar.foo.com", "w*w.bar.foo.c0m" }, | 975 { false, "wwww.bar.foo.com", "w*w.bar.foo.c0m" }, |
976 { true, "WALLY.bar.foo.com", "wa*.bar.foo.com" }, | 976 { false, "WALLY.bar.foo.com", "wa*.bar.foo.com" }, |
977 { true, "wally.bar.foo.com", "*Ly.bar.foo.com" }, | 977 { false, "wally.bar.foo.com", "*Ly.bar.foo.com" }, |
978 { true, "ww%57.foo.com", "", "www.foo.com" }, | 978 { true, "ww%57.foo.com", "", "www.foo.com" }, |
979 { true, "www&.foo.com", "www%26.foo.com" }, | 979 { true, "www&.foo.com", "www%26.foo.com" }, |
980 // Common name must not be used if subject alternative name was provided. | 980 // Common name must not be used if subject alternative name was provided. |
981 { false, "www.test.co.jp", "www.test.co.jp", | 981 { false, "www.test.co.jp", "www.test.co.jp", |
982 "*.test.de,*.jp,www.test.co.uk,www.*.co.jp" }, | 982 "*.test.de,*.jp,www.test.co.uk,www.*.co.jp" }, |
983 { false, "www.bar.foo.com", "www.bar.foo.com", | 983 { false, "www.bar.foo.com", "www.bar.foo.com", |
984 "*.foo.com,*.*.foo.com,*.*.bar.foo.com,*..bar.foo.com," }, | 984 "*.foo.com,*.*.foo.com,*.*.bar.foo.com,*..bar.foo.com," }, |
985 { false, "www.bath.org", "www.bath.org", "", "20.30.40.50" }, | 985 { false, "www.bath.org", "www.bath.org", "", "20.30.40.50" }, |
986 { false, "66.77.88.99", "www.bath.org", "www.bath.org" }, | 986 { false, "66.77.88.99", "www.bath.org", "www.bath.org" }, |
987 // IDN tests | 987 // IDN tests |
988 { true, "xn--poema-9qae5a.com.br", "xn--poema-9qae5a.com.br" }, | 988 { true, "xn--poema-9qae5a.com.br", "xn--poema-9qae5a.com.br" }, |
989 { true, "www.xn--poema-9qae5a.com.br", "*.xn--poema-9qae5a.com.br" }, | 989 { true, "www.xn--poema-9qae5a.com.br", "*.xn--poema-9qae5a.com.br" }, |
990 { false, "xn--poema-9qae5a.com.br", "", "*.xn--poema-9qae5a.com.br," | 990 { false, "xn--poema-9qae5a.com.br", "", "*.xn--poema-9qae5a.com.br," |
991 "xn--poema-*.com.br," | 991 "xn--poema-*.com.br," |
992 "xn--*-9qae5a.com.br," | 992 "xn--*-9qae5a.com.br," |
993 "*--poema-9qae5a.com.br" }, | 993 "*--poema-9qae5a.com.br" }, |
994 // The following are adapted from the examples quoted from | 994 // The following are adapted from the examples quoted from |
995 // http://tools.ietf.org/html/rfc6125#section-6.4.3 | 995 // http://tools.ietf.org/html/rfc6125#section-6.4.3 |
996 // (e.g., *.example.com would match foo.example.com but | 996 // (e.g., *.example.com would match foo.example.com but |
997 // not bar.foo.example.com or example.com). | 997 // not bar.foo.example.com or example.com). |
998 { true, "foo.example.com", "*.example.com" }, | 998 { true, "foo.example.com", "*.example.com" }, |
999 { false, "bar.foo.example.com", "*.example.com" }, | 999 { false, "bar.foo.example.com", "*.example.com" }, |
1000 { false, "example.com", "*.example.com" }, | 1000 { false, "example.com", "*.example.com" }, |
1001 // (e.g., baz*.example.net and *baz.example.net and b*z.example.net would | 1001 // Partial wildcards are disallowed, though RFC 2818 rules allow them. |
1002 // be taken to match baz1.example.net and foobaz.example.net and | 1002 // That is, forms such as baz*.example.net, *baz.example.net, and |
1003 // buzz.example.net, respectively | 1003 // b*z.example.net should NOT match domains. Instead, the wildcard must |
1004 { true, "baz1.example.net", "baz*.example.net" }, | 1004 // always be the left-most label, and only a single label. |
1005 { true, "foobaz.example.net", "*baz.example.net" }, | 1005 { false, "baz1.example.net", "baz*.example.net" }, |
1006 { true, "buzz.example.net", "b*z.example.net" }, | 1006 { false, "foobaz.example.net", "*baz.example.net" }, |
| 1007 { false, "buzz.example.net", "b*z.example.net" }, |
| 1008 { false, "www.test.example.net", "www.*.example.net" }, |
1007 // Wildcards should not be valid for public registry controlled domains, | 1009 // Wildcards should not be valid for public registry controlled domains, |
1008 // and unknown/unrecognized domains, at least three domain components must | 1010 // and unknown/unrecognized domains, at least three domain components must |
1009 // be present. | 1011 // be present. |
1010 { true, "www.test.example", "*.test.example" }, | 1012 { true, "www.test.example", "*.test.example" }, |
1011 { true, "test.example.co.uk", "*.example.co.uk" }, | 1013 { true, "test.example.co.uk", "*.example.co.uk" }, |
1012 { false, "test.example", "*.exmaple" }, | 1014 { false, "test.example", "*.exmaple" }, |
1013 { false, "example.co.uk", "*.co.uk" }, | 1015 { false, "example.co.uk", "*.co.uk" }, |
1014 { false, "foo.com", "*.com" }, | 1016 { false, "foo.com", "*.com" }, |
1015 { false, "foo.us", "*.us" }, | 1017 { false, "foo.us", "*.us" }, |
1016 { false, "foo", "*" }, | 1018 { false, "foo", "*" }, |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1191 &actual_type); | 1193 &actual_type); |
1192 | 1194 |
1193 EXPECT_EQ(data.expected_bits, actual_bits); | 1195 EXPECT_EQ(data.expected_bits, actual_bits); |
1194 EXPECT_EQ(data.expected_type, actual_type); | 1196 EXPECT_EQ(data.expected_type, actual_type); |
1195 } | 1197 } |
1196 | 1198 |
1197 INSTANTIATE_TEST_CASE_P(, X509CertificatePublicKeyInfoTest, | 1199 INSTANTIATE_TEST_CASE_P(, X509CertificatePublicKeyInfoTest, |
1198 testing::ValuesIn(kPublicKeyInfoTestData)); | 1200 testing::ValuesIn(kPublicKeyInfoTestData)); |
1199 | 1201 |
1200 } // namespace net | 1202 } // namespace net |
OLD | NEW |