diff --git a/tools/ndnsec/cert-dump.cpp b/tools/ndnsec/cert-dump.cpp
index 8237f5d..0baf8df 100644
--- a/tools/ndnsec/cert-dump.cpp
+++ b/tools/ndnsec/cert-dump.cpp
@@ -23,9 +23,6 @@
 #include "util.hpp"
 
 #include <boost/asio/ip/tcp.hpp>
-#if BOOST_VERSION < 106700
-#include <boost/date_time/posix_time/posix_time_duration.hpp>
-#endif // BOOST_VERSION < 106700
 
 namespace ndn::ndnsec {
 
@@ -121,11 +118,7 @@
 
   if (isRepoOut) {
     boost::asio::ip::tcp::iostream requestStream;
-#if BOOST_VERSION >= 106700
     requestStream.expires_after(std::chrono::seconds(10));
-#else
-    requestStream.expires_from_now(boost::posix_time::seconds(10));
-#endif // BOOST_VERSION >= 106700
     requestStream.connect(repoHost, repoPort);
     if (!requestStream) {
       std::cerr << "ERROR: Failed to connect to repo instance" << std::endl;
diff --git a/tools/ndnsec/wscript b/tools/ndnsec/wscript
index 4ff1c5c..1b1f40b 100644
--- a/tools/ndnsec/wscript
+++ b/tools/ndnsec/wscript
@@ -1,18 +1,18 @@
 # -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 
-top = '../../'
+top = '../..'
 
 def build(bld):
-    bld.objects(target='tool-ndnsec-objects',
+    bld.objects(target='tools-ndnsec-objects',
                 source=bld.path.ant_glob('*.cpp', excl=['main.cpp']),
                 features='pch',
                 headers='ndnsec-pch.hpp',
                 use='BOOST_TOOLS ndn-cxx')
 
-    bld.program(name='tool-ndnsec',
-                target=top + 'bin/ndnsec',
+    bld.program(name='ndnsec',
+                target=f'{top}/bin/ndnsec',
                 source=['main.cpp'],
-                use='tool-ndnsec-objects')
+                use='tools-ndnsec-objects')
 
     # create convenience symlinks
     for cmd in ('list', 'get-default', 'set-default', 'delete',
diff --git a/tools/wscript b/tools/wscript
index 4f1d11a..93cabd7 100644
--- a/tools/wscript
+++ b/tools/wscript
@@ -1,7 +1,5 @@
 # -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 
-from waflib import Utils
-
 top = '..'
 
 def build(bld):
@@ -10,7 +8,7 @@
     # and is built as build/bin/foo. These tools cannot be unit-tested.
     for tool in bld.path.ant_glob('*.cpp'):
         name = tool.change_ext('').path_from(bld.path.get_bld())
-        bld.program(name=f'tool-{name}',
+        bld.program(name=name,
                     target=f'{top}/bin/{name}',
                     source=[tool],
                     use='ndn-cxx')
@@ -18,7 +16,7 @@
     # Sub-directory tools:
     # tools/foo/**/*.cpp are compiled and linked into build/bin/foo.
     # tools/foo/main.cpp must exist and must contain the main() function.
-    # All other objects are collected into 'tool-foo-objects' and can be unit-tested.
+    # All other objects are collected into 'tools-foo-objects' and can be unit-tested.
     for subdir in bld.path.ant_glob('*', dir=True, src=False):
         name = subdir.path_from(bld.path)
         subWscript = subdir.find_node('wscript')
@@ -35,11 +33,11 @@
         srcFiles = subdir.ant_glob('**/*.cpp', excl=['main.cpp'])
         srcObjects = ''
         if srcFiles:
-            srcObjects = f'tool-{name}-objects'
+            srcObjects = f'tools-{name}-objects'
             bld.objects(target=srcObjects,
                         source=srcFiles,
                         use='ndn-cxx')
-        bld.program(name=f'tool-{name}',
+        bld.program(name=name,
                     target=f'{top}/bin/{name}',
                     source=[mainFile],
-                    use='ndn-cxx ' + srcObjects)
+                    use=f'ndn-cxx {srcObjects}')
