diff --git a/src/net/detail/network-monitor-impl-osx.cpp b/src/net/detail/network-monitor-impl-osx.cpp
index b2129b5..57eceeb 100644
--- a/src/net/detail/network-monitor-impl-osx.cpp
+++ b/src/net/detail/network-monitor-impl-osx.cpp
@@ -68,6 +68,8 @@
 namespace ndn {
 namespace net {
 
+using util::CFReleaser;
+
 NDN_LOG_INIT(ndn.NetworkMonitor);
 
 NetworkMonitorImplOsx::NetworkMonitorImplOsx(boost::asio::io_service& io)
diff --git a/src/net/detail/network-monitor-impl-osx.hpp b/src/net/detail/network-monitor-impl-osx.hpp
index d1ce8f2..8de354c 100644
--- a/src/net/detail/network-monitor-impl-osx.hpp
+++ b/src/net/detail/network-monitor-impl-osx.hpp
@@ -29,7 +29,7 @@
 #error "This file should not be compiled ..."
 #endif
 
-#include "../../security/tpm/helper-osx.hpp"
+#include "../../util/cf-releaser-osx.hpp"
 #include "../../util/scheduler.hpp"
 #include "../../util/scheduler-scoped-event-id.hpp"
 
@@ -110,8 +110,8 @@
   util::scheduler::ScopedEventId m_cfLoopEvent;
 
   SCDynamicStoreContext m_context;
-  CFReleaser<SCDynamicStoreRef> m_scStore;
-  CFReleaser<CFRunLoopSourceRef> m_loopSource;
+  util::CFReleaser<SCDynamicStoreRef> m_scStore;
+  util::CFReleaser<CFRunLoopSourceRef> m_loopSource;
 
   boost::asio::ip::udp::socket m_nullUdpSocket;
 };
diff --git a/src/security/tpm/back-end-osx.cpp b/src/security/tpm/back-end-osx.cpp
index 7f1aed1..53c2295 100644
--- a/src/security/tpm/back-end-osx.cpp
+++ b/src/security/tpm/back-end-osx.cpp
@@ -21,7 +21,6 @@
 
 #include "back-end-osx.hpp"
 #include "key-handle-osx.hpp"
-#include "helper-osx.hpp"
 #include "../transform/private-key.hpp"
 #include "tpm.hpp"
 
@@ -34,6 +33,8 @@
 namespace security {
 namespace tpm {
 
+using util::CFReleaser;
+
 class BackEndOsx::Impl
 {
 public:
diff --git a/src/security/tpm/back-end-osx.hpp b/src/security/tpm/back-end-osx.hpp
index 8759ef4..1a644d9 100644
--- a/src/security/tpm/back-end-osx.hpp
+++ b/src/security/tpm/back-end-osx.hpp
@@ -23,7 +23,7 @@
 #define NDN_SECURITY_TPM_BACK_END_OSX_HPP
 
 #include "back-end.hpp"
-#include "helper-osx.hpp"
+#include "key-ref-osx.hpp"
 
 #ifndef NDN_CXX_HAVE_OSX_FRAMEWORKS
 #error "This file should not be compiled ..."
diff --git a/src/security/tpm/key-handle-osx.hpp b/src/security/tpm/key-handle-osx.hpp
index 669d7bd..c1b338f 100644
--- a/src/security/tpm/key-handle-osx.hpp
+++ b/src/security/tpm/key-handle-osx.hpp
@@ -23,7 +23,7 @@
 #define NDN_SECURITY_TPM_KEY_HANDLE_OSX_HPP
 
 #include "key-handle.hpp"
-#include "helper-osx.hpp"
+#include "key-ref-osx.hpp"
 
 #ifndef NDN_CXX_HAVE_OSX_FRAMEWORKS
 #error "This file should not be compiled ..."
diff --git a/src/security/tpm/key-ref-osx.hpp b/src/security/tpm/key-ref-osx.hpp
new file mode 100644
index 0000000..02ed524
--- /dev/null
+++ b/src/security/tpm/key-ref-osx.hpp
@@ -0,0 +1,38 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2013-2017 Regents of the University of California.
+ *
+ * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
+ *
+ * ndn-cxx library is free software: you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ *
+ * You should have received copies of the GNU General Public License and GNU Lesser
+ * General Public License along with ndn-cxx, e.g., in COPYING.md file.  If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
+ */
+
+#ifndef NDN_SECURITY_TPM_KEY_REF_OSX_HPP
+#define NDN_SECURITY_TPM_KEY_REF_OSX_HPP
+
+#include "../../util/cf-releaser-osx.hpp"
+#include <Security/Security.h>
+
+namespace ndn {
+namespace security {
+namespace tpm {
+
+using KeyRefOsx = util::CFReleaser<SecKeyRef>;
+
+} // namespace tpm
+} // namespace security
+} // namespace ndn
+
+#endif // NDN_SECURITY_TPM_KEY_REF_OSX_HPP
diff --git a/src/security/tpm/helper-osx.hpp b/src/util/cf-releaser-osx.hpp
similarity index 87%
rename from src/security/tpm/helper-osx.hpp
rename to src/util/cf-releaser-osx.hpp
index 9271e68..61afeba 100644
--- a/src/security/tpm/helper-osx.hpp
+++ b/src/util/cf-releaser-osx.hpp
@@ -19,19 +19,19 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#ifndef NDN_SECURITY_TPM_HELPER_OSX_HPP
-#define NDN_SECURITY_TPM_HELPER_OSX_HPP
+#ifndef NDN_UTIL_CF_RELEASER_OSX_HPP
+#define NDN_UTIL_CF_RELEASER_OSX_HPP
 
-#include "../../common.hpp"
+#include "../common.hpp"
 
 #ifndef NDN_CXX_HAVE_OSX_FRAMEWORKS
 #error "This file should not be included ..."
 #endif
 
 #include <CoreFoundation/CoreFoundation.h>
-#include <Security/Security.h>
 
 namespace ndn {
+namespace util {
 
 /**
  * @brief Helper class to wrap CoreFoundation object pointers
@@ -41,6 +41,9 @@
  *
  * Original implementation by Christopher Hunt and it was borrowed from
  * http://www.cocoabuilder.com/archive/cocoa/130776-auto-cfrelease-and.html
+ *
+ * @note The filename cf-releaser-osx.hpp is an intentional violation of code-style rule 2.1.
+ *       Having '-osx' suffix is necessary to prevent installation on non-macOS platforms.
  */
 template<class T>
 class CFReleaser
@@ -109,9 +112,7 @@
     return m_typeRef != nullptr;
   }
 
-  ///////////////////
-  // Miscellaneous //
-
+public: // Miscellaneous
   void
   retain(const T& typeRef)
   {
@@ -143,14 +144,7 @@
   T m_typeRef;
 };
 
-namespace security {
-namespace tpm {
-
-using KeyRefOsx = CFReleaser<SecKeyRef>;
-
-} // namespace tpm
-} // namespace security
-
+} // namespace util
 } // namespace ndn
 
-#endif // NDN_SECURITY_TPM_HELPER_OSX_HPP
+#endif // NDN_UTIL_CF_RELEASER_OSX_HPP
