22 #ifndef NDN_SECURITY_V2_VALIDATION_POLICY_COMMAND_INTEREST_HPP 23 #define NDN_SECURITY_V2_VALIDATION_POLICY_COMMAND_INTEREST_HPP 26 #include <boost/multi_index_container.hpp> 27 #include <boost/multi_index/ordered_index.hpp> 28 #include <boost/multi_index/sequenced_index.hpp> 29 #include <boost/multi_index/key_extractors.hpp> 106 checkPolicy(
const Data& data,
const shared_ptr<ValidationState>& state,
117 std::tuple<bool, Name, uint64_t>
118 parseCommandInterest(
const Interest& interest,
const shared_ptr<ValidationState>& state)
const;
121 checkTimestamp(
const shared_ptr<ValidationState>& state,
122 const Name& keyName, uint64_t timestamp);
125 insertNewRecord(
const Interest& interest,
const Name& keyName,
129 unique_ptr<ValidationPolicy> m_innerPolicy;
132 struct LastTimestampRecord
139 typedef boost::multi_index_container<
141 boost::multi_index::indexed_by<
142 boost::multi_index::ordered_unique<
143 boost::multi_index::member<LastTimestampRecord, Name, &LastTimestampRecord::keyName>
145 boost::multi_index::sequenced<>
148 typedef Container::nth_index<0>::type Index;
149 typedef Container::nth_index<1>::type Queue;
151 Container m_container;
161 #endif // NDN_SECURITY_V2_VALIDATION_POLICY_COMMAND_INTEREST_HPP time::nanoseconds gracePeriod
tolerance of initial timestamp
Copyright (c) 2011-2015 Regents of the University of California.
represents an Interest packet
void checkPolicy(const Data &data, const shared_ptr< ValidationState > &state, const ValidationContinuation &continueValidation) override
Check data against the policy.
Abstraction that implements validation policy for Data and Interest packets.
Validation policy for stop-and-wait command Interests.
Catch-all error for security policy errors that don't fit in other categories.
std::function< void(const shared_ptr< CertificateRequest > &certRequest, const shared_ptr< ValidationState > &state)> ValidationContinuation
Represents an absolute name.
time::nanoseconds recordLifetime
max lifetime of a last timestamp record
ssize_t maxRecords
max number of distinct public keys of which to record the last timestamp
Represents a Data packet.
ValidationPolicyCommandInterest(unique_ptr< ValidationPolicy > inner, const Options &options={})
constructor