Added support for ContentObject
diff --git a/ndn-cpp/Key.hpp b/ndn-cpp/Key.hpp
new file mode 100644
index 0000000..aa2f01b
--- /dev/null
+++ b/ndn-cpp/Key.hpp
@@ -0,0 +1,48 @@
+/**
+ * @author: Jeff Thompson
+ * See COPYING for copyright and distribution information.
+ */
+
+#ifndef NDN_KEY_HPP
+#define NDN_KEY_HPP
+
+#include <vector>
+#include "c/Key.h"
+
+namespace ndn {
+
+class KeyLocator {
+public:
+ KeyLocator()
+ {
+ type_ = (ndn_KeyLocatorType)-1;
+ }
+
+ /**
+ * Set the keyLocatorStruct to point to the values in this key locator, without copying any memory.
+ * WARNING: The resulting pointers in keyLocatorStruct are invalid after a further use of this object which could reallocate memory.
+ * @param keyLocatorStruct a C ndn_KeyLocator struct where the name components array is already allocated.
+ */
+ void get(struct ndn_KeyLocator &keyLocatorStruct) const;
+
+ /**
+ * Clear this key locator, and set the values by copying from the ndn_KeyLocator struct.
+ * @param keyLocatorStruct a C ndn_KeyLocator struct
+ */
+ void set(const struct ndn_KeyLocator &keyLocatorStruct);
+
+ ndn_KeyLocatorType getType() const { return type_; }
+
+ const std::vector<unsigned char> getKeyOrCertificate() const { return keyOrCertificate_; }
+
+ // TODO: Implement keyName.
+
+private:
+ ndn_KeyLocatorType type_;
+ std::vector<unsigned char> keyOrCertificate_; /**< used if type_ is ndn_KeyLocatorType_KEY or ndn_KeyLocatorType_CERTIFICATE */
+ // TODO: Implement keyName.
+};
+
+}
+
+#endif