diff --git a/image_manager.cpp b/image_manager.cpp
index 46f023a..385fee4 100644
--- a/image_manager.cpp
+++ b/image_manager.cpp
@@ -214,7 +214,7 @@
     {
         // Rename the temp dir to image dir
         fs::rename(tmpDirPath, imageDirPath, ec);
-        // Clear the path, so it does not attemp to remove a non-existing path
+        // Clear the path, so it does not attempt to remove a non-existing path
         tmpDirToRemove.path.clear();
 
         // Create Version object
diff --git a/image_verify.cpp b/image_verify.cpp
index 52ef3ef..4d874b4 100644
--- a/image_verify.cpp
+++ b/image_verify.cpp
@@ -226,7 +226,7 @@
         // Either BMC images or optional images shall be valid
         assert(valid || optionalImagesValid);
 
-        debug("Successfully completed Signature vaildation.");
+        debug("Successfully completed Signature validation.");
         return true;
     }
     catch (const InternalFailure& e)
diff --git a/image_verify.hpp b/image_verify.hpp
index fbea422..0675eaa 100644
--- a/image_verify.hpp
+++ b/image_verify.hpp
@@ -213,10 +213,10 @@
     /** @brief Path of public key and hash function files */
     fs::path signedConfPath;
 
-    /** @brief key type defined in mainfest file */
+    /** @brief key type defined in manifest file */
     Key_t keyType;
 
-    /** @brief Hash type defined in mainfest file */
+    /** @brief Hash type defined in manifest file */
     Hash_t hashType;
 
     /** @brief The image purpose */
@@ -230,7 +230,7 @@
      * @param[out] fileFound - Indicate if the file to verify is found or not
      *
      * @return true if all image files are found in BMC tarball and
-     * Verify Sucess false if one of image files is missing
+     * Verify Success false if one of image files is missing
      */
     bool checkAndVerifyImage(const std::string& filePath,
                              const std::string& publicKeyPath,
diff --git a/item_updater.hpp b/item_updater.hpp
index d4c5bdb..898b07c 100644
--- a/item_updater.hpp
+++ b/item_updater.hpp
@@ -201,7 +201,7 @@
     /** @brief Vector of needed BMC images in the tarball*/
     std::vector<std::string> imageUpdateList;
 
-    /** @breif The slot of running BMC image */
+    /** @brief The slot of running BMC image */
     uint32_t runningImageSlot = 0;
 
   private:
diff --git a/openssl_alloc.hpp b/openssl_alloc.hpp
index b872ad1..9c39a22 100644
--- a/openssl_alloc.hpp
+++ b/openssl_alloc.hpp
@@ -1,7 +1,7 @@
 #pragma once
 
 // With OpenSSL 1.1.0, some functions were deprecated. Need to abstract them
-// to make the code backward compatible with older OpenSSL veresions.
+// to make the code backward compatible with older OpenSSL versions.
 // Reference: https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes
 #if OPENSSL_VERSION_NUMBER < 0x10100000L
 
