{\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
//\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
//\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
}\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
*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
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
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
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
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