Password policy enforcement module for HR650X BIOS. Implements password validation for PAP (primary/admin) and POP (power-on/user) passwords: minimum length verification, password history checking (against previously saved passwords), time-based lockout with cooldown periods, verify-attempt throttling, and HOB list initialization. The module installs a protocol interface to register password-check services with the system and maintains password history and timestamp variables in UEFI NVRAM.
| Function | Description |
|---|---|
ModuleEntryPoint |
Initializes UEFI service table pointers, locates HOB list, installs password check protocol interface |
GetMinPasswordLength |
Reads the Setup UEFI variable and returns minimum password length from offset 12; defaults to 8 if variable not found |
CheckTimeLockout |
Reads PapSaveTimeStamp/PopSaveTimeStamp NVRAM variables, gets current time via GetTime(), and determines if the lockout period (configured in Setup variable) has elapsed |
CheckPasswordHistory |
Searches PapSaveHistory/PopSaveHistory variable for matches against the proposed password; each history entry is 40 bytes |
SavePasswordWithHistory |
Saves a new password into history (shifts existing entries) and records current timestamp in NVRAM |
DateTimeToEpochSeconds |
Converts date/time components to seconds since year 2000, handling leap year rules |
GetHobList |
Retrieves HOB list pointer from system table |
Lenovo ThinkSystem HR650X (Purley platform) - BIOS password policy enforcement