blob: fd9df2be51620d1f4361b87f2dc95a49aaa0f095 [file] [log] [blame]
Jeff Thompson5cae5e52013-07-10 19:41:20 -07001/**
2 * @author: Jeff Thompson
3 * See COPYING for copyright and distribution information.
4 */
5
6#ifndef NDN_KEY_HPP
7#define NDN_KEY_HPP
8
9#include <vector>
Jeff Thompson53412192013-08-06 13:35:50 -070010#include "c/key.h"
Jeff Thompson5cae5e52013-07-10 19:41:20 -070011
12namespace ndn {
13
14class KeyLocator {
15public:
16 KeyLocator()
17 {
18 type_ = (ndn_KeyLocatorType)-1;
19 }
20
21 /**
22 * Set the keyLocatorStruct to point to the values in this key locator, without copying any memory.
23 * WARNING: The resulting pointers in keyLocatorStruct are invalid after a further use of this object which could reallocate memory.
24 * @param keyLocatorStruct a C ndn_KeyLocator struct where the name components array is already allocated.
25 */
26 void get(struct ndn_KeyLocator &keyLocatorStruct) const;
27
28 /**
29 * Clear this key locator, and set the values by copying from the ndn_KeyLocator struct.
30 * @param keyLocatorStruct a C ndn_KeyLocator struct
31 */
32 void set(const struct ndn_KeyLocator &keyLocatorStruct);
33
34 ndn_KeyLocatorType getType() const { return type_; }
35
36 const std::vector<unsigned char> getKeyOrCertificate() const { return keyOrCertificate_; }
37
38 // TODO: Implement keyName.
39
40private:
41 ndn_KeyLocatorType type_;
42 std::vector<unsigned char> keyOrCertificate_; /**< used if type_ is ndn_KeyLocatorType_KEY or ndn_KeyLocatorType_CERTIFICATE */
43 // TODO: Implement keyName.
44};
45
46}
47
48#endif