All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
sha256-with-ecdsa-signature.hpp
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
22 #ifndef NDN_SHA256_WITH_ECDSA_SIGNATURE_HPP
23 #define NDN_SHA256_WITH_ECDSA_SIGNATURE_HPP
24 
25 #include "signature.hpp"
26 #include "key-locator.hpp"
27 #include "security/validity-period.hpp"
28 #include "util/change-counter.hpp"
29 
30 namespace ndn {
31 
37 public:
39  : changeCount_(0)
40  {
41  }
42 
47  virtual ptr_lib::shared_ptr<Signature>
48  clone() const;
49 
58  virtual void
59  get(SignatureLite& signatureLite) const;
60 
65  virtual void
66  set(const SignatureLite& signatureLite);
67 
72  virtual const Blob&
73  getSignature() const;
74 
75  const KeyLocator&
76  getKeyLocator() const { return keyLocator_.get(); }
77 
78  KeyLocator&
79  getKeyLocator() { return keyLocator_.get(); }
80 
85  const ValidityPeriod&
86  getValidityPeriod() const { return validityPeriod_.get(); }
87 
93  getValidityPeriod() { return validityPeriod_.get(); }
94 
99  virtual void
100  setSignature(const Blob& signature);
101 
102  void
103  setKeyLocator(const KeyLocator& keyLocator)
104  {
105  keyLocator_.set(keyLocator);
106  ++changeCount_;
107  }
108 
113  void
114  setValidityPeriod(const ValidityPeriod& validityPeriod)
115  {
116  validityPeriod_.set(validityPeriod);
117  ++changeCount_;
118  }
119 
123  void
125  {
126  signature_.reset();
127  keyLocator_.get().clear();
128  validityPeriod_.get().clear();
129  ++changeCount_;
130  }
131 
137  virtual uint64_t
138  getChangeCount() const;
139 
140 private:
141  Blob signature_;
142  ChangeCounter<KeyLocator> keyLocator_;
143  ChangeCounter<ValidityPeriod> validityPeriod_;
144  uint64_t changeCount_;
145 };
146 
147 }
148 
149 #endif
ValidityPeriod & getValidityPeriod()
Get the validity period.
Definition: sha256-with-ecdsa-signature.hpp:93
virtual ptr_lib::shared_ptr< Signature > clone() const
Return a pointer to a new Sha256WithEcdsaSignature which is a copy of this signature.
Definition: sha256-with-ecdsa-signature.cpp:30
A Sha256WithEcdsaSignature extends Signature and holds the signature bits and other info representing...
Definition: sha256-with-ecdsa-signature.hpp:36
A SignatureLite holds a signature type, a KeyLocatorLite, the signature bytes and other fields to rep...
Definition: signature-lite.hpp:37
virtual void set(const SignatureLite &signatureLite)
Clear this signature, and set the values by copying from signatureLite.
Definition: sha256-with-ecdsa-signature.cpp:58
virtual void setSignature(const Blob &signature)
Set the signature bytes to the given value.
Definition: sha256-with-ecdsa-signature.cpp:42
A ValidityPeriod is used in a Data packet's SignatureInfo and represents the begin and end times of a...
Definition: validity-period.hpp:37
A ChangeCounter keeps a target object whose change count is tracked by a local change count...
Definition: change-counter.hpp:37
void setValidityPeriod(const ValidityPeriod &validityPeriod)
Set the validity period to a copy of the given ValidityPeriod.
Definition: sha256-with-ecdsa-signature.hpp:114
A Signature is an abstract base class providing methods to work with the signature information in a D...
Definition: signature.hpp:35
A Blob holds a pointer to an immutable byte array implemented as const std::vector<uint8_t>.
Definition: blob.hpp:42
const ValidityPeriod & getValidityPeriod() const
Get the validity period.
Definition: sha256-with-ecdsa-signature.hpp:86
virtual const Blob & getSignature() const
Get the signature bytes.
Definition: sha256-with-ecdsa-signature.cpp:36
void clear()
Clear all the fields.
Definition: sha256-with-ecdsa-signature.hpp:124
Definition: key-locator.hpp:35
virtual uint64_t getChangeCount() const
Get the change count, which is incremented each time this object (or a child object) is changed...
Definition: sha256-with-ecdsa-signature.cpp:70