22 #ifndef NDN_SECURITY_VALIDATOR_HPP
23 #define NDN_SECURITY_VALIDATOR_HPP
25 #include "../face.hpp"
42 class Error :
public std::runtime_error
47 :
std::runtime_error(what)
82 validate(data, onValidated, onValidationFailed, 0);
97 validate(interest, onValidated, onValidationFailed, 0);
238 std::vector<shared_ptr<ValidationRequest>>& nextSteps) = 0;
258 std::vector<shared_ptr<ValidationRequest>>& nextSteps) = 0;
266 const shared_ptr<ValidationRequest>& nextStep);
295 virtual shared_ptr<const Data>
298 return data.shared_from_this();
315 int nRemainingRetries,
316 const OnFailure& onFailure,
317 const shared_ptr<ValidationRequest>& validationRequest);
331 int nRemainingRetries,
332 const OnFailure& onFailure,
333 const shared_ptr<ValidationRequest>& validationRequest);
345 afterCheckPolicy(
const std::vector<shared_ptr<ValidationRequest>>& nextSteps,
346 const OnFailure& onFailure);
359 #endif // NDN_SECURITY_VALIDATOR_HPP
function< void(const shared_ptr< const Interest > &, const std::string &)> OnInterestValidationFailed
Callback to report a failed Interest validation.
void validate(const Data &data, const OnDataValidated &onValidated, const OnDataValidationFailed &onValidationFailed)
Validate Data and call either onValidated or onValidationFailed.
const Name & getName() const
Copyright (c) 2013-2016 Regents of the University of California.
ndn security v2 Validator
void validate(const Interest &interest, const OnInterestValidated &onValidated, const OnInterestValidationFailed &onValidationFailed)
Validate Interest and call either onValidated or onValidationFailed.
virtual shared_ptr< const Data > preCertificateValidation(const Data &data)
Hooks.
Error(const std::string &what)
virtual void checkPolicy(const Data &data, int nSteps, const OnDataValidated &onValidated, const OnDataValidationFailed &onValidationFailed, std::vector< shared_ptr< ValidationRequest >> &nextSteps)=0
Check the Data against policy and return the next validation step if necessary.
Represent a SHA256 digest.
virtual void afterCheckPolicy(const std::vector< shared_ptr< ValidationRequest >> &nextSteps, const OnFailure &onFailure)
trigger after checkPolicy is done.
size_t wireEncode(EncodingImpl< TAG > &encoder) const
Fast encoding or block size estimation.
represents an Interest packet
const Block & getValue() const
Get SignatureValue in the wire format.
function< void(const shared_ptr< const Data > &, const std::string &)> OnDataValidationFailed
Callback to report a failed Data validation.
static bool verifySignature(const Interest &interest, const Signature &sig, const v1::PublicKey &publicKey)
Verify the interest using the publicKey against the SHA256-RSA signature.
function< void(const shared_ptr< const Data > &)> OnDataValidated
Callback to report a successful Data validation.
represents a Network Nack
function< void(const shared_ptr< const Interest > &)> OnInterestValidated
Callback to report a successful Interest validation.
size_t wireEncode(EncodingImpl< TAG > &encoder, bool wantUnsignedPortionOnly=false) const
Fast encoding or block size estimation.
Validator(Face *face=nullptr)
Validator constructor.
static bool verifySignature(const Buffer &blob, const Signature &sig, const v1::PublicKey &publicKey)
Verify the blob using the publicKey against the signature.
provides the interfaces for packet validation.
Provide a communication channel with local or remote NDN forwarder.
size_t size() const
Get the number of components.
Name abstraction to represent an absolute name.
function< void(const std::string &)> OnFailure
void onData(const Interest &interest, const Data &data, const shared_ptr< ValidationRequest > &nextStep)
Process the received certificate.
const Signature & getSignature() const
static bool verifySignature(const Buffer &blob, const DigestSha256 &sig)
Verify the blob against the SHA256 signature.
static bool verifySignature(const Data &data, const Signature &sig, const v1::PublicKey &publicKey)
Verify the data using the publicKey against the SHA256-RSA signature.
bool m_wantDirectCertFetch
static bool verifySignature(const Data &data, const DigestSha256 &sig)
Verify the data against the SHA256 signature.
static bool verifySignature(const Interest &interest, const DigestSha256 &sig)
Verify the interest against the SHA256 signature.
virtual void onNack(const Interest &interest, const lp::Nack &nack, int nRemainingRetries, const OnFailure &onFailure, const shared_ptr< ValidationRequest > &validationRequest)
trigger when interest retrieves a Nack.
static bool verifySignature(const Data &data, const v1::PublicKey &publicKey)
Verify the data using the publicKey.
void setDirectCertFetchEnabled(bool isEnabled)
Enable or disable the direct certificate fetch feature.
Class representing a general-use automatically managed/resized buffer.
A Signature is storage for the signature-related information (info and value) in a Data packet...
virtual void onTimeout(const Interest &interest, int nRemainingRetries, const OnFailure &onFailure, const shared_ptr< ValidationRequest > &validationRequest)
trigger when interest for certificate times out.