3 Copyright (c) 2004 - 2007, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
20 #ifndef _ISCSI_CHAP_H_
21 #define _ISCSI_CHAP_H_
23 #define ISCSI_CHAP_AUTH_INFO_GUID \
25 0x786ec0ac, 0x65ae, 0x4d1b, {0xb1, 0x37, 0xd, 0x11, 0xa, 0x48, 0x37, 0x97} \
28 extern EFI_GUID mIScsiCHAPAuthInfoGuid
;
30 #define ISCSI_AUTH_METHOD_CHAP "CHAP"
32 #define ISCSI_KEY_CHAP_ALGORITHM "CHAP_A"
33 #define ISCSI_KEY_CHAP_IDENTIFIER "CHAP_I"
34 #define ISCSI_KEY_CHAP_CHALLENGE "CHAP_C"
35 #define ISCSI_KEY_CHAP_NAME "CHAP_N"
36 #define ISCSI_KEY_CHAP_RESPONSE "CHAP_R"
38 #define ISCSI_CHAP_ALGORITHM_MD5 5
40 #define ISCSI_CHAP_AUTH_MAX_LEN 1024
41 #define ISCSI_CHAP_RSP_LEN 16 // == MD5_HASHSIZE
46 ISCSI_CHAP_STEP_THREE
,
52 typedef struct _ISCSI_CHAP_AUTH_CONFIG_NVDATA
{
54 CHAR8 CHAPName
[ISCSI_CHAP_NAME_MAX_LEN
];
55 CHAR8 CHAPSecret
[ISCSI_CHAP_SECRET_MAX_LEN
];
56 CHAR8 ReverseCHAPName
[ISCSI_CHAP_NAME_MAX_LEN
];
57 CHAR8 ReverseCHAPSecret
[ISCSI_CHAP_SECRET_MAX_LEN
];
58 } ISCSI_CHAP_AUTH_CONFIG_NVDATA
;
63 // ISCSI CHAP Authentication Data
65 typedef struct _ISCSI_CHAP_AUTH_DATA
{
66 ISCSI_CHAP_AUTH_CONFIG_NVDATA AuthConfig
;
68 UINT8 InChallenge
[ISCSI_CHAP_AUTH_MAX_LEN
];
69 UINT32 InChallengeLength
;
71 // Calculated CHAP Response (CHAP_R) value
73 UINT8 CHAPResponse
[ISCSI_CHAP_RSP_LEN
];
76 // Auth-data to be sent out for mutual authentication
79 UINT8 OutChallenge
[ISCSI_CHAP_AUTH_MAX_LEN
];
80 UINT32 OutChallengeLength
;
81 } ISCSI_CHAP_AUTH_DATA
;
84 IScsiCHAPOnRspReceived (
85 IN ISCSI_CONNECTION
*Conn
,
91 IN ISCSI_CONNECTION
*Conn
,