]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/Network/IScsiDxe/IScsiCHAP.h
[Description]
[mirror_edk2.git] / MdeModulePkg / Universal / Network / IScsiDxe / IScsiCHAP.h
1 /*++
2
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
8
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.
11
12 Module Name:
13
14 IScsiCHAP.h
15
16 Abstract:
17
18 --*/
19
20 #ifndef _ISCSI_CHAP_H_
21 #define _ISCSI_CHAP_H_
22
23 #define ISCSI_CHAP_AUTH_INFO_GUID \
24 { \
25 0x786ec0ac, 0x65ae, 0x4d1b, {0xb1, 0x37, 0xd, 0x11, 0xa, 0x48, 0x37, 0x97} \
26 }
27
28 extern EFI_GUID mIScsiCHAPAuthInfoGuid;
29
30 #define ISCSI_AUTH_METHOD_CHAP "CHAP"
31
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"
37
38 #define ISCSI_CHAP_ALGORITHM_MD5 5
39
40 #define ISCSI_CHAP_AUTH_MAX_LEN 1024
41 #define ISCSI_CHAP_RSP_LEN 16 // == MD5_HASHSIZE
42 typedef enum {
43 ISCSI_CHAP_INITIAL,
44 ISCSI_CHAP_STEP_ONE,
45 ISCSI_CHAP_STEP_TWO,
46 ISCSI_CHAP_STEP_THREE,
47 ISCSI_CHAP_STEP_FOUR
48 } ISCSI_CHAP_STEP;
49
50 #pragma pack(1)
51
52 typedef struct _ISCSI_CHAP_AUTH_CONFIG_NVDATA {
53 UINT8 CHAPType;
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;
59
60 #pragma pack()
61
62 //
63 // ISCSI CHAP Authentication Data
64 //
65 typedef struct _ISCSI_CHAP_AUTH_DATA {
66 ISCSI_CHAP_AUTH_CONFIG_NVDATA AuthConfig;
67 UINT32 InIdentifier;
68 UINT8 InChallenge[ISCSI_CHAP_AUTH_MAX_LEN];
69 UINT32 InChallengeLength;
70 //
71 // Calculated CHAP Response (CHAP_R) value
72 //
73 UINT8 CHAPResponse[ISCSI_CHAP_RSP_LEN];
74
75 //
76 // Auth-data to be sent out for mutual authentication
77 //
78 UINT32 OutIdentifier;
79 UINT8 OutChallenge[ISCSI_CHAP_AUTH_MAX_LEN];
80 UINT32 OutChallengeLength;
81 } ISCSI_CHAP_AUTH_DATA;
82
83 EFI_STATUS
84 IScsiCHAPOnRspReceived (
85 IN ISCSI_CONNECTION *Conn,
86 IN BOOLEAN Transit
87 );
88
89 EFI_STATUS
90 IScsiCHAPToSendReq (
91 IN ISCSI_CONNECTION *Conn,
92 IN NET_BUF *Pdu
93 );
94
95 #endif