1 /** @file 2 The internal structure and function declaration in IpSecConfig application. 3 4 Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR> 5 6 This program and the accompanying materials 7 are licensed and made available under the terms and conditions of the BSD License 8 which accompanies this distribution. The full text of the license may be found at 9 http://opensource.org/licenses/bsd-license.php. 10 11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 14 **/ 15 16 #ifndef _IPSEC_CONFIG_H_ 17 #define _IPSEC_CONFIG_H_ 18 19 #include <Library/BaseMemoryLib.h> 20 #include <Library/UefiLib.h> 21 #include <Library/ShellLib.h> 22 #include <Library/DebugLib.h> 23 #include <Library/MemoryAllocationLib.h> 24 #include <Library/UefiBootServicesTableLib.h> 25 #include <Library/NetLib.h> 26 27 #include <Protocol/IpSecConfig.h> 28 29 #define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0])) 30 31 #define IPSECCONFIG_STATUS_NAME L"IpSecStatus" 32 33 #define BIT(x) (UINT32) (1 << (x)) 34 35 #define IPSEC_STATUS_DISABLED 0x0 36 #define IPSEC_STATUS_ENABLED 0x1 37 38 #define EFI_IP4_PROTO_ICMP 0x1 39 #define EFI_IP4_PROTO_TCP 0x6 40 #define EFI_IP4_PROTO_UDP 0x11 41 42 #define EFI_IPSEC_ANY_PROTOCOL 0xFFFF 43 #define EFI_IPSEC_ANY_PORT 0 44 45 /// 46 /// IPsec Authentication Algorithm Definition 47 /// The number value definition is aligned to IANA assignment 48 /// 49 #define IPSEC_AALG_NONE 0x00 50 #define IPSEC_AALG_MD5HMAC 0x01 51 #define IPSEC_AALG_SHA1HMAC 0x02 52 #define IPSEC_AALG_SHA2_256HMAC 0x05 53 #define IPSEC_AALG_SHA2_384HMAC 0x06 54 #define IPSEC_AALG_SHA2_512HMAC 0x07 55 #define IPSEC_AALG_AES_XCBC_MAC 0x09 56 #define IPSEC_AALG_NULL 0xFB 57 58 /// 59 /// IPsec Encryption Algorithm Definition 60 /// The number value definition is aligned to IANA assignment 61 /// 62 #define IPSEC_EALG_NONE 0x00 63 #define IPSEC_EALG_DESCBC 0x02 64 #define IPSEC_EALG_3DESCBC 0x03 65 #define IPSEC_EALG_CASTCBC 0x06 66 #define IPSEC_EALG_BLOWFISHCBC 0x07 67 #define IPSEC_EALG_NULL 0x0B 68 #define IPSEC_EALG_AESCBC 0x0C 69 #define IPSEC_EALG_AESCTR 0x0D 70 #define IPSEC_EALG_AES_CCM_ICV8 0x0E 71 #define IPSEC_EALG_AES_CCM_ICV12 0x0F 72 #define IPSEC_EALG_AES_CCM_ICV16 0x10 73 #define IPSEC_EALG_AES_GCM_ICV8 0x12 74 #define IPSEC_EALG_AES_GCM_ICV12 0x13 75 #define IPSEC_EALG_AES_GCM_ICV16 0x14 76 77 typedef struct { 78 CHAR16 *VarName; 79 UINT32 Attribute1; 80 UINT32 Attribute2; 81 UINT32 Attribute3; 82 UINT32 Attribute4; 83 } VAR_CHECK_ITEM; 84 85 typedef struct { 86 LIST_ENTRY Link; 87 CHAR16 *Name; 88 SHELL_PARAM_TYPE Type; 89 CHAR16 *Value; 90 UINTN OriginalPosition; 91 } SHELL_PARAM_PACKAGE; 92 93 typedef struct { 94 CHAR16 *String; 95 UINT32 Integer; 96 } STR2INT; 97 98 extern EFI_IPSEC_CONFIG_PROTOCOL *mIpSecConfig; 99 extern EFI_HII_HANDLE mHiiHandle; 100 extern CHAR16 mAppName[]; 101 102 // 103 // -P 104 // 105 extern STR2INT mMapPolicy[]; 106 107 // 108 // --proto 109 // 110 extern STR2INT mMapIpProtocol[]; 111 112 // 113 // --action 114 // 115 extern STR2INT mMapIpSecAction[]; 116 117 // 118 // --mode 119 // 120 extern STR2INT mMapIpSecMode[]; 121 122 // 123 // --dont-fragment 124 // 125 extern STR2INT mMapDfOption[]; 126 127 // 128 // --ipsec-proto 129 // 130 extern STR2INT mMapIpSecProtocol[]; 131 // 132 // --auth-algo 133 // 134 extern STR2INT mMapAuthAlgo[]; 135 136 // 137 // --encrypt-algo 138 // 139 extern STR2INT mMapEncAlgo[]; 140 // 141 // --auth-proto 142 // 143 extern STR2INT mMapAuthProto[]; 144 145 // 146 // --auth-method 147 // 148 extern STR2INT mMapAuthMethod[]; 149 150 #endif 151