diff --git a/auth_algo.cpp b/auth_algo.cpp
index b658d6a..55df86d 100644
--- a/auth_algo.cpp
+++ b/auth_algo.cpp
@@ -14,8 +14,8 @@
 
 const std::string userName = "admin";
 
-std::vector<uint8_t> AlgoSHA1::generateHMAC(
-        const std::vector<uint8_t>& input) const
+std::vector<uint8_t>
+    AlgoSHA1::generateHMAC(const std::vector<uint8_t>& input) const
 {
     std::vector<uint8_t> output(SHA_DIGEST_LENGTH);
     unsigned int mdLen = 0;
@@ -30,8 +30,8 @@
     return output;
 }
 
-std::vector<uint8_t> AlgoSHA1::generateICV(
-        const std::vector<uint8_t>& input) const
+std::vector<uint8_t>
+    AlgoSHA1::generateICV(const std::vector<uint8_t>& input) const
 {
     std::vector<uint8_t> output(SHA_DIGEST_LENGTH);
     unsigned int mdLen = 0;
@@ -47,8 +47,8 @@
     return output;
 }
 
-std::vector<uint8_t> AlgoSHA256::generateHMAC(
-        const std::vector<uint8_t>& input) const
+std::vector<uint8_t>
+    AlgoSHA256::generateHMAC(const std::vector<uint8_t>& input) const
 {
     std::vector<uint8_t> output(SHA256_DIGEST_LENGTH);
     unsigned int mdLen = 0;
@@ -63,15 +63,15 @@
     return output;
 }
 
-std::vector<uint8_t> AlgoSHA256::generateICV(
-        const std::vector<uint8_t>& input) const
+std::vector<uint8_t>
+    AlgoSHA256::generateICV(const std::vector<uint8_t>& input) const
 {
     std::vector<uint8_t> output(SHA256_DIGEST_LENGTH);
     unsigned int mdLen = 0;
 
-    if (HMAC(EVP_sha256(),
-             sessionIntegrityKey.data(), sessionIntegrityKey.size(),
-             input.data(), input.size(), output.data(), &mdLen) == NULL)
+    if (HMAC(EVP_sha256(), sessionIntegrityKey.data(),
+             sessionIntegrityKey.size(), input.data(), input.size(),
+             output.data(), &mdLen) == NULL)
     {
         std::cerr << "Generate HMAC_SHA256_128 Integrity Check Value failed\n";
         output.resize(0);
@@ -81,6 +81,6 @@
     return output;
 }
 
-} // namespace auth
+} // namespace rakp_auth
 
 } // namespace cipher
