diff --git a/src/node.cpp b/src/node.cpp
index 3234f18..1ae1d3b 100644
--- a/src/node.cpp
+++ b/src/node.cpp
@@ -13,11 +13,15 @@
 #include <ndn-cpp/node.hpp>
 
 #include "util/ndnd-id-fetcher.hpp"
-#include "security/signature/signature-sha256-with-rsa.hpp"
 
-#include "status-response.hpp"
+#include <ndn-cpp/security/signature/signature-sha256-with-rsa.hpp>
+#include <ndn-cpp/status-response.hpp>
 
 using namespace std;
+#if NDN_CPP_HAVE_CXX11
+// In the std library, the placeholders are in a different namespace than boost.
+using namespace ndn::func_lib::placeholders;
+#endif
 
 namespace ndn {
 
diff --git a/src/security/certificate/certificate.cpp b/src/security/certificate/certificate.cpp
index 7a70cdc..414785d 100644
--- a/src/security/certificate/certificate.cpp
+++ b/src/security/certificate/certificate.cpp
@@ -8,7 +8,7 @@
 
 #include <ndn-cpp/common.hpp>
 
-#include "certificate.hpp"
+#include <ndn-cpp/security/certificate/certificate.hpp>
 
 #if NDN_CPP_USE_SYSTEM_BOOST
 #include <boost/iostreams/stream.hpp>
diff --git a/src/security/certificate/public-key.cpp b/src/security/certificate/public-key.cpp
index 131e3c1..205dcd2 100644
--- a/src/security/certificate/public-key.cpp
+++ b/src/security/certificate/public-key.cpp
@@ -7,8 +7,7 @@
  */
 
 #include <ndn-cpp/common.hpp>
-
-#include "public-key.hpp"
+#include <ndn-cpp/security/certificate/public-key.hpp>
 
 #if NDN_CPP_USE_SYSTEM_BOOST
 #include <boost/iostreams/stream.hpp>
diff --git a/src/security/identity/basic-identity-storage.cpp b/src/security/identity/basic-identity-storage.cpp
index da0e991..7a31c25 100644
--- a/src/security/identity/basic-identity-storage.cpp
+++ b/src/security/identity/basic-identity-storage.cpp
@@ -19,7 +19,7 @@
 #include "ndn-cpp/data.hpp"
 #include <ndn-cpp/security/certificate/identity-certificate.hpp>
 #include "../../c/util/time.h"
-#include <ndn-cpp/signature/signature-sha256-with-rsa.hpp>
+#include <ndn-cpp/security/signature/signature-sha256-with-rsa.hpp>
 
 
 INIT_LOGGER("BasicIdentityStorage");
diff --git a/src/security/identity/identity-manager.cpp b/src/security/identity/identity-manager.cpp
index 0c57212..44f0d0b 100644
--- a/src/security/identity/identity-manager.cpp
+++ b/src/security/identity/identity-manager.cpp
@@ -21,8 +21,8 @@
 #include "../../util/logging.hpp"
 #include "../../c/util/time.h"
 #include <ndn-cpp/security/identity/identity-manager.hpp>
-#include "../certificate/identity-certificate.hpp"
-#include "../signature/signature-sha256-with-rsa.hpp"
+#include <ndn-cpp/security/certificate/identity-certificate.hpp>
+#include <ndn-cpp/security/signature/signature-sha256-with-rsa.hpp>
 
 INIT_LOGGER("ndn.security.IdentityManager")
 
diff --git a/src/security/identity/memory-identity-storage.cpp b/src/security/identity/memory-identity-storage.cpp
index 117ca35..81881a8 100644
--- a/src/security/identity/memory-identity-storage.cpp
+++ b/src/security/identity/memory-identity-storage.cpp
@@ -5,7 +5,7 @@
  * See COPYING for copyright and distribution information.
  */
 
-#include "memory-identity-storage.hpp"
+#include <ndn-cpp/security/identity/memory-identity-storage.hpp>
 
 #include <algorithm>
 #include <ndn-cpp/security/certificate/identity-certificate.hpp>
diff --git a/src/security/identity/memory-private-key-storage.cpp b/src/security/identity/memory-private-key-storage.cpp
index 1394126..e1442be 100644
--- a/src/security/identity/memory-private-key-storage.cpp
+++ b/src/security/identity/memory-private-key-storage.cpp
@@ -5,8 +5,8 @@
  * See COPYING for copyright and distribution information.
  */
 
-#include "memory-private-key-storage.hpp"
-#include "../certificate/public-key.hpp"
+#include <ndn-cpp/security/identity/memory-private-key-storage.hpp>
+#include <ndn-cpp/security/certificate/public-key.hpp>
 #include <openssl/ssl.h>
 #include <openssl/sha.h>
 #include <openssl/rsa.h>
diff --git a/src/security/identity/osx-private-key-storage.cpp b/src/security/identity/osx-private-key-storage.cpp
index fec7671..adf3542 100644
--- a/src/security/identity/osx-private-key-storage.cpp
+++ b/src/security/identity/osx-private-key-storage.cpp
@@ -13,8 +13,9 @@
 #include <sstream>
 
 #include "../../util/logging.hpp"
-#include "osx-private-key-storage.hpp"
-#include "../certificate/public-key.hpp"
+
+#include <ndn-cpp/security/identity/osx-private-key-storage.hpp>
+#include <ndn-cpp/security/certificate/public-key.hpp>
 
 #include <CoreFoundation/CoreFoundation.h>
 #include <Security/Security.h>
diff --git a/src/security/key-chain.cpp b/src/security/key-chain.cpp
index 47db4c1..ee56f8c 100644
--- a/src/security/key-chain.cpp
+++ b/src/security/key-chain.cpp
@@ -10,12 +10,12 @@
 
 #include <ndn-cpp/security/policy/policy-manager.hpp>
 
-#include "identity/basic-identity-storage.hpp"
+#include <ndn-cpp/security/identity/basic-identity-storage.hpp>
 
 
 using namespace std;
 using namespace ndn::func_lib;
-#if NDN_CPP_HAVE_STD_FUNCTION
+#if NDN_CPP_HAVE_CXX11
 // In the std library, the placeholders are in a different namespace than boost.
 using namespace ndn::func_lib::placeholders;
 #endif
diff --git a/src/security/security-exception.cpp b/src/security/security-exception.cpp
deleted file mode 100644
index b4acfad..0000000
--- a/src/security/security-exception.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-/* -*- 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 <ndn-cpp/security/security-exception.hpp>
-using namespace std;
-
-namespace ndn {
-
-SecurityException::SecurityException(const string& errorMessage) throw()
-: errorMessage_(errorMessage)
-{
-}
-
-SecurityException::~SecurityException() throw()
-{
-}
-
-}
diff --git a/src/security/signature/sha256-with-rsa-handler.cpp b/src/security/signature/sha256-with-rsa-handler.cpp
deleted file mode 100644
index 1da748e..0000000
--- a/src/security/signature/sha256-with-rsa-handler.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/* -*- 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.
- */
-
-#include "../../c/util/crypto.h"
-#include <ndn-cpp/sha256-with-rsa-signature.hpp>
-#include <ndn-cpp/security/security-exception.hpp>
-#include <ndn-cpp/security/signature/sha256-with-rsa-handler.hpp>
-
-using namespace std;
-
-namespace ndn {
-
-bool
-Sha256WithRsaHandler::verifySignature(const Data& data, const PublicKey& publicKey)
-{
-  const Sha256WithRsaSignature *signature = dynamic_cast<const Sha256WithRsaSignature*>(data.getSignature());
-  if (!signature)
-    throw SecurityException("signature is not Sha256WithRsaSignature.");
-  
-  // Set the data packet's default wire encoding if it is not already there.
-  if (signature->getDigestAlgorithm().size() != 0)
-    // TODO: Allow a non-default digest algorithm.
-    throw UnrecognizedDigestAlgorithmException("Cannot verify a data packet with a non-default digest algorithm.");
-  if (!data.getDefaultWireEncoding())
-    data.wireEncode();
-  
-  // Set signedPortionDigest to the digest of the signed portion of the wire encoding.
-  uint8_t signedPortionDigest[SHA256_DIGEST_LENGTH];
-  ndn_digestSha256(data.getDefaultWireEncoding().signedBuf(), data.getDefaultWireEncoding().signedSize(), signedPortionDigest);
-  
-  // Verify the signedPortionDigest.
-  // Use a temporary pointer since d2i updates it.
-  const uint8_t *derPointer = publicKey.getKeyDer().buf();
-  RSA *rsaPublicKey = d2i_RSA_PUBKEY(NULL, &derPointer, publicKey.getKeyDer().size());
-  if (!rsaPublicKey)
-    throw UnrecognizedKeyFormatException("Error decoding public key in d2i_RSAPublicKey");
-  int success = RSA_verify
-    (NID_sha256, signedPortionDigest, sizeof(signedPortionDigest), (uint8_t *)signature->getSignature().buf(),
-     signature->getSignature().size(), rsaPublicKey);
-  // Free the public key before checking for success.
-  RSA_free(rsaPublicKey);
-  
-  // RSA_verify returns 1 for a valid signature.
-  return (success == 1);
-}
-
-}
