diff --git a/ndn-cpp/security/policy/no-verify-policy-manager.cpp b/ndn-cpp/security/policy/no-verify-policy-manager.cpp
new file mode 100644
index 0000000..172845e
--- /dev/null
+++ b/ndn-cpp/security/policy/no-verify-policy-manager.cpp
@@ -0,0 +1,52 @@
+/* -*- 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>
+ * @author: Jeff Thompson <jefft0@remap.ucla.edu>
+ * See COPYING for copyright and distribution information.
+ */
+
+#include "no-verify-policy-manager.hpp"
+
+using namespace std;
+using namespace ndn::ptr_lib;
+
+namespace ndn {
+
+NoVerifyPolicyManager::~NoVerifyPolicyManager()
+{
+}
+
+bool 
+NoVerifyPolicyManager::skipVerifyAndTrust(const Data& data)
+{ 
+  return true; 
+}
+
+bool
+NoVerifyPolicyManager::requireVerify(const Data& data)
+{ 
+  return false; 
+}
+    
+shared_ptr<ValidationRequest>
+NoVerifyPolicyManager::checkVerificationPolicy
+  (const shared_ptr<Data>& data, const int& stepCount, const OnVerified& onVerified, const OnVerifyFailed& onVerifyFailed)
+{ 
+  onVerified(data); 
+  return shared_ptr<ValidationRequest>();
+}
+
+bool 
+NoVerifyPolicyManager::checkSigningPolicy(const Name& dataName, const Name& certificateName)
+{ 
+  return true; 
+}
+
+Name 
+NoVerifyPolicyManager::inferSigningIdentity(const Name& dataName)
+{ 
+  return Name(); 
+}
+
+}
