NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
validation-policy-config.hpp
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2013-2021 Regents of the University of California.
4
*
5
* This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
6
*
7
* ndn-cxx library is free software: you can redistribute it and/or modify it under the
8
* terms of the GNU Lesser General Public License as published by the Free Software
9
* Foundation, either version 3 of the License, or (at your option) any later version.
10
*
11
* ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY
12
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
14
*
15
* You should have received copies of the GNU General Public License and GNU Lesser
16
* General Public License along with ndn-cxx, e.g., in COPYING.md file. If not, see
17
* <http://www.gnu.org/licenses/>.
18
*
19
* See AUTHORS.md for complete list of ndn-cxx authors and contributors.
20
*/
21
22
#ifndef NDN_CXX_SECURITY_VALIDATION_POLICY_CONFIG_HPP
23
#define NDN_CXX_SECURITY_VALIDATION_POLICY_CONFIG_HPP
24
25
#include "
ndn-cxx/security/validation-policy.hpp
"
26
#include "
ndn-cxx/security/validator-config/rule.hpp
"
27
28
namespace
ndn
{
29
namespace
security
{
30
inline
namespace
v2 {
31
namespace
validator_config {
32
41
class
ValidationPolicyConfig
:
public
ValidationPolicy
42
{
43
public
:
48
void
49
load
(
const
std::string& filename);
50
55
void
56
load
(
const
std::string& input,
const
std::string& filename);
57
62
void
63
load
(std::istream& input,
const
std::string& filename);
64
69
void
70
load
(
const
ConfigSection
& configSection,
const
std::string& filename);
71
72
protected
:
73
void
74
checkPolicy
(
const
Data
& data,
const
shared_ptr<ValidationState>& state,
75
const
ValidationContinuation
& continueValidation)
override
;
76
77
void
78
checkPolicy
(
const
Interest
& interest,
const
shared_ptr<ValidationState>& state,
79
const
ValidationContinuation
& continueValidation)
override
;
80
81
private
:
82
void
83
processConfigTrustAnchor(
const
ConfigSection
& section,
const
std::string& filename);
84
85
time::nanoseconds
86
getRefreshPeriod(ConfigSection::const_iterator& it,
const
ConfigSection::const_iterator& end);
87
88
time::nanoseconds
89
getDefaultRefreshPeriod();
90
91
NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PRIVATE
:
97
bool
m_shouldBypass =
false
;
98
bool
m_isConfigured =
false
;
99
100
std::vector<unique_ptr<Rule>> m_dataRules;
101
std::vector<unique_ptr<Rule>> m_interestRules;
102
};
103
104
}
// namespace validator_config
105
106
using
validator_config::ValidationPolicyConfig
;
107
108
}
// inline namespace v2
109
}
// namespace security
110
}
// namespace ndn
111
112
#endif // NDN_CXX_SECURITY_VALIDATION_POLICY_CONFIG_HPP
ndn::security::v2::validator_config::ValidationPolicyConfig
A validator that can be set up via a configuration file.
Definition:
validation-policy-config.hpp:41
ndn
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-strategy-choice-helper.hpp:34
validation-policy.hpp
ndn::Interest
Represents an Interest packet.
Definition:
interest.hpp:48
ndn::security::v2::ValidationPolicy
Abstraction that implements validation policy for Data and Interest packets.
Definition:
validation-policy.hpp:37
rule.hpp
ndn::security::v2::ValidationPolicy::ValidationContinuation
std::function< void(const shared_ptr< CertificateRequest > &certRequest, const shared_ptr< ValidationState > &state)> ValidationContinuation
Definition:
validation-policy.hpp:41
NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PRIVATE
#define NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PRIVATE
Definition:
common.hpp:48
ndn::security::v2::validator_config::ConfigSection
boost::property_tree::ptree ConfigSection
Definition:
common.hpp:36
ndn::security
Definition:
dummy-keychain.cpp:28
ndn::security::v2::validator_config::ValidationPolicyConfig::checkPolicy
void checkPolicy(const Data &data, const shared_ptr< ValidationState > &state, const ValidationContinuation &continueValidation) override
Check data against the policy.
Definition:
validation-policy-config.cpp:235
ndn::Data
Represents a Data packet.
Definition:
data.hpp:37
ndn::security::v2::validator_config::ValidationPolicyConfig::load
void load(const std::string &filename)
Load policy from file filename.
Definition:
validation-policy-config.cpp:40
ndn::time::nanoseconds
boost::chrono::nanoseconds nanoseconds
Definition:
time.hpp:50
ndnSIM
ndn-cxx
ndn-cxx
security
validation-policy-config.hpp
Generated on Fri May 6 2022 12:34:13 for ndnSIM by
1.8.13