diff --git a/src/util/crypto.hpp b/src/util/crypto.hpp
deleted file mode 100644
index 281e2f2..0000000
--- a/src/util/crypto.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- 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_UTIL_CRYPTO_HPP
-#define NDN_UTIL_CRYPTO_HPP
-
-/**
- * @file
- * @deprecated use <ndn-cxx/util/digest.hpp>
- */
-
-#include "digest.hpp"
-
-namespace ndn {
-namespace crypto {
-
-/**
- * @brief number of octets in a SHA256 digest
- * @deprecated use ndn::util::Sha256::DIGEST_SIZE
- */
-DEPRECATED(const size_t SHA256_DIGEST_SIZE) = util::Sha256::DIGEST_SIZE;
-
-/**
- * @brief Compute the SHA-256 digest of data.
- *
- * @param data Pointer to the input byte array.
- * @param dataLength The length of data.
- * @return A pointer to a buffer of SHA256_DIGEST_SIZE bytes.
- *
- * @deprecated use ndn::util::Sha256::computeDigest()
- */
-DEPRECATED()
-inline ConstBufferPtr
-computeSha256Digest(const uint8_t* data, size_t dataLength)
-{
-  return util::Sha256::computeDigest(data, dataLength);
-}
-
-} // namespace crypto
-} // namespace ndn
-
-#endif // NDN_UTIL_CRYPTO_HPP
diff --git a/src/util/digest.cpp b/src/util/sha256.cpp
similarity index 99%
rename from src/util/digest.cpp
rename to src/util/sha256.cpp
index 8053fdb..7aeea64 100644
--- a/src/util/digest.cpp
+++ b/src/util/sha256.cpp
@@ -19,7 +19,7 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#include "digest.hpp"
+#include "sha256.hpp"
 #include "string-helper.hpp"
 #include "../security/detail/openssl.hpp"
 #include "../security/transform/digest-filter.hpp"
diff --git a/src/util/digest.hpp b/src/util/sha256.hpp
similarity index 97%
rename from src/util/digest.hpp
rename to src/util/sha256.hpp
index 12dbd96..d729e90 100644
--- a/src/util/digest.hpp
+++ b/src/util/sha256.hpp
@@ -19,8 +19,8 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#ifndef NDN_UTIL_DIGEST_HPP
-#define NDN_UTIL_DIGEST_HPP
+#ifndef NDN_UTIL_SHA256_HPP
+#define NDN_UTIL_SHA256_HPP
 
 #include "../encoding/block.hpp"
 #include "../encoding/buffer-stream.hpp"
@@ -181,4 +181,4 @@
 } // namespace util
 } // namespace ndn
 
-#endif // NDN_UTIL_DIGEST_HPP
+#endif // NDN_UTIL_SHA256_HPP
