EDKII Redfish Credential DXE driver which abstracts platform Redfish credential implementation. Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com> Signed-off-by: Ting Ye <ting.ye@intel.com> Signed-off-by: Siyuan Fu <siyuan.fu@intel.com> Signed-off-by: Fan Wang <fan.wang@intel.com> Signed-off-by: Abner Chang <abner.chang@hpe.com> Cc: Nickle Wang <nickle.wang@hpe.com> Cc: Peter O'Hanley <peter.ohanley@hpe.com> Reviewed-by: Nickle Wang <nickle.wang@hpe.com>
		
			
				
	
	
		
			76 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Definition of Redfish Credential DXE driver.
 | |
| 
 | |
|   (C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR>
 | |
| 
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| #ifndef EDKII_REDFISH_CREDENTIAL_DXE_H_
 | |
| #define EDKII_REDFISH_CREDENTIAL_DXE_H_
 | |
| 
 | |
| #include <Protocol/EdkIIRedfishCredential.h>
 | |
| 
 | |
| #include <Library/BaseLib.h>
 | |
| #include <Library/DebugLib.h>
 | |
| #include <Library/PrintLib.h>
 | |
| #include <Library/RedfishCredentialLib.h>
 | |
| #include <Library/UefiLib.h>
 | |
| #include <Library/UefiBootServicesTableLib.h>
 | |
| 
 | |
| /**
 | |
|   Retrieve platform's Redfish authentication information.
 | |
| 
 | |
|   This functions returns the Redfish authentication method together with the user Id and
 | |
|   password.
 | |
|   - For AuthMethodNone, the UserId and Password could be used for HTTP header authentication
 | |
|     as defined by RFC7235.
 | |
|   - For AuthMethodRedfishSession, the UserId and Password could be used for Redfish
 | |
|     session login as defined by  Redfish API specification (DSP0266).
 | |
| 
 | |
|   Callers are responsible for and freeing the returned string storage.
 | |
| 
 | |
|   @param[in]   This                Pointer to EDKII_REDFISH_CREDENTIAL_PROTOCOL instance.
 | |
|   @param[out]  AuthMethod          Type of Redfish authentication method.
 | |
|   @param[out]  UserId              The pointer to store the returned UserId string.
 | |
|   @param[out]  Password            The pointer to store the returned Password string.
 | |
| 
 | |
|   @retval EFI_SUCCESS              Get the authentication information successfully.
 | |
|   @retval EFI_ACCESS_DENIED        SecureBoot is disabled after EndOfDxe.
 | |
|   @retval EFI_INVALID_PARAMETER    This or AuthMethod or UserId or Password is NULL.
 | |
|   @retval EFI_OUT_OF_RESOURCES     There are not enough memory resources.
 | |
|   @retval EFI_UNSUPPORTED          Unsupported authentication method is found.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| RedfishCredentialGetAuthInfo (
 | |
|   IN  EDKII_REDFISH_CREDENTIAL_PROTOCOL    *This,
 | |
|   OUT EDKII_REDFISH_AUTH_METHOD            *AuthMethod,
 | |
|   OUT CHAR8                                **UserId,
 | |
|   OUT CHAR8                                **Password
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Notify the Redfish service provide to stop provide configuration service to this platform.
 | |
| 
 | |
|   This function should be called when the platfrom is about to leave the safe environment.
 | |
|   It will notify the Redfish service provider to abort all logined session, and prohibit
 | |
|   further login with original auth info. GetAuthInfo() will return EFI_UNSUPPORTED once this
 | |
|   function is returned.
 | |
| 
 | |
|   @param[in]   This                Pointer to EDKII_REDFISH_CREDENTIAL_PROTOCOL instance.
 | |
| 
 | |
|   @retval EFI_SUCCESS              Service has been stoped successfully.
 | |
|   @retval EFI_INVALID_PARAMETER    This is NULL.
 | |
|   @retval Others                   Some error happened.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| RedfishCredentialStopService (
 | |
|   IN     EDKII_REDFISH_CREDENTIAL_PROTOCOL    *This,
 | |
|   IN     EDKII_REDFISH_CREDENTIAL_STOP_SERVICE_TYPE ServiceStopType
 | |
|   );
 | |
| #endif
 |