Added initial IdentityManager.
diff --git a/ndn-cpp/security/identity-manager.cpp b/ndn-cpp/security/identity-manager.cpp
new file mode 100644
index 0000000..8d36d30
--- /dev/null
+++ b/ndn-cpp/security/identity-manager.cpp
@@ -0,0 +1,15 @@
+/**
+ * @author: Jeff Thompson
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "identity-manager.hpp"
+
+namespace ndn {
+
+void IdentityManager::signByCertificate(const Data &data, const Name &certificateName, WireFormat& wireFormat)
+{
+
+}
+
+}
diff --git a/ndn-cpp/security/identity-manager.hpp b/ndn-cpp/security/identity-manager.hpp
new file mode 100644
index 0000000..9ed42ef
--- /dev/null
+++ b/ndn-cpp/security/identity-manager.hpp
@@ -0,0 +1,28 @@
+/**
+ * @author: Jeff Thompson
+ * See COPYING for copyright and distribution information.
+ */
+
+#ifndef NDN_IDENTITY_MANAGER_HPP
+#define NDN_IDENTITY_MANAGER_HPP
+
+#include "../data.hpp"
+
+namespace ndn {
+
+class IdentityManager {
+public:
+ /**
+ *
+ * Note: the caller must make sure the timestamp in data is correct, for example with
+ * data.getMetaInfo().setTimestampMilliseconds(time(NULL) * 1000.0).
+ * @param data The Data object to sign and update its signature.
+ * @param certificateName The Name identifying the certificate which identifies the signing key.
+ * @param wireFormat The WireFormat for calling encodeData, or WireFormat::getDefaultWireFormat() if omitted.
+ */
+ void signByCertificate(const Data& data, const Name& certificateName, WireFormat& wireFormat = *WireFormat::getDefaultWireFormat());
+};
+
+}
+
+#endif