Files
Michael Kubacki 0110a8cf76 Features/Intel/UserAuthFeaturePkg: Add initial package
Adds a new feature package for the User Authentication feature.

Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Michael Kubacki <michael.a.kubacki@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
2019-12-06 17:37:59 -08:00

71 lines
2.2 KiB
C

/** @file
Provides services to set/verify password and return if the password is set.
Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef __USER_PASSWORD_LIB_H__
#define __USER_PASSWORD_LIB_H__
/**
Validate if the password is correct.
@param[in] Password The user input password.
@param[in] PasswordSize The size of Password in byte.
@retval EFI_SUCCESS The password is correct.
@retval EFI_SECURITY_VIOLATION The password is incorrect.
@retval EFI_INVALID_PARAMETER The password or size is invalid.
@retval EFI_OUT_OF_RESOURCES Insufficient resources to verify the password.
@retval EFI_ACCESS_DENIED Password retry count reach.
**/
EFI_STATUS
EFIAPI
VerifyPassword (
IN CHAR16 *Password,
IN UINTN PasswordSize
);
/**
Set a new password.
@param[in] NewPassword The user input new password.
NULL means clear password.
@param[in] NewPasswordSize The size of NewPassword in byte.
@param[in] OldPassword The user input old password.
NULL means no old password.
@param[in] OldPasswordSize The size of OldPassword in byte.
@retval EFI_SUCCESS The NewPassword is set successfully.
@retval EFI_SECURITY_VIOLATION The OldPassword is incorrect.
@retval EFI_INVALID_PARAMETER The password or size is invalid.
@retval EFI_OUT_OF_RESOURCES Insufficient resources to set the password.
@retval EFI_ACCESS_DENIED Password retry count reach.
@retval EFI_UNSUPPORTED NewPassword is not strong enough.
@retval EFI_ALREADY_STARTED NewPassword is in history.
**/
EFI_STATUS
EFIAPI
SetPassword (
IN CHAR16 *NewPassword, OPTIONAL
IN UINTN NewPasswordSize,
IN CHAR16 *OldPassword, OPTIONAL
IN UINTN OldPasswordSize
);
/**
Return if the password is set.
@retval TRUE The password is set.
@retval FALSE The password is not set.
**/
BOOLEAN
EFIAPI
IsPasswordInstalled (
VOID
);
#endif