Clean up: Function abstraction in password file
Abstracted verifyPassword function in password source file
to make it more readable by creating a new function named
verifyIntegrityCheck.
Tested:
No oob-bios functionality impact.
Change-Id: Id500b824f8d99b28c580ceb244f4a0114060e57e
Signed-off-by: Smriti-Ayushi <smriti.ayushi@linux.intel.com>
diff --git a/src/password.cpp b/src/password.cpp
index 724b98f..d942d85 100644
--- a/src/password.cpp
+++ b/src/password.cpp
@@ -81,6 +81,26 @@
return false;
}
+bool Password::verifyIntegrityCheck(std::string& newPassword,
+ std::array<uint8_t, maxSeedSize>& seed,
+ unsigned int mdLen,
+ const EVP_MD* digestFunc)
+{
+ mNewPwdHash.fill(0);
+
+ if (!PKCS5_PBKDF2_HMAC(reinterpret_cast<const char*>(newPassword.c_str()),
+ newPassword.length() + 1,
+ reinterpret_cast<const unsigned char*>(seed.data()),
+ seed.size(), iterValue, digestFunc, mdLen,
+ mNewPwdHash.data()))
+ {
+ lg2::error("Verify PKCS5_PBKDF2_HMAC Integrity Check failed");
+ return false;
+ }
+
+ return true;
+}
+
void Password::verifyPassword(std::string userName, std::string currentPassword,
std::string newPassword)
{
@@ -142,35 +162,15 @@
}
if (hashAlgo == "SHA256")
{
- unsigned int mdLen = 32;
- mNewPwdHash.fill(0);
-
- if (!PKCS5_PBKDF2_HMAC(
- reinterpret_cast<const char*>(newPassword.c_str()),
- newPassword.length() + 1,
- reinterpret_cast<const unsigned char*>(seed.data()),
- seed.size(), iterValue, EVP_sha256(), mdLen,
- mNewPwdHash.data()))
+ if (!verifyIntegrityCheck(newPassword, seed, 32, EVP_sha256()))
{
- lg2::error(
- "Verify PKCS5_PBKDF2_HMAC_SHA256 Integrity Check failed");
throw InternalFailure();
}
}
if (hashAlgo == "SHA384")
{
- unsigned int mdLen = 48;
- mNewPwdHash.fill(0);
-
- if (!PKCS5_PBKDF2_HMAC(
- reinterpret_cast<const char*>(newPassword.c_str()),
- newPassword.length() + 1,
- reinterpret_cast<const unsigned char*>(seed.data()),
- seed.size(), iterValue, EVP_sha384(), mdLen,
- mNewPwdHash.data()))
+ if (!verifyIntegrityCheck(newPassword, seed, 48, EVP_sha384()))
{
- lg2::error(
- "Verify PKCS5_PBKDF2_HMAC_SHA384 Integrity Check failed");
throw InternalFailure();
}
}