diff --git a/src/ca-module.cpp b/src/ca-module.cpp
index dda6dc7..caba70d 100644
--- a/src/ca-module.cpp
+++ b/src/ca-module.cpp
@@ -482,5 +482,5 @@
   return result;
 }
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
diff --git a/src/ca-state.cpp b/src/ca-state.cpp
index b48f82d..426f96d 100644
--- a/src/ca-state.cpp
+++ b/src/ca-state.cpp
@@ -89,5 +89,5 @@
   return os;
 }
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
diff --git a/src/ca-state.hpp b/src/ca-state.hpp
index 7fc7de6..d74e680 100644
--- a/src/ca-state.hpp
+++ b/src/ca-state.hpp
@@ -72,7 +72,7 @@
 std::ostream&
 operator<<(std::ostream& os, const CaState& request);
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
 
-#endif  // NDNCERT_CA_STATE_HPP
+#endif // NDNCERT_CA_STATE_HPP
diff --git a/src/ca-storage/ca-sqlite.cpp b/src/ca-storage/ca-sqlite.cpp
index 594df46..d3f1183 100644
--- a/src/ca-storage/ca-sqlite.cpp
+++ b/src/ca-storage/ca-sqlite.cpp
@@ -284,5 +284,5 @@
   statement.step();
 }
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
diff --git a/src/configuration.cpp b/src/configuration.cpp
index 05c6e77..872204f 100644
--- a/src/configuration.cpp
+++ b/src/configuration.cpp
@@ -226,5 +226,5 @@
   m_caItems.push_back(profile);
 }
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
diff --git a/src/configuration.hpp b/src/configuration.hpp
index 44c7df9..9375758 100644
--- a/src/configuration.hpp
+++ b/src/configuration.hpp
@@ -172,7 +172,7 @@
   std::list<CaProfile> m_caItems;
 };
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
 
-#endif  // NDNCERT_CONFIGURATION_HPP
+#endif // NDNCERT_CONFIGURATION_HPP
diff --git a/src/crypto-support/crypto-helper.cpp b/src/crypto-support/crypto-helper.cpp
index 6cff255..e28da4c 100644
--- a/src/crypto-support/crypto-helper.cpp
+++ b/src/crypto-support/crypto-helper.cpp
@@ -381,5 +381,5 @@
   BOOST_THROW_EXCEPTION(CryptoError("Error in CRYPTO SUPPORT: " + errorInfo));
 }
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
diff --git a/src/crypto-support/crypto-helper.hpp b/src/crypto-support/crypto-helper.hpp
index 9ce7ce7..3af83af 100644
--- a/src/crypto-support/crypto-helper.hpp
+++ b/src/crypto-support/crypto-helper.hpp
@@ -60,10 +60,12 @@
 
   uint8_t*
   deriveSecret(const std::string& peerKeyStr);
+
   unique_ptr<ECDH_CTX> context;
 
-  PUBLIC_WITH_TESTS_ELSE_PRIVATE : uint8_t*
-                                   deriveSecret(const uint8_t* peerkey, int peerKeySize);
+PUBLIC_WITH_TESTS_ELSE_PRIVATE:
+  uint8_t*
+  deriveSecret(const uint8_t* peerkey, int peerKeySize);
 
   uint8_t*
   getRawSelfPubKey();
@@ -138,7 +140,7 @@
 void
 handleErrors(const std::string& errorInfo);
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
 
-#endif  // NDNCERT_CRYPTO_SUPPORT_CRYPTO_HELPER_HPP
+#endif // NDNCERT_CRYPTO_SUPPORT_CRYPTO_HELPER_HPP
diff --git a/src/crypto-support/enc-tlv.cpp b/src/crypto-support/enc-tlv.cpp
index aead782..68319c2 100644
--- a/src/crypto-support/enc-tlv.cpp
+++ b/src/crypto-support/enc-tlv.cpp
@@ -65,5 +65,5 @@
   return result;
 }
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
diff --git a/src/identity-challenge/challenge-credential.cpp b/src/identity-challenge/challenge-credential.cpp
index 0d171e4..e8cedf6 100644
--- a/src/identity-challenge/challenge-credential.cpp
+++ b/src/identity-challenge/challenge-credential.cpp
@@ -191,5 +191,5 @@
   return;
 }
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
diff --git a/src/identity-challenge/challenge-email.cpp b/src/identity-challenge/challenge-email.cpp
index a439807..4e2e249 100644
--- a/src/identity-challenge/challenge-email.cpp
+++ b/src/identity-challenge/challenge-email.cpp
@@ -170,5 +170,5 @@
   return;
 }
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
diff --git a/src/identity-challenge/challenge-module.hpp b/src/identity-challenge/challenge-module.hpp
index deed763..0f0d0b8 100644
--- a/src/identity-challenge/challenge-module.hpp
+++ b/src/identity-challenge/challenge-module.hpp
@@ -98,7 +98,7 @@
     }                                                                 \
   } g_NdnCert##C##ChallengeRegistrationVariable
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
 
-#endif  // NDNCERT_CHALLENGE_MODULE_HPP
+#endif // NDNCERT_CHALLENGE_MODULE_HPP
diff --git a/src/identity-challenge/challenge-pin.cpp b/src/identity-challenge/challenge-pin.cpp
index 8886b67..cd2c03e 100644
--- a/src/identity-challenge/challenge-pin.cpp
+++ b/src/identity-challenge/challenge-pin.cpp
@@ -124,5 +124,5 @@
   request.encode();
   return request;
 }
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
diff --git a/src/name-assignments/assignment-funcs.hpp b/src/name-assignments/assignment-funcs.hpp
index 39e1261..3f78955 100644
--- a/src/name-assignments/assignment-funcs.hpp
+++ b/src/name-assignments/assignment-funcs.hpp
@@ -77,7 +77,7 @@
     }                                                                             \
   } g_NdnCert##C##ChallengeRegistrationVariable
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
 
-#endif  // NDNCERT_ASSIGNMENT_FUNCS_HPP
+#endif // NDNCERT_ASSIGNMENT_FUNCS_HPP
diff --git a/src/name-assignments/assignment-hash.cpp b/src/name-assignments/assignment-hash.cpp
index 7af3bf8..8f0e641 100644
--- a/src/name-assignments/assignment-hash.cpp
+++ b/src/name-assignments/assignment-hash.cpp
@@ -51,5 +51,5 @@
   return resultList;
 }
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
diff --git a/src/name-assignments/assignment-param.cpp b/src/name-assignments/assignment-param.cpp
index cf54951..4ebe637 100644
--- a/src/name-assignments/assignment-param.cpp
+++ b/src/name-assignments/assignment-param.cpp
@@ -48,5 +48,5 @@
   return resultList;
 }
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
diff --git a/src/ndncert-common.cpp b/src/ndncert-common.cpp
index 3b4d564..76d45f6 100644
--- a/src/ndncert-common.cpp
+++ b/src/ndncert-common.cpp
@@ -97,5 +97,5 @@
   }
 }
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
diff --git a/src/ndncert-common.hpp b/src/ndncert-common.hpp
index cf2643f..cffef1a 100644
--- a/src/ndncert-common.hpp
+++ b/src/ndncert-common.hpp
@@ -179,7 +179,7 @@
 std::string
 requestTypeToString(RequestType type);
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
 
-#endif  // NDNCERT_NDNCERT_COMMON_HPP
+#endif // NDNCERT_NDNCERT_COMMON_HPP
diff --git a/src/protocol-detail/challenge.cpp b/src/protocol-detail/challenge.cpp
index aa0d884..3504115 100644
--- a/src/protocol-detail/challenge.cpp
+++ b/src/protocol-detail/challenge.cpp
@@ -59,5 +59,5 @@
   }
 }
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
diff --git a/src/protocol-detail/challenge.hpp b/src/protocol-detail/challenge.hpp
index 23a9d84..a506346 100644
--- a/src/protocol-detail/challenge.hpp
+++ b/src/protocol-detail/challenge.hpp
@@ -36,7 +36,7 @@
   decodeDataContent(const Block& data, RequesterState& state);
 };
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
 
 #endif // NDNCERT_PROTOCOL_DETAIL_HPP
\ No newline at end of file
diff --git a/src/protocol-detail/error.cpp b/src/protocol-detail/error.cpp
index dabfa6a..79dc535 100644
--- a/src/protocol-detail/error.cpp
+++ b/src/protocol-detail/error.cpp
@@ -44,5 +44,5 @@
   return std::make_tuple(error, readString(block.get(tlv_error_info)));
 }
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
diff --git a/src/protocol-detail/error.hpp b/src/protocol-detail/error.hpp
index 8a2cda0..bfda70c 100644
--- a/src/protocol-detail/error.hpp
+++ b/src/protocol-detail/error.hpp
@@ -41,7 +41,7 @@
   decodefromDataContent(const Block& block);
 };
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
 
 #endif // NDNCERT_PROTOCOL_ERROR_HPP
\ No newline at end of file
diff --git a/src/protocol-detail/info.cpp b/src/protocol-detail/info.cpp
index 822ea84..08a6997 100644
--- a/src/protocol-detail/info.cpp
+++ b/src/protocol-detail/info.cpp
@@ -77,5 +77,5 @@
   return result;
 }
 
-}  // namespace ndncert
-}  // namespace ndn
\ No newline at end of file
+} // namespace ndncert
+} // namespace ndn
\ No newline at end of file
diff --git a/src/protocol-detail/info.hpp b/src/protocol-detail/info.hpp
index d34c0a2..83214c9 100644
--- a/src/protocol-detail/info.hpp
+++ b/src/protocol-detail/info.hpp
@@ -41,7 +41,7 @@
   decodeDataContent(const Block& block);
 };
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
 
 #endif // NDNCERT_PROTOCOL_DETAIL_HPP
\ No newline at end of file
diff --git a/src/protocol-detail/new-renew-revoke.cpp b/src/protocol-detail/new-renew-revoke.cpp
index 3ce3ac0..2fecb4d 100644
--- a/src/protocol-detail/new-renew-revoke.cpp
+++ b/src/protocol-detail/new-renew-revoke.cpp
@@ -109,5 +109,5 @@
   return DecodedData{ecdhKey, saltInt, requestId, requestStatus, challenges};
 }
 
-}  // namespace ndncert
-}  // namespace ndn
\ No newline at end of file
+} // namespace ndncert
+} // namespace ndn
\ No newline at end of file
diff --git a/src/protocol-detail/new-renew-revoke.hpp b/src/protocol-detail/new-renew-revoke.hpp
index f9710b8..ee393b1 100644
--- a/src/protocol-detail/new-renew-revoke.hpp
+++ b/src/protocol-detail/new-renew-revoke.hpp
@@ -49,7 +49,7 @@
   decodeDataContent(const Block& content);
 };
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
 
 #endif // NDNCERT_PROTOCOL_DETAIL_NEW_RENEW_REVOKE_HPP
\ No newline at end of file
diff --git a/src/protocol-detail/probe.cpp b/src/protocol-detail/probe.cpp
index 8132e28..517a15e 100644
--- a/src/protocol-detail/probe.cpp
+++ b/src/protocol-detail/probe.cpp
@@ -102,5 +102,5 @@
   }
 }
 
-}  // namespace ndncert
-}  // namespace ndn
\ No newline at end of file
+} // namespace ndncert
+} // namespace ndn
\ No newline at end of file
diff --git a/src/protocol-detail/probe.hpp b/src/protocol-detail/probe.hpp
index e6ff022..c973c07 100644
--- a/src/protocol-detail/probe.hpp
+++ b/src/protocol-detail/probe.hpp
@@ -46,7 +46,7 @@
   decodeApplicationParameters(const Block& block);
 };
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
 
-#endif  // NDNCERT_PROTOCOL_DETAIL_HPP
\ No newline at end of file
+#endif // NDNCERT_PROTOCOL_DETAIL_HPP
\ No newline at end of file
diff --git a/src/requester-state.cpp b/src/requester-state.cpp
index f6ab099..4cb448b 100644
--- a/src/requester-state.cpp
+++ b/src/requester-state.cpp
@@ -30,5 +30,5 @@
 {
 }
 
-}  // namespace ndncert
-}  // namespace ndn
\ No newline at end of file
+} // namespace ndncert
+} // namespace ndn
\ No newline at end of file
diff --git a/src/requester-state.hpp b/src/requester-state.hpp
index 5d87ea3..06126c1 100644
--- a/src/requester-state.hpp
+++ b/src/requester-state.hpp
@@ -97,7 +97,7 @@
   bool m_isNewlyCreatedKey = false;
 };
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
 
-#endif  // NDNCERT_REQUESTER_STATE_HPP
+#endif // NDNCERT_REQUESTER_STATE_HPP
diff --git a/src/requester.cpp b/src/requester.cpp
index 39a265f..4cb4135 100644
--- a/src/requester.cpp
+++ b/src/requester.cpp
@@ -320,5 +320,5 @@
                                            " and Error Info: " + std::get<1>(errorInfo)));
 }
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
diff --git a/tests/test-common.hpp b/tests/test-common.hpp
index 7039e83..23e8617 100644
--- a/tests/test-common.hpp
+++ b/tests/test-common.hpp
@@ -37,4 +37,4 @@
 #include "identity-management-fixture.hpp"
 #include "unit-test-time-fixture.hpp"
 
-#endif  // NDNCERT_TESTS_COMMON_HPP
+#endif // NDNCERT_TESTS_COMMON_HPP
diff --git a/tests/unit-tests/bench.t.cpp b/tests/unit-tests/bench.t.cpp
index 709a0bc..d71940a 100644
--- a/tests/unit-tests/bench.t.cpp
+++ b/tests/unit-tests/bench.t.cpp
@@ -170,6 +170,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()  // TestCaConfig
 
-}  // namespace tests
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace tests
+} // namespace ndncert
+} // namespace ndn
diff --git a/tests/unit-tests/ca-memory.t.cpp b/tests/unit-tests/ca-memory.t.cpp
index 77a47e8..80ee5b0 100644
--- a/tests/unit-tests/ca-memory.t.cpp
+++ b/tests/unit-tests/ca-memory.t.cpp
@@ -76,6 +76,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()  // TestCaModule
 
-}  // namespace tests
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace tests
+} // namespace ndncert
+} // namespace ndn
diff --git a/tests/unit-tests/ca-module.t.cpp b/tests/unit-tests/ca-module.t.cpp
index e848aca..f429b2f 100644
--- a/tests/unit-tests/ca-module.t.cpp
+++ b/tests/unit-tests/ca-module.t.cpp
@@ -550,6 +550,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()  // TestCaModule
 
-}  // namespace tests
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace tests
+} // namespace ndncert
+} // namespace ndn
diff --git a/tests/unit-tests/challenge-credential.t.cpp b/tests/unit-tests/challenge-credential.t.cpp
index 46c5928..aeb7b7e 100644
--- a/tests/unit-tests/challenge-credential.t.cpp
+++ b/tests/unit-tests/challenge-credential.t.cpp
@@ -79,6 +79,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
-}  // namespace tests
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace tests
+} // namespace ndncert
+} // namespace ndn
diff --git a/tests/unit-tests/challenge-email.t.cpp b/tests/unit-tests/challenge-email.t.cpp
index 137c5d8..65e5b84 100644
--- a/tests/unit-tests/challenge-email.t.cpp
+++ b/tests/unit-tests/challenge-email.t.cpp
@@ -155,6 +155,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
-}  // namespace tests
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace tests
+} // namespace ndncert
+} // namespace ndn
diff --git a/tests/unit-tests/configuration.t.cpp b/tests/unit-tests/configuration.t.cpp
index c3fdacf..a1fa54f 100644
--- a/tests/unit-tests/configuration.t.cpp
+++ b/tests/unit-tests/configuration.t.cpp
@@ -148,6 +148,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()  // TestCaConfig
 
-}  // namespace tests
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace tests
+} // namespace ndncert
+} // namespace ndn
diff --git a/tests/unit-tests/enc-tlv.t.cpp b/tests/unit-tests/enc-tlv.t.cpp
index 99c5fbe..444c387 100644
--- a/tests/unit-tests/enc-tlv.t.cpp
+++ b/tests/unit-tests/enc-tlv.t.cpp
@@ -42,6 +42,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
-}  // namespace tests
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace tests
+} // namespace ndncert
+} // namespace ndn
diff --git a/tests/unit-tests/name-assignment.t.cpp b/tests/unit-tests/name-assignment.t.cpp
index 8c690f5..a46d696 100644
--- a/tests/unit-tests/name-assignment.t.cpp
+++ b/tests/unit-tests/name-assignment.t.cpp
@@ -70,8 +70,8 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
-}  // namespace tests
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace tests
+} // namespace ndncert
+} // namespace ndn
 
 
diff --git a/tests/unit-tests/protocol-detail.t.cpp b/tests/unit-tests/protocol-detail.t.cpp
index 38084a2..a10b54b 100644
--- a/tests/unit-tests/protocol-detail.t.cpp
+++ b/tests/unit-tests/protocol-detail.t.cpp
@@ -72,6 +72,6 @@
 
 BOOST_AUTO_TEST_SUITE_END() // TestProtocolDetail
 
-}  // namespace tests
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace tests
+} // namespace ndncert
+} // namespace ndn
diff --git a/tools/ndncert-ca-server.cpp b/tools/ndncert-ca-server.cpp
index 470aa39..90b26e5 100644
--- a/tools/ndncert-ca-server.cpp
+++ b/tools/ndncert-ca-server.cpp
@@ -148,8 +148,8 @@
   return 0;
 }
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
 
 int
 main(int argc, char* argv[])
diff --git a/tools/ndncert-client.cpp b/tools/ndncert-client.cpp
index 50af81e..d77d65e 100644
--- a/tools/ndncert-client.cpp
+++ b/tools/ndncert-client.cpp
@@ -481,8 +481,8 @@
   return 0;
 }
 
-}  // namespace ndncert
-}  // namespace ndn
+} // namespace ndncert
+} // namespace ndn
 
 int
 main(int argc, char* argv[])
