1/** @file 2 The internal structure and function declaration in IpSecConfig application. 3 4 Copyright (c) 2009 - 2016, 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/UefiHiiServicesLib.h> 26#include <Library/NetLib.h> 27 28#include <Protocol/IpSecConfig.h> 29 30#define IPSECCONFIG_STATUS_NAME L"IpSecStatus" 31 32#define BIT(x) (UINT32) (1 << (x)) 33 34#define IPSEC_STATUS_DISABLED 0x0 35#define IPSEC_STATUS_ENABLED 0x1 36 37#define EFI_IP4_PROTO_ICMP 0x1 38#define EFI_IP4_PROTO_TCP 0x6 39#define EFI_IP4_PROTO_UDP 0x11 40 41#define EFI_IPSEC_ANY_PROTOCOL 0xFFFF 42#define EFI_IPSEC_ANY_PORT 0 43 44/// 45/// IPsec Authentication Algorithm Definition 46/// The number value definition is aligned to IANA assignment 47/// 48#define IPSEC_AALG_NONE 0x00 49#define IPSEC_AALG_MD5HMAC 0x01 50#define IPSEC_AALG_SHA1HMAC 0x02 51#define IPSEC_AALG_SHA2_256HMAC 0x05 52#define IPSEC_AALG_SHA2_384HMAC 0x06 53#define IPSEC_AALG_SHA2_512HMAC 0x07 54#define IPSEC_AALG_AES_XCBC_MAC 0x09 55#define IPSEC_AALG_NULL 0xFB 56 57/// 58/// IPsec Encryption Algorithm Definition 59/// The number value definition is aligned to IANA assignment 60/// 61#define IPSEC_EALG_NONE 0x00 62#define IPSEC_EALG_DESCBC 0x02 63#define IPSEC_EALG_3DESCBC 0x03 64#define IPSEC_EALG_CASTCBC 0x06 65#define IPSEC_EALG_BLOWFISHCBC 0x07 66#define IPSEC_EALG_NULL 0x0B 67#define IPSEC_EALG_AESCBC 0x0C 68#define IPSEC_EALG_AESCTR 0x0D 69#define IPSEC_EALG_AES_CCM_ICV8 0x0E 70#define IPSEC_EALG_AES_CCM_ICV12 0x0F 71#define IPSEC_EALG_AES_CCM_ICV16 0x10 72#define IPSEC_EALG_AES_GCM_ICV8 0x12 73#define IPSEC_EALG_AES_GCM_ICV12 0x13 74#define IPSEC_EALG_AES_GCM_ICV16 0x14 75 76typedef struct { 77 CHAR16 *VarName; 78 UINT32 Attribute1; 79 UINT32 Attribute2; 80 UINT32 Attribute3; 81 UINT32 Attribute4; 82} VAR_CHECK_ITEM; 83 84typedef struct { 85 LIST_ENTRY Link; 86 CHAR16 *Name; 87 SHELL_PARAM_TYPE Type; 88 CHAR16 *Value; 89 UINTN OriginalPosition; 90} SHELL_PARAM_PACKAGE; 91 92typedef struct { 93 CHAR16 *String; 94 UINT32 Integer; 95} STR2INT; 96 97extern EFI_IPSEC_CONFIG_PROTOCOL *mIpSecConfig; 98extern EFI_HII_HANDLE mHiiHandle; 99extern CHAR16 mAppName[]; 100 101// 102// -P 103// 104extern STR2INT mMapPolicy[]; 105 106// 107// --proto 108// 109extern STR2INT mMapIpProtocol[]; 110 111// 112// --action 113// 114extern STR2INT mMapIpSecAction[]; 115 116// 117// --mode 118// 119extern STR2INT mMapIpSecMode[]; 120 121// 122// --dont-fragment 123// 124extern STR2INT mMapDfOption[]; 125 126// 127// --ipsec-proto 128// 129extern STR2INT mMapIpSecProtocol[]; 130// 131// --auth-algo 132// 133extern STR2INT mMapAuthAlgo[]; 134 135// 136// --encrypt-algo 137// 138extern STR2INT mMapEncAlgo[]; 139// 140// --auth-proto 141// 142extern STR2INT mMapAuthProto[]; 143 144// 145// --auth-method 146// 147extern STR2INT mMapAuthMethod[]; 148 149#endif 150