security: Adding SecPolicyRegex and related rules
Change-Id: Ia9c709e849c405ed57f622b8afc442ce808991fb
diff --git a/src/security/sec-rule.hpp b/src/security/sec-rule.hpp
new file mode 100644
index 0000000..1e2dbd0
--- /dev/null
+++ b/src/security/sec-rule.hpp
@@ -0,0 +1,56 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/**
+ * Copyright (C) 2013 Regents of the University of California.
+ * @author: Yingdi Yu <yingdi@cs.ucla.edu>
+ * See COPYING for copyright and distribution information.
+ */
+
+#ifndef NDN_SEC_RULE_HPP
+#define NDN_SEC_RULE_HPP
+
+#include "../data.hpp"
+
+namespace ndn
+{
+
+class SecRule
+{
+public:
+ struct Error : public std::runtime_error { Error(const std::string &what) : std::runtime_error(what) {} };
+
+ SecRule(bool isPositive)
+ : m_isPositive(isPositive)
+ {}
+
+ virtual
+ ~SecRule()
+ {}
+
+ virtual bool
+ matchDataName(const Data& data) = 0;
+
+ virtual bool
+ matchSignerName(const Data& data) = 0;
+
+ virtual bool
+ satisfy(const Data& data) = 0;
+
+ virtual bool
+ satisfy(const Name& dataName, const Name& signerName) = 0;
+
+ inline bool
+ isPositive();
+
+protected:
+ bool m_isPositive;
+};
+
+bool
+SecRule::isPositive()
+{
+ return m_isPositive;
+}
+
+}
+
+#endif