security: Add interface to request different key id generation
The option for key id include timestamp, random, and user-specified
value.
This commit only adds the interface, the support to honor the interface
will be implemented later.
Change-Id: I476381ff0fc56cd7906392cb7482b7458e386781
Refs: #2948
diff --git a/src/security/security-common.hpp b/src/security/security-common.hpp
index bd709f5..ef9a42b 100644
--- a/src/security/security-common.hpp
+++ b/src/security/security-common.hpp
@@ -47,6 +47,33 @@
} // namespace signed_interest
+/**
+ * @brief The type of KeyId component in a key name
+ */
+enum class KeyIdType {
+ /**
+ * @brief User-specified key ID
+ *
+ * It is user's responsibility to assure the uniqueness of the key names.
+ */
+ USER_SPECIFIED = 0,
+ /**
+ * @brief Use the SHA256 hash of the public key as the key id
+ *
+ * This KeyId type guarantees the uniqueness of the key names.
+ */
+ SHA256 = 1,
+ /**
+ * @brief Use a 64-bit random number as the key id
+ *
+ * This KeyId provides roughly uniqueness of the key names.
+ */
+ RANDOM = 2
+};
+
+std::ostream&
+operator<<(std::ostream& os, KeyIdType keyIdType);
+
enum class KeyType {
NONE = 0,
RSA = 1,