IpsecConfigApp add the check for the required options (--local, --remote, Auth-algo...
authorqianouyang <qianouyang@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 8 Dec 2011 03:15:55 +0000 (03:15 +0000)
committerqianouyang <qianouyang@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 8 Dec 2011 03:15:55 +0000 (03:15 +0000)
Signed-off-by: qianouyang
Reviewed-by: czhan46
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12829 6f19259b-4bc3-4df7-8a09-765794883524

NetworkPkg/Application/IpsecConfig/Dump.c
NetworkPkg/Application/IpsecConfig/PolicyEntryOperation.c

index 72d3bc5..1a82a63 100644 (file)
@@ -92,7 +92,7 @@ DumpBuf (
 {\r
   UINTN    Index;\r
   for (Index = 0; Index < Length; Index++) {\r
-    Print (L"%02x ", Data[Index]); \r
+    Print (L"%02x ", Data[Index]);\r
   }\r
 }\r
 \r
@@ -457,12 +457,12 @@ DumpSadEntry (
       //\r
       Print (L"  Auth:%s/",AuthAlgoStr);\r
       DumpAsciiString (\r
-        Data->AlgoInfo.EspAlgoInfo.AuthKey, \r
+        Data->AlgoInfo.EspAlgoInfo.AuthKey,\r
         Data->AlgoInfo.EspAlgoInfo.AuthKeyLength\r
         );\r
       Print (L"\n  Encrypt:%s/",EncAlgoStr);\r
       DumpAsciiString (\r
-        Data->AlgoInfo.EspAlgoInfo.EncKey, \r
+        Data->AlgoInfo.EspAlgoInfo.EncKey,\r
         Data->AlgoInfo.EspAlgoInfo.EncKeyLength\r
         );\r
     } else {\r
@@ -472,13 +472,14 @@ DumpSadEntry (
       //\r
       Print (L"  Auth:%s/",AuthAlgoStr);\r
       DumpBuf ((UINT8 *)(Data->AlgoInfo.EspAlgoInfo.AuthKey), Data->AlgoInfo.EspAlgoInfo.AuthKeyLength);\r
-      \r
+\r
       Print (L"\n  Encrypt:%s/",EncAlgoStr);\r
-      DumpBuf ((UINT8 *)(Data->AlgoInfo.EspAlgoInfo.EncKey), Data->AlgoInfo.EspAlgoInfo.EncKeyLength);      \r
+      DumpBuf ((UINT8 *)(Data->AlgoInfo.EspAlgoInfo.EncKey), Data->AlgoInfo.EspAlgoInfo.EncKeyLength);\r
     }\r
   }\r
+  Print (L"\n");\r
   if (Data->SpdSelector != NULL) {\r
-    Print (L"\n  ");\r
+    Print (L"  ");\r
     DumpSpdSelector (Data->SpdSelector);\r
     Print (L"\n");\r
   }\r
index d8330bc..67209f6 100644 (file)
@@ -913,7 +913,7 @@ CreateSadEntry (
   }\r
 \r
   //\r
-  // Convert user imput from string to integer, and fill in the DestAddress in EFI_IPSEC_SA_ID.\r
+  // Convert user input from string to integer, and fill in the DestAddress in EFI_IPSEC_SA_ID.\r
   //\r
   ValueStr = ShellCommandLineGetValue (ParamPackage, L"--tunnel-source");\r
   if (ValueStr != NULL) {\r
@@ -934,10 +934,28 @@ CreateSadEntry (
       *Mask |= SOURCE;\r
     }\r
   }\r
+\r
+  //\r
+  // If it is TunnelMode, then check if the tunnel-source and --tunnel-dest are set\r
+  //\r
+  if ((*Data)->Mode == EfiIPsecTunnel) {\r
+    if ((*Mask & (DEST|SOURCE)) != (DEST|SOURCE)) {\r
+      ShellPrintHiiEx (\r
+        -1,\r
+        -1,\r
+        NULL,\r
+        STRING_TOKEN (STR_IPSEC_CONFIG_MISSING_ONE_OF_PARAMETERS),\r
+        mHiiHandle,\r
+        mAppName,\r
+        L"--tunnel-source --tunnel-dest"\r
+        );\r
+      ReturnStatus = EFI_INVALID_PARAMETER;\r
+    }\r
+  }\r
   ReturnStatus = CreateSpdSelector ((*Data)->SpdSelector, ParamPackage, Mask);\r
 \r
   if (CreateNew) {\r
-    if ((*Mask & (SPI | IPSEC_PROTO )) != (SPI | IPSEC_PROTO )) {\r
+    if ((*Mask & (SPI|IPSEC_PROTO|LOCAL|REMOTE)) != (SPI|IPSEC_PROTO|LOCAL|REMOTE)) {\r
       ShellPrintHiiEx (\r
         -1,\r
         -1,\r
@@ -945,7 +963,7 @@ CreateSadEntry (
         STRING_TOKEN (STR_IPSEC_CONFIG_MISSING_ONE_OF_PARAMETERS),\r
         mHiiHandle,\r
         mAppName,\r
-        L"--spi --ipsec-proto --dest"\r
+        L"--spi --ipsec-proto --local --remote"\r
         );\r
       ReturnStatus = EFI_INVALID_PARAMETER;\r
     } else {\r
@@ -974,7 +992,7 @@ CreateSadEntry (
           ReturnStatus = EFI_INVALID_PARAMETER;\r
         }\r
       } else {\r
-        if ((*Mask & ENCRYPT_ALGO) == 0) {\r
+        if ((*Mask & (ENCRYPT_ALGO|AUTH_ALGO)) != (ENCRYPT_ALGO|AUTH_ALGO) ) {\r
           ShellPrintHiiEx (\r
             -1,\r
             -1,\r
@@ -982,7 +1000,7 @@ CreateSadEntry (
             STRING_TOKEN (STR_IPSEC_CONFIG_MISSING_PARAMETER),\r
             mHiiHandle,\r
             mAppName,\r
-            L"--encrypt-algo"\r
+            L"--encrypt-algo --auth-algo"\r
             );\r
           ReturnStatus = EFI_INVALID_PARAMETER;\r
         } else if ((*Data)->AlgoInfo.EspAlgoInfo.EncAlgoId != IPSEC_EALG_NONE && (*Mask & ENCRYPT_KEY) == 0) {\r
@@ -996,6 +1014,17 @@ CreateSadEntry (
             L"--encrypt-key"\r
             );\r
           ReturnStatus = EFI_INVALID_PARAMETER;\r
+        } else if ((*Data)->AlgoInfo.EspAlgoInfo.AuthAlgoId != IPSEC_AALG_NONE && (*Mask & AUTH_KEY) == 0) {\r
+          ShellPrintHiiEx (\r
+            -1,\r
+            -1,\r
+            NULL,\r
+            STRING_TOKEN (STR_IPSEC_CONFIG_MISSING_PARAMETER),\r
+            mHiiHandle,\r
+            mAppName,\r
+            L"--auth-key"\r
+            );\r
+          ReturnStatus = EFI_INVALID_PARAMETER;\r
         }\r
       }\r
     }\r