Home | History | Annotate | Download | only in IpsecConfig
      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