* \return AUTH_PASSWD_API_SUCCESS
* \return AUTH_PASSWD_API_ERROR_ACCESS_DENIED
* \return AUTH_PASSWD_API_ERROR_SOCKET
+ * \return AUTH_PASSWD_API_ERROR_PASSWORD_REUSED
+ * Typed string is an used password before
* \return AUTH_PASSWD_API_ERROR_INVALID_MIN_LENGTH
* Typed string doesn't fulfill min length policy.
* \return AUTH_PASSWD_API_ERROR_INVALID_MIN_COMPLEX_CHAR_NUM
case PasswordHdrs::HDR_CHK_PASSWD_AVAILABLE: {
std::string challenge;
+ bool isPwdReused;
Deserialization::Deserialize(buffer, passwdType);
Deserialization::Deserialize(buffer, challenge);
- result = m_policyManager.checkPolicy(passwdType, NO_PASSWORD, challenge, cur_user);
+ result = m_pwdManager.isPwdReused(passwdType, challenge, cur_user, isPwdReused);
+
+ if (result == AUTH_PASSWD_API_SUCCESS) {
+ if(!isPwdReused)
+ result = m_policyManager.checkPolicy(passwdType, NO_PASSWORD, challenge, cur_user);
+ else
+ result = AUTH_PASSWD_API_ERROR_PASSWORD_REUSED;
+ }
+
break;
}