123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- /** @file
- This file defines the EDKII_REDFISH_CREDENTIAL_PROTOCOL interface.
- Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
- (C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #ifndef EDKII_REDFISH_CREDENTIAL_H_
- #define EDKII_REDFISH_CREDENTIAL_H_
- typedef struct _EDKII_REDFISH_CREDENTIAL_PROTOCOL EDKII_REDFISH_CREDENTIAL_PROTOCOL;
- #define EDKII_REDFISH_CREDENTIAL_PROTOCOL_GUID \
- { \
- 0x8804377, 0xaf7a, 0x4496, { 0x8a, 0x7b, 0x17, 0x59, 0x0, 0xe9, 0xab, 0x46 } \
- }
- typedef enum {
- AuthMethodNone, ///< No authentication is required.
- AuthMethodHttpBasic, ///< Basic authentication is required.
- AuthMethodRedfishSession, ///< Session authentication is required.
- AuthMethodMax
- } EDKII_REDFISH_AUTH_METHOD;
- typedef enum {
- ServiceStopTypeNone = 0, ///< Stop Redfsih service without reason.
- ServiceStopTypeSecureBootDisabled, ///< Stop Redfsih service becasue EFI
- ///< Secure Boot is disabled.
- ServiceStopTypeExitBootService, ///< Stop Redfsih service becasue existing
- ///< Boot Service.
- ServiceStopTypeMax
- } EDKII_REDFISH_CREDENTIAL_STOP_SERVICE_TYPE;
- /**
- 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.
- **/
- typedef
- EFI_STATUS
- (EFIAPI *EDKII_REDFISH_CREDENTIAL_PROTOCOL_GET_AUTH_INFO)(
- 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.
- @param[in] ServiceStopType Reason of stopping Redfish service.
- @retval EFI_SUCCESS Service has been stoped successfully.
- @retval EFI_INVALID_PARAMETER This is NULL.
- @retval Others Some error happened.
- **/
- typedef
- EFI_STATUS
- (EFIAPI *EDKII_REDFISH_CREDENTIAL_PROTOCOL_STOP_SERVICE)(
- IN EDKII_REDFISH_CREDENTIAL_PROTOCOL *This,
- IN EDKII_REDFISH_CREDENTIAL_STOP_SERVICE_TYPE ServiceStopType
- );
- struct _EDKII_REDFISH_CREDENTIAL_PROTOCOL {
- EDKII_REDFISH_CREDENTIAL_PROTOCOL_GET_AUTH_INFO GetAuthInfo;
- EDKII_REDFISH_CREDENTIAL_PROTOCOL_STOP_SERVICE StopService;
- };
- extern EFI_GUID gEdkIIRedfishCredentialProtocolGuid;
- #endif
|