add name assignment templates

Change-Id: Ia42d4431011b9eae1b5f888b07774cd170719008
diff --git a/src/name-assignments/assignment-hash.hpp b/src/name-assignments/assignment-hash.hpp
new file mode 100644
index 0000000..19b0618
--- /dev/null
+++ b/src/name-assignments/assignment-hash.hpp
@@ -0,0 +1,38 @@
+//
+// Created by Tyler on 10/6/20.
+//
+
+#ifndef NDNCERT_ASSIGNMENT_HASH_HPP
+#define NDNCERT_ASSIGNMENT_HASH_HPP
+
+#include "assignment-funcs.hpp"
+
+namespace ndn {
+namespace ndncert {
+
+/**
+ * assign names base on client probe parameter
+ */
+class AssignmentHash: public NameAssignmentFuncFactory{
+public:
+  AssignmentHash();
+
+  NameAssignmentFunc getFunction(const std::string &factoryParam) override;
+
+  class HashAssignmentFunc {
+  public:
+    HashAssignmentFunc(std::list<std::string> paramList);
+
+    std::vector<PartialName>
+    operator() (const std::vector<std::tuple<std::string, std::string>> params);
+  private:
+    std::list<std::string> m_paramList;
+  };
+
+};
+}
+}
+
+
+
+#endif //NDNCERT_ASSIGNMENT_HASH_HPP