123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- /** @file
- The header file of CHAP configuration.
- Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #ifndef _ISCSI_CHAP_H_
- #define _ISCSI_CHAP_H_
- #define ISCSI_AUTH_METHOD_CHAP "CHAP"
- #define ISCSI_KEY_CHAP_ALGORITHM "CHAP_A"
- #define ISCSI_KEY_CHAP_IDENTIFIER "CHAP_I"
- #define ISCSI_KEY_CHAP_CHALLENGE "CHAP_C"
- #define ISCSI_KEY_CHAP_NAME "CHAP_N"
- #define ISCSI_KEY_CHAP_RESPONSE "CHAP_R"
- #define ISCSI_CHAP_ALGORITHM_MD5 5
- #define ISCSI_CHAP_AUTH_MAX_LEN 1024
- ///
- /// MD5_HASHSIZE
- ///
- #define ISCSI_CHAP_RSP_LEN 16
- #define ISCSI_CHAP_STEP_ONE 1
- #define ISCSI_CHAP_STEP_TWO 2
- #define ISCSI_CHAP_STEP_THREE 3
- #define ISCSI_CHAP_STEP_FOUR 4
- #pragma pack(1)
- typedef struct _ISCSI_CHAP_AUTH_CONFIG_NVDATA {
- UINT8 CHAPType;
- CHAR8 CHAPName[ISCSI_CHAP_NAME_STORAGE];
- CHAR8 CHAPSecret[ISCSI_CHAP_SECRET_STORAGE];
- CHAR8 ReverseCHAPName[ISCSI_CHAP_NAME_STORAGE];
- CHAR8 ReverseCHAPSecret[ISCSI_CHAP_SECRET_STORAGE];
- } ISCSI_CHAP_AUTH_CONFIG_NVDATA;
- #pragma pack()
- ///
- /// ISCSI CHAP Authentication Data
- ///
- typedef struct _ISCSI_CHAP_AUTH_DATA {
- ISCSI_CHAP_AUTH_CONFIG_NVDATA *AuthConfig;
- UINT32 InIdentifier;
- UINT8 InChallenge[ISCSI_CHAP_AUTH_MAX_LEN];
- UINT32 InChallengeLength;
- //
- // Calculated CHAP Response (CHAP_R) value.
- //
- UINT8 CHAPResponse[ISCSI_CHAP_RSP_LEN];
- //
- // Auth-data to be sent out for mutual authentication.
- //
- UINT32 OutIdentifier;
- UINT8 OutChallenge[ISCSI_CHAP_AUTH_MAX_LEN];
- UINT32 OutChallengeLength;
- } ISCSI_CHAP_AUTH_DATA;
- /**
- This function checks the received iSCSI Login Response during the security
- negotiation stage.
- @param[in] Conn The iSCSI connection.
- @retval EFI_SUCCESS The Login Response passed the CHAP validation.
- @retval EFI_OUT_OF_RESOURCES Failed to allocate memory.
- @retval EFI_PROTOCOL_ERROR Some kind of protocol error occurred.
- @retval Others Other errors as indicated.
- **/
- EFI_STATUS
- IScsiCHAPOnRspReceived (
- IN ISCSI_CONNECTION *Conn
- );
- /**
- This function fills the CHAP authentication information into the login PDU
- during the security negotiation stage in the iSCSI connection login.
- @param[in] Conn The iSCSI connection.
- @param[in, out] Pdu The PDU to send out.
- @retval EFI_SUCCESS All check passed and the phase-related CHAP
- authentication info is filled into the iSCSI PDU.
- @retval EFI_OUT_OF_RESOURCES Failed to allocate memory.
- @retval EFI_PROTOCOL_ERROR Some kind of protocol error occurred.
- **/
- EFI_STATUS
- IScsiCHAPToSendReq (
- IN ISCSI_CONNECTION *Conn,
- IN OUT NET_BUF *Pdu
- );
- #endif
|