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-2018 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_SECURITY_V2_VALIDATION_POLICY_CONFIG_HPP
23
#define NDN_SECURITY_V2_VALIDATION_POLICY_CONFIG_HPP
24
25
#include "
ndn-cxx/security/v2/validation-policy.hpp
"
26
#include "
ndn-cxx/security/v2/validator-config/rule.hpp
"
27
#include "
ndn-cxx/security/v2/validator-config/common.hpp
"
28
29
namespace
ndn
{
30
namespace
security {
31
namespace
v2 {
32
namespace
validator_config {
33
42
class
ValidationPolicyConfig
:
public
ValidationPolicy
43
{
44
public
:
45
ValidationPolicyConfig
();
46
51
void
52
load
(
const
std::string& filename);
53
58
void
59
load
(
const
std::string& input,
const
std::string& filename);
60
65
void
66
load
(std::istream& input,
const
std::string& filename);
67
72
void
73
load
(
const
ConfigSection
& configSection,
const
std::string& filename);
74
75
protected
:
76
void
77
checkPolicy
(
const
Data
& data,
const
shared_ptr<ValidationState>& state,
78
const
ValidationContinuation
& continueValidation)
override
;
79
80
void
81
checkPolicy
(
const
Interest
& interest,
const
shared_ptr<ValidationState>& state,
82
const
ValidationContinuation
& continueValidation)
override
;
83
84
private
:
85
void
86
processConfigTrustAnchor(
const
ConfigSection
& section,
const
std::string& filename);
87
88
time::nanoseconds
89
getRefreshPeriod(ConfigSection::const_iterator& it,
const
ConfigSection::const_iterator& end);
90
91
time::nanoseconds
92
getDefaultRefreshPeriod();
93
94
NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PRIVATE
:
100
bool
m_shouldBypass;
101
bool
m_isConfigured;
102
103
std::vector<unique_ptr<Rule>> m_dataRules;
104
std::vector<unique_ptr<Rule>> m_interestRules;
105
};
106
107
}
// namespace validator_config
108
109
using
validator_config::ValidationPolicyConfig
;
110
111
}
// namespace v2
112
}
// namespace security
113
}
// namespace ndn
114
115
#endif // NDN_SECURITY_V2_VALIDATION_POLICY_CONFIG_HPP
ndn::security::v2::validator_config::ValidationPolicyConfig
The validator which can be set up via a configuration file.
Definition:
validation-policy-config.hpp:42
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:44
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:43
ndn::security::v2::validator_config::ConfigSection
boost::property_tree::ptree ConfigSection
Definition:
common.hpp:36
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:244
ndn::security::v2::validator_config::ValidationPolicyConfig::ValidationPolicyConfig
ValidationPolicyConfig()
Definition:
validation-policy-config.cpp:38
ndn::Data
Represents a Data packet.
Definition:
data.hpp:35
ndn::security::v2::validator_config::ValidationPolicyConfig::load
void load(const std::string &filename)
Load policy from file filename.
Definition:
validation-policy-config.cpp:45
common.hpp
ndnSIM
ndn-cxx
ndn-cxx
security
v2
validation-policy-config.hpp
Generated on Sun Feb 24 2019 22:16:06 for ndnSIM by
1.8.15