12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- /** @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
|