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
