23 #ifndef NDN_VALIDATION_STATE_HPP
24 #define NDN_VALIDATION_STATE_HPP
27 #include "validation-error.hpp"
28 #include "certificate-v2.hpp"
29 #include "../../interest.hpp"
43 typedef func_lib::function<void
50 typedef func_lib::function<void
57 typedef func_lib::function<void
124 getDepth()
const {
return certificateChain_.size(); }
136 return !seenCertificateNames_.insert(certificateName).second;
150 certificateChain_.insert
151 (certificateChain_.begin(),
152 ptr_lib::make_shared<CertificateV2>(certificate));
173 verifyOriginalPacket(
const CertificateV2& trustedCertificate) = 0;
180 bypassValidation() = 0;
195 ptr_lib::shared_ptr<CertificateV2>
196 verifyCertificateChain
197 (
const ptr_lib::shared_ptr<CertificateV2>& trustedCertificate);
207 std::vector<ptr_lib::shared_ptr<CertificateV2> > certificateChain_;
208 std::set<Name> seenCertificateNames_;
245 verifyOriginalPacket(
const CertificateV2& trustedCertificate);
293 successCallbacks_.push_back(successCallback);
298 verifyOriginalPacket(
const CertificateV2& trustedCertificate);
304 std::vector<InterestValidationSuccessCallback> successCallbacks_;
func_lib::function< void(const Data &data, const ValidationError &error)> DataValidationFailureCallback
A DataValidationFailureCallback function object is used to report a failed Data validation.
Definition: validation-state.hpp:44
void addCertificate(const CertificateV2 &certificate)
Add the certificate to the top of the certificate chain.
Definition: validation-state.hpp:148
virtual void fail(const ValidationError &error)
Call the failure callback.
Definition: validation-state.cpp:122
bool hasSeenCertificateName(const Name &certificateName)
Check if certificateName has been previously seen, and record the supplied name.
Definition: validation-state.hpp:133
The DataValidationState class extends ValidationState to hold the validation state for a Data packet...
Definition: validation-state.hpp:217
void setOutcome(bool outcome)
Set the outcome to the given value, and set hasOutcome_ true.
Definition: validation-state.cpp:37
The InterestValidationState class extends ValidationState to hold the validation state for an Interes...
Definition: validation-state.hpp:259
CertificateV2 represents a certificate following the certificate format naming convention.
Definition: certificate-v2.hpp:81
A Name holds an array of Name::Component and represents an NDN name.
Definition: name.hpp:40
An Interest holds a Name and other fields for an interest.
Definition: interest.hpp:43
const Data & getOriginalData() const
Get the original Data packet being validated which was given to the constructor.
Definition: validation-state.hpp:241
virtual void fail(const ValidationError &error)=0
Call the failure callback.
virtual void fail(const ValidationError &error)
Call the failure callback.
Definition: validation-state.cpp:189
DataValidationState(const Data &data, const DataValidationSuccessCallback &successCallback, const DataValidationFailureCallback &failureCallback)
Create a DataValidationState for the Data packet.
Definition: validation-state.cpp:74
func_lib::function< void(const Data &data)> DataValidationSuccessCallback
A DataValidationSuccessCallback function object is used to report a successful Data validation...
Definition: validation-state.hpp:37
The Validator class provides an interface for validating data and interest packets.
Definition: validator.hpp:55
func_lib::function< void(const Interest &interest)> InterestValidationSuccessCallback
An InterestValidationSuccessCallback function object is used to report a successful Interest validati...
Definition: validation-state.hpp:51
bool isOutcomeFailed()
Check if validation failed has been called.
Definition: validation-state.hpp:103
A ValidationError holds an error code and an optional detailed error message.
Definition: validation-error.hpp:34
size_t getDepth() const
Get the depth of the certificate chain.
Definition: validation-state.hpp:124
InterestValidationState(const Interest &interest, const InterestValidationSuccessCallback &successCallback, const InterestValidationFailureCallback &failureCallback)
Create an InterestValidationState for the Data packet.
Definition: validation-state.cpp:136
bool isOutcomeSuccess()
Check if validation success has been called.
Definition: validation-state.hpp:111
ValidationState is an abstract base class for DataValidationState and InterestValidationState.
Definition: validation-state.hpp:80
bool hasOutcome()
Check if validation failed or success has been called.
Definition: validation-state.hpp:95
const Interest & getOriginalInterest() const
Get the original Interest packet being validated which was given to the constructor.
Definition: validation-state.hpp:288
func_lib::function< void(const Interest &interest, const ValidationError &error)> InterestValidationFailureCallback
An InterestValidationFailureCallback function object is used to report a failed Interest validation...
Definition: validation-state.hpp:59