diff --git a/image_verify.cpp b/image_verify.cpp
index 917128c..a599287 100644
--- a/image_verify.cpp
+++ b/image_verify.cpp
@@ -167,8 +167,8 @@
     for (const auto& keyType : keyTypes)
     {
         auto keyHashPair = getKeyHashFileNames(keyType);
-        auto keyValues =
-            Version::getValue(keyHashPair.first, {{hashFunctionTag, " "}});
+        auto keyValues = Version::getValue(keyHashPair.first,
+                                           {{hashFunctionTag, " "}});
         auto hashFunc = keyValues.at(hashFunctionTag);
 
         try
@@ -200,7 +200,6 @@
                            const std::filesystem::path& publicKey,
                            const std::string& hashFunc)
 {
-
     // Check existence of the files in the system.
     if (!(std::filesystem::exists(file) && std::filesystem::exists(sigFile)))
     {
@@ -301,7 +300,6 @@
 
 CustomMap Signature::mapFile(const std::filesystem::path& path, size_t size)
 {
-
     CustomFd fd(open(path.c_str(), O_RDONLY));
 
     return CustomMap(mmap(nullptr, size, PROT_READ, MAP_PRIVATE, fd(), 0),
