23 #ifndef NDN_VALIDATION_POLICY_HPP
24 #define NDN_VALIDATION_POLICY_HPP
26 #include "validation-state.hpp"
27 #include "certificate-request.hpp"
28 #include "../../signature.hpp"
31 class TestValidator_ConstructorSetValidator_Test;
43 typedef func_lib::function<void
44 (
const ptr_lib::shared_ptr<CertificateRequest>& certificateRequest,
45 const ptr_lib::shared_ptr<ValidationState>& state)> ValidationContinuation;
68 setInnerPolicy(
const ptr_lib::shared_ptr<ValidationPolicy>& innerPolicy);
93 validator_ = &validator;
95 innerPolicy_->setValidator(validator);
118 (
const Data& data,
const ptr_lib::shared_ptr<ValidationState>& state,
119 const ValidationContinuation& continueValidation) = 0;
134 (
const Interest& interest,
const ptr_lib::shared_ptr<ValidationState>& state,
135 const ValidationContinuation& continueValidation) = 0;
152 const ptr_lib::shared_ptr<ValidationState>& state,
153 const ValidationContinuation& continueValidation);
165 return getKeyLocatorNameFromSignature(*data.getSignature(), state);
188 getKeyLocatorNameFromSignature
193 friend TestValidator_ConstructorSetValidator_Test;
196 ptr_lib::shared_ptr<ValidationPolicy> innerPolicy_;
static Name getKeyLocatorName(const Data &data, ValidationState &state)
Extract the KeyLocator Name from a Data packet.
Definition: validation-policy.hpp:163
CertificateV2 represents a certificate following the certificate format naming convention.
Definition: certificate-v2.hpp:81
ValidationPolicy is an abstract base class that implements a validation policy for Data and Interest ...
Definition: validation-policy.hpp:41
virtual void checkPolicy(const Data &data, const ptr_lib::shared_ptr< ValidationState > &state, const ValidationContinuation &continueValidation)=0
Check the Data packet against the policy.
virtual void checkCertificatePolicy(const CertificateV2 &certificate, const ptr_lib::shared_ptr< ValidationState > &state, const ValidationContinuation &continueValidation)
Check the certificate against the policy.
Definition: validation-policy.cpp:50
A Name holds an array of Name::Component and represents an NDN name.
Definition: name.hpp:40
A Signature is an abstract base class providing methods to work with the signature information in a D...
Definition: signature.hpp:35
An Interest holds a Name and other fields for an interest.
Definition: interest.hpp:43
void setValidator(Validator &validator)
Set the validator to which this policy is associated.
Definition: validation-policy.hpp:91
bool hasInnerPolicy() const
Check if the inner policy is set.
Definition: validation-policy.hpp:75
void setInnerPolicy(const ptr_lib::shared_ptr< ValidationPolicy > &innerPolicy)
Set the inner policy.
Definition: validation-policy.cpp:34
The Validator class provides an interface for validating data and interest packets.
Definition: validator.hpp:55
ValidationPolicy & getInnerPolicy()
Get the inner policy.
Definition: validation-policy.hpp:83
ValidationState is an abstract base class for DataValidationState and InterestValidationState.
Definition: validation-state.hpp:80