| /** @file | |
| Internal Functions for RedfishLib. | |
| Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> | |
| (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef DXE_REDFISH_MISC_LIB_H_ | |
| #define DXE_REDFISH_MISC_LIB_H_ | |
| #include <Library/BaseLib.h> | |
| #include <Library/BaseMemoryLib.h> | |
| #include <Library/DebugLib.h> | |
| #include <Library/JsonLib.h> | |
| #include <Library/MemoryAllocationLib.h> | |
| #include <Library/PrintLib.h> | |
| #include <Library/RedfishLib.h> | |
| #include <Library/UefiLib.h> | |
| #include <Protocol/EdkIIRedfishCredential.h> | |
| #include <redfish.h> | |
| #define ARRAY_SIZE(Array) (sizeof (Array) / sizeof ((Array)[0])) | |
| /** | |
| Creates a REDFISH_SERVICE which can be later used to access the Redfish resources. | |
| This function will configure REST EX child according to parameters described in | |
| Redfish network host interface in SMBIOS type 42 record. The service enumerator will also | |
| handle the authentication flow automatically if HTTP basic auth or Redfish session | |
| login is configured to use. | |
| @param[in] RedfishConfigServiceInfo Redfish service information the EFI Redfish | |
| feature driver communicates with. | |
| @param[in] AuthMethod None, HTTP basic auth, or Redfish session login. | |
| @param[in] UserId User Name used for authentication. | |
| @param[in] Password Password used for authentication. | |
| @return New created Redfish service, or NULL if error happens. | |
| **/ | |
| REDFISH_SERVICE | |
| RedfishCreateLibredfishService ( | |
| IN REDFISH_CONFIG_SERVICE_INFORMATION *RedfishConfigServiceInfo, | |
| IN EDKII_REDFISH_AUTH_METHOD AuthMethod, | |
| IN CHAR8 *UserId, | |
| IN CHAR8 *Password | |
| ); | |
| /** | |
| Retrieve platform's Redfish authentication information. | |
| This functions returns the Redfish authentication method together with the user | |
| Id and password. | |
| For AuthMethodNone, UserId and Password will point to NULL which means authentication | |
| is not required to access the Redfish service. | |
| For AuthMethodHttpBasic, 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 freeing the returned string storage pointed by UserId | |
| and Password. | |
| @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_INVALID_PARAMETER AuthMethod or UserId or Password is NULL. | |
| @retval EFI_UNSUPPORTED Unsupported authentication method is found. | |
| **/ | |
| EFI_STATUS | |
| RedfishGetAuthInfo ( | |
| OUT EDKII_REDFISH_AUTH_METHOD *AuthMethod, | |
| OUT CHAR8 **UserId, | |
| OUT CHAR8 **Password | |
| ); | |
| #endif |