Adding nsync for NLSR
diff --git a/src/nlsr.cpp b/src/nlsr.cpp
index fe4ba01..3ca2279 100644
--- a/src/nlsr.cpp
+++ b/src/nlsr.cpp
@@ -1,7 +1,6 @@
 #include <ndn-cpp-dev/face.hpp>
 #include <ndn-cpp-dev/security/key-chain.hpp>
 #include <ndn-cpp-dev/util/scheduler.hpp>
-
 #include <cstdlib>
 #include <string>
 #include <sstream>
@@ -108,8 +107,9 @@
     //}
     nlsr_.getLsdb().setLsaRefreshTime(nlsr_.getConfParameter().getLsaRefreshTime());
     nlsr_.getFib().setFibEntryRefreshTime(
-        2*nlsr_.getConfParameter().getLsaRefreshTime());
+                                    2*nlsr_.getConfParameter().getLsaRefreshTime());
     nlsr_.getLsdb().setThisRouterPrefix(nlsr_.getConfParameter().getRouterPrefix());
+    nlsr_.getKeyManager().initKeyManager(nlsr_.getConfParameter());
     /* debugging purpose start */
     cout <<	nlsr_.getConfParameter();
     nlsr_.getAdl().printAdl();
diff --git a/src/nlsr.hpp b/src/nlsr.hpp
index 2f2ee61..cbf2af9 100644
--- a/src/nlsr.hpp
+++ b/src/nlsr.hpp
@@ -16,6 +16,7 @@
 #include "nlsr_npt.hpp"
 #include "nlsr_fib.hpp"
 #include "nlsr_logger.hpp"
+#include "nlsr_km.hpp"
 //testing
 #include "nlsr_test.hpp"
 
@@ -39,6 +40,7 @@
             , im()
             , dm()
             , sm()
+            , km()
             , nlsrLsdb()
             , adjBuildCount(0)
             , isBuildAdjLsaSheduled(0)
@@ -111,11 +113,16 @@
             return nlsrFace;
         }
 
-        ndn::KeyChain& getKeyChain()
+        KeyManager& getKeyManager()
         {
-            return kChain;
+        	return km;
         }
 
+//		ndn::KeyChain& getKeyChain()
+//        {
+//            return kChain;
+//        }
+
         interestManager& getIm()
         {
             return im;
@@ -223,10 +230,11 @@
         ndn::shared_ptr<boost::asio::io_service> io;
         ndn::Scheduler scheduler;
         ndn::Face nlsrFace;
-        ndn::KeyChain kChain;
+//      ndn::KeyChain kChain;
         interestManager im;
         DataManager dm;
         SequencingManager sm;
+        KeyManager km;
         bool isDaemonProcess;
         string configFileName;
         int apiPort;
diff --git a/src/nlsr_im.cpp b/src/nlsr_im.cpp
index 23a56cc..2e6d6d1 100644
--- a/src/nlsr_im.cpp
+++ b/src/nlsr_im.cpp
@@ -48,7 +48,7 @@
             Data data(ndn::Name(interest.getName()).appendVersion());
             data.setFreshnessPeriod(1000); // 10 sec
             data.setContent((const uint8_t*)"info", sizeof("info"));
-            pnlsr.getKeyChain().sign(data);
+            pnlsr.getKeyManager().getKeyChain().sign(data);
             cout << ">> D: " << data << endl;
             pnlsr.getNlsrFace().put(data);
             int status=pnlsr.getAdl().getStatusOfNeighbor(neighbor);
diff --git a/src/nlsr_km.cpp b/src/nlsr_km.cpp
new file mode 100644
index 0000000..fb4efaa
--- /dev/null
+++ b/src/nlsr_km.cpp
@@ -0,0 +1,22 @@
+#include <ndn-cpp-dev/security/identity-certificate.hpp>
+#include <ndn-cpp-dev/encoding/block.hpp>
+#include "nlsr_km.hpp"
+
+namespace nlsr
+{
+    void
+    KeyManager::initKeyManager(ConfParameter &cp)
+    {
+        ndn::Name identityName(cp.getRouterPrefix()+"/nlsr");
+        kChain.deleteIdentity(identityName);
+        ndn::Name certName = kChain.createIdentity(identityName);
+        cout<<"Certificate Name: "<<certName.toUri()<<endl;
+        ndn::Name keyName=
+            ndn::IdentityCertificate::certificateNameToPublicKeyName(certName);
+        cout<<"Key Name: "<<keyName.toUri()<<endl;
+    }
+
+}
+
+
+
diff --git a/src/nlsr_km.hpp b/src/nlsr_km.hpp
new file mode 100644
index 0000000..e93e996
--- /dev/null
+++ b/src/nlsr_km.hpp
@@ -0,0 +1,32 @@
+#ifndef NLSR_KM_HPP
+#define NLSR_KM_HPP
+
+#include <ndn-cpp-dev/face.hpp>
+#include <ndn-cpp-dev/security/key-chain.hpp>
+#include <ndn-cpp-dev/util/scheduler.hpp>
+
+#include "nlsr_conf_param.hpp"
+
+namespace nlsr
+{
+    class KeyManager
+    {
+    public:
+        KeyManager()
+            :kChain()
+        {
+        }
+
+        ndn::KeyChain& getKeyChain()
+        {
+            return kChain;
+        }
+
+        void initKeyManager(ConfParameter &cp);
+
+    private:
+        ndn::KeyChain kChain;
+    };
+}
+
+#endif