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

Side by Side Diff: net/cert/internal/nist_pkits_unittest.h

Issue 2903633005: Add generated PKITS tests relating to certificate policies. (Closed)
Patch Set: Created 3 years, 6 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #ifndef NET_CERT_INTERNAL_NIST_PKITS_UNITTEST_H_ 5 #ifndef NET_CERT_INTERNAL_NIST_PKITS_UNITTEST_H_
6 #define NET_CERT_INTERNAL_NIST_PKITS_UNITTEST_H_ 6 #define NET_CERT_INTERNAL_NIST_PKITS_UNITTEST_H_
7 7
8 #include <set>
9
10 #include "base/strings/string_split.h"
mattm 2017/05/25 22:11:16 put in the .cc
eroman 2017/05/25 22:42:58 Done.
8 #include "net/cert/internal/test_helpers.h" 11 #include "net/cert/internal/test_helpers.h"
9 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
10 13
14 namespace net {
15
16 // Describes additional inputs to verification in the PKITS tests
17 // (which are referred to as "settings" in that document).
18 struct PkitsTestSettings {
19 // Default construction results in the "default settings".
20 PkitsTestSettings();
21 ~PkitsTestSettings();
22
23 // Sets |initial_policy_set| to the specified policies. The
24 // policies are described as comma-separated symbolic strings like
25 // "anyPolicy" and "NIST-test-policy-1".
26 void SetInitialPolicySet(const char* const policy_names);
27
28 // A set of policy OIDs to use for "initial-policy-set".
29 std::set<der::Input> initial_policy_set;
30
31 // The value of "initial-explicit-policy".
32 bool initial_explicit_policy = false;
33
34 // The value of "initial-policy-mapping-inhibit".
35 bool initial_policy_mapping_inhibit = false;
36
37 // The valueo f "initial-inhibit-any-policy".
mattm 2017/05/25 22:11:16 value of
eroman 2017/05/25 22:42:58 Done.
38 bool initial_inhibit_any_policy = false;
39 };
40
11 // Parameterized test class for PKITS tests. 41 // Parameterized test class for PKITS tests.
12 // The instantiating code should define a PkitsTestDelegate with an appropriate 42 // The instantiating code should define a PkitsTestDelegate with an appropriate
13 // static Verify method, and then INSTANTIATE_TYPED_TEST_CASE_P for each 43 // static Verify method, and then INSTANTIATE_TYPED_TEST_CASE_P for each
14 // testcase (each TYPED_TEST_CASE_P in pkits_testcases-inl.h). 44 // testcase (each TYPED_TEST_CASE_P in pkits_testcases-inl.h).
15 template <typename PkitsTestDelegate> 45 template <typename PkitsTestDelegate>
16 class PkitsTest : public ::testing::Test { 46 class PkitsTest : public ::testing::Test {
17 public: 47 public:
18 template <size_t num_certs, size_t num_crls> 48 template <size_t num_certs, size_t num_crls>
19 bool Verify(const char* const (&cert_names)[num_certs], 49 bool Verify(const char* const (&cert_names)[num_certs],
20 const char* const (&crl_names)[num_crls]) { 50 const char* const (&crl_names)[num_crls],
51 const PkitsTestSettings& settings) {
21 std::vector<std::string> cert_ders; 52 std::vector<std::string> cert_ders;
22 for (const std::string& s : cert_names) 53 for (const std::string& s : cert_names)
23 cert_ders.push_back(net::ReadTestFileToString( 54 cert_ders.push_back(net::ReadTestFileToString(
24 "net/third_party/nist-pkits/certs/" + s + ".crt")); 55 "net/third_party/nist-pkits/certs/" + s + ".crt"));
25 std::vector<std::string> crl_ders; 56 std::vector<std::string> crl_ders;
26 for (const std::string& s : crl_names) 57 for (const std::string& s : crl_names)
27 crl_ders.push_back(net::ReadTestFileToString( 58 crl_ders.push_back(net::ReadTestFileToString(
28 "net/third_party/nist-pkits/crls/" + s + ".crl")); 59 "net/third_party/nist-pkits/crls/" + s + ".crl"));
29 return PkitsTestDelegate::Verify(cert_ders, crl_ders); 60 return PkitsTestDelegate::Verify(cert_ders, crl_ders, settings);
30 } 61 }
31 }; 62 };
32 63
33 // Inline the generated test code: 64 // Inline the generated test code:
34 #include "net/third_party/nist-pkits/pkits_testcases-inl.h" 65 #include "net/third_party/nist-pkits/pkits_testcases-inl.h"
35 66
67 } // namespace net
68
36 #endif // NET_CERT_INTERNAL_NIST_PKITS_UNITTEST_H_ 69 #endif // NET_CERT_INTERNAL_NIST_PKITS_UNITTEST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698