validation-policy.hpp
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
22 #ifndef NDN_SECURITY_V2_VALIDATION_POLICY_HPP
23 #define NDN_SECURITY_V2_VALIDATION_POLICY_HPP
24 
25 #include "validation-state.hpp"
26 #include "certificate-request.hpp"
27 #include "../../data.hpp"
28 #include "../../interest.hpp"
29 
30 namespace ndn {
31 namespace security {
32 namespace v2 {
33 
37 class ValidationPolicy : noncopyable
38 {
39 public:
40  using ValidationContinuation = std::function<void(const shared_ptr<CertificateRequest>& certRequest,
41  const shared_ptr<ValidationState>& state)>;
42 
43  virtual
44  ~ValidationPolicy() = default;
45 
60  virtual void
61  checkPolicy(const Data& data, const shared_ptr<ValidationState>& state,
62  const ValidationContinuation& continueValidation) = 0;
63 
78  virtual void
79  checkPolicy(const Interest& interest, const shared_ptr<ValidationState>& state,
80  const ValidationContinuation& continueValidation) = 0;
81 
98  virtual void
99  checkPolicy(const Certificate& certificate, const shared_ptr<ValidationState>& state,
100  const ValidationContinuation& continueValidation)
101  {
102  checkPolicy(static_cast<const Data&>(certificate), state, continueValidation);
103  }
104 };
105 
106 } // namespace v2
107 } // namespace security
108 } // namespace ndn
109 
110 #endif // NDN_SECURITY_V2_VALIDATION_POLICY_HPP
Copyright (c) 2013-2016 Regents of the University of California.
Definition: common.hpp:74
The certificate following the certificate format naming convention.
represents an Interest packet
Definition: interest.hpp:42
Abstraction that implements validation policy for Data and Interest packets.
std::function< void(const shared_ptr< CertificateRequest > &certRequest, const shared_ptr< ValidationState > &state)> ValidationContinuation
virtual void checkPolicy(const Data &data, const shared_ptr< ValidationState > &state, const ValidationContinuation &continueValidation)=0
Check data against the policy.
virtual void checkPolicy(const Certificate &certificate, const shared_ptr< ValidationState > &state, const ValidationContinuation &continueValidation)
Check certificate against the policy.
represents a Data packet
Definition: data.hpp:37