basic-identity-storage.hpp
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
23 #ifndef NDN_BASIC_IDENTITY_STORAGE_H
24 #define NDN_BASIC_IDENTITY_STORAGE_H
25 
26 // Only compile if ndn-cpp-config.h defines NDN_CPP_HAVE_SQLITE3.
27 #include <ndn-cpp/ndn-cpp-config.h>
28 #ifdef NDN_CPP_HAVE_SQLITE3
29 
30 #include <sqlite3.h>
31 #include "../../common.hpp"
32 #include "identity-storage.hpp"
33 
34 namespace ndn
35 {
36 
41 class BasicIdentityStorage : public IdentityStorage {
42 public:
48  BasicIdentityStorage(const std::string& databaseFilePath = "");
49 
53  virtual
54  ~BasicIdentityStorage();
55 
61  virtual bool
62  doesIdentityExist(const Name& identityName);
63 
68  virtual void
69  addIdentity(const Name& identityName);
70 
75  virtual bool
76  revokeIdentity();
77 
83  virtual bool
84  doesKeyExist(const Name& keyName);
85 
93  virtual void
94  addKey(const Name& keyName, KeyType keyType, const Blob& publicKeyDer);
95 
101  virtual Blob
102  getKey(const Name& keyName);
103 
108  virtual void
109  activateKey(const Name& keyName);
110 
115  virtual void
116  deactivateKey(const Name& keyName);
117 
123  virtual bool
124  doesCertificateExist(const Name& certificateName);
125 
130  void
131  addAnyCertificate (const IdentityCertificate& certificate);
132 
137  virtual void
138  addCertificate(const IdentityCertificate& certificate);
139 
146  virtual ptr_lib::shared_ptr<IdentityCertificate>
147  getCertificate(const Name &certificateName, bool allowAny = false);
148 
149 
150  /*****************************************
151  * Get/Set Default *
152  *****************************************/
153 
159  virtual Name
160  getDefaultIdentity();
161 
168  virtual Name
169  getDefaultKeyNameForIdentity(const Name& identityName);
170 
178  virtual Name
179  getDefaultCertificateNameForKey(const Name& keyName);
180 
188  virtual void
189  getAllKeyNamesOfIdentity
190  (const Name& identityName, std::vector<Name>& nameList, bool isDefault);
191 
197  virtual void
198  setDefaultIdentity(const Name& identityName);
199 
205  virtual void
206  setDefaultKeyNameForIdentity(const Name& keyName, const Name& identityNameCheck = Name());
207 
213  virtual void
214  setDefaultCertificateNameForKey(const Name& keyName, const Name& certificateName);
215 
216  /*****************************************
217  * Delete Methods *
218  *****************************************/
219 
224  virtual void
225  deleteCertificateInfo(const Name& certificateName);
226 
231  virtual void
232  deletePublicKeyInfo(const Name& keyName);
233 
238  virtual void
239  deleteIdentityInfo(const Name& identity);
240 
241 private:
242 
243  void
244  updateKeyStatus(const Name& keyName, bool isActive);
245 
246  sqlite3 *database_;
247 };
248 
249 }
250 
251 #endif // NDN_CPP_HAVE_SQLITE3
252 
253 #endif
Copyright (C) 2013-2015 Regents of the University of California.
Definition: common.hpp:35