2 The header file of CHAP configuration.
4 Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 #ifndef _ISCSI_CHAP_H_
16 #define _ISCSI_CHAP_H_
18 #define ISCSI_AUTH_METHOD_CHAP "CHAP"
20 #define ISCSI_KEY_CHAP_ALGORITHM "CHAP_A"
21 #define ISCSI_KEY_CHAP_IDENTIFIER "CHAP_I"
22 #define ISCSI_KEY_CHAP_CHALLENGE "CHAP_C"
23 #define ISCSI_KEY_CHAP_NAME "CHAP_N"
24 #define ISCSI_KEY_CHAP_RESPONSE "CHAP_R"
26 #define ISCSI_CHAP_ALGORITHM_MD5 5
28 #define ISCSI_CHAP_AUTH_MAX_LEN 1024
32 #define ISCSI_CHAP_RSP_LEN 16
34 #define ISCSI_CHAP_STEP_ONE 1
35 #define ISCSI_CHAP_STEP_TWO 2
36 #define ISCSI_CHAP_STEP_THREE 3
37 #define ISCSI_CHAP_STEP_FOUR 4
42 typedef struct _ISCSI_CHAP_AUTH_CONFIG_NVDATA
{
44 CHAR8 CHAPName
[ISCSI_CHAP_NAME_STORAGE
];
45 CHAR8 CHAPSecret
[ISCSI_CHAP_SECRET_STORAGE
];
46 CHAR8 ReverseCHAPName
[ISCSI_CHAP_NAME_STORAGE
];
47 CHAR8 ReverseCHAPSecret
[ISCSI_CHAP_SECRET_STORAGE
];
48 } ISCSI_CHAP_AUTH_CONFIG_NVDATA
;
53 /// ISCSI CHAP Authentication Data
55 typedef struct _ISCSI_CHAP_AUTH_DATA
{
56 ISCSI_CHAP_AUTH_CONFIG_NVDATA
*AuthConfig
;
58 UINT8 InChallenge
[ISCSI_CHAP_AUTH_MAX_LEN
];
59 UINT32 InChallengeLength
;
61 // Calculated CHAP Response (CHAP_R) value.
63 UINT8 CHAPResponse
[ISCSI_CHAP_RSP_LEN
];
66 // Auth-data to be sent out for mutual authentication.
69 UINT8 OutChallenge
[ISCSI_CHAP_AUTH_MAX_LEN
];
70 UINT32 OutChallengeLength
;
71 } ISCSI_CHAP_AUTH_DATA
;
74 This function checks the received iSCSI Login Response during the security
77 @param[in] Conn The iSCSI connection.
79 @retval EFI_SUCCESS The Login Response passed the CHAP validation.
80 @retval EFI_OUT_OF_RESOURCES Failed to allocate memory.
81 @retval EFI_PROTOCOL_ERROR Some kind of protocol error occurred.
82 @retval Others Other errors as indicated.
86 IScsiCHAPOnRspReceived (
87 IN ISCSI_CONNECTION
*Conn
90 This function fills the CHAP authentication information into the login PDU
91 during the security negotiation stage in the iSCSI connection login.
93 @param[in] Conn The iSCSI connection.
94 @param[in, out] Pdu The PDU to send out.
96 @retval EFI_SUCCESS All check passed and the phase-related CHAP
97 authentication info is filled into the iSCSI PDU.
98 @retval EFI_OUT_OF_RESOURCES Failed to allocate memory.
99 @retval EFI_PROTOCOL_ERROR Some kind of protocol error occurred.
104 IN ISCSI_CONNECTION
*Conn
,