]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg/DriverSample: Remove the password related codes
authorDandan Bi <dandan.bi@intel.com>
Thu, 17 Nov 2016 05:15:33 +0000 (13:15 +0800)
committerStar Zeng <star.zeng@intel.com>
Fri, 25 Nov 2016 02:50:27 +0000 (10:50 +0800)
In current DriverSampleDxe, the sample code of password is
not a good example, so we plan to remove it.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
MdeModulePkg/Universal/DriverSampleDxe/DriverSample.c
MdeModulePkg/Universal/DriverSampleDxe/DriverSample.h
MdeModulePkg/Universal/DriverSampleDxe/NVDataStruc.h
MdeModulePkg/Universal/DriverSampleDxe/Vfr.vfr
MdeModulePkg/Universal/DriverSampleDxe/VfrStrings.uni

index 3c494e3c83376fe7c6fbedf48df7b8a047d5d66e..1b58a8d7186438be3b2b6dc9a0b6349698b3c8c4 100644 (file)
@@ -261,233 +261,6 @@ InternalStopMonitor(
   return EFI_SUCCESS;\r
 }\r
 \r
-\r
-/**\r
-  Encode the password using a simple algorithm.\r
-\r
-  @param Password The string to be encoded.\r
-  @param MaxSize  The size of the string.\r
-\r
-**/\r
-VOID\r
-EncodePassword (\r
-  IN  CHAR16                      *Password,\r
-  IN  UINTN                       MaxSize\r
-  )\r
-{\r
-  UINTN   Index;\r
-  UINTN   Loop;\r
-  CHAR16  *Buffer;\r
-  CHAR16  *Key;\r
-\r
-  Key     = L"MAR10648567";\r
-  Buffer  = AllocateZeroPool (MaxSize);\r
-  ASSERT (Buffer != NULL);\r
-\r
-  for (Index = 0; Key[Index] != 0; Index++) {\r
-    for (Loop = 0; Loop < (UINT8) (MaxSize / 2); Loop++) {\r
-      Buffer[Loop] = (CHAR16) (Password[Loop] ^ Key[Index]);\r
-    }\r
-  }\r
-\r
-  CopyMem (Password, Buffer, MaxSize);\r
-\r
-  FreePool (Buffer);\r
-  return ;\r
-}\r
-\r
-/**\r
-  Validate the user's password.\r
-\r
-  @param PrivateData This driver's private context data.\r
-  @param StringId    The user's input.\r
-\r
-  @retval EFI_SUCCESS   The user's input matches the password.\r
-  @retval EFI_NOT_READY The user's input does not match the password.\r
-**/\r
-EFI_STATUS\r
-ValidatePassword (\r
-  IN       DRIVER_SAMPLE_PRIVATE_DATA      *PrivateData,\r
-  IN       EFI_STRING_ID                   StringId\r
-  )\r
-{\r
-  EFI_STATUS                      Status;\r
-  UINTN                           Index;\r
-  UINTN                           BufferSize;\r
-  UINTN                           PasswordMaxSize;\r
-  CHAR16                          *Password;\r
-  CHAR16                          *EncodedPassword;\r
-  BOOLEAN                         OldPassword;\r
-\r
-  //\r
-  // Get encoded password first\r
-  //\r
-  BufferSize = sizeof (DRIVER_SAMPLE_CONFIGURATION);\r
-  Status = gRT->GetVariable (\r
-                  VariableName,\r
-                  &gDriverSampleFormSetGuid,\r
-                  NULL,\r
-                  &BufferSize,\r
-                  &PrivateData->Configuration\r
-                  );\r
-  if (EFI_ERROR (Status)) {\r
-    //\r
-    // Old password not exist, prompt for new password\r
-    //\r
-    return EFI_SUCCESS;\r
-  }\r
-\r
-  OldPassword = FALSE;\r
-  PasswordMaxSize = sizeof (PrivateData->Configuration.WhatIsThePassword2);\r
-  //\r
-  // Check whether we have any old password set\r
-  //\r
-  for (Index = 0; Index < PasswordMaxSize / sizeof (UINT16); Index++) {\r
-    if (PrivateData->Configuration.WhatIsThePassword2[Index] != 0) {\r
-      OldPassword = TRUE;\r
-      break;\r
-    }\r
-  }\r
-  if (!OldPassword) {\r
-    //\r
-    // Old password not exist, return EFI_SUCCESS to prompt for new password\r
-    //\r
-    return EFI_SUCCESS;\r
-  }\r
-\r
-  //\r
-  // Get user input password\r
-  //\r
-  Password = HiiGetString (PrivateData->HiiHandle[0], StringId, NULL);\r
-  if (Password == NULL) {\r
-    return EFI_NOT_READY;\r
-  }\r
-  if (StrSize (Password) > PasswordMaxSize) {\r
-    FreePool (Password);\r
-    return EFI_NOT_READY;\r
-  }\r
-\r
-  //\r
-  // Validate old password\r
-  //\r
-  EncodedPassword = AllocateZeroPool (PasswordMaxSize);\r
-  ASSERT (EncodedPassword != NULL);\r
-  StrnCpyS (EncodedPassword, PasswordMaxSize / sizeof (CHAR16), Password, StrLen (Password));\r
-  EncodePassword (EncodedPassword, StrLen (EncodedPassword) * sizeof (CHAR16));\r
-  if (CompareMem (EncodedPassword, PrivateData->Configuration.WhatIsThePassword2, PasswordMaxSize) != 0) {\r
-    //\r
-    // Old password mismatch, return EFI_NOT_READY to prompt for error message\r
-    //\r
-    Status = EFI_NOT_READY;\r
-  } else {\r
-    Status = EFI_SUCCESS;\r
-  }\r
-\r
-  FreePool (Password);\r
-  FreePool (EncodedPassword);\r
-\r
-  return Status;\r
-}\r
-\r
-/**\r
-  Encode the password using a simple algorithm.\r
-\r
-  @param PrivateData This driver's private context data.\r
-  @param StringId    The password from User.\r
-\r
-  @retval  EFI_SUCESS The operation is successful.\r
-  @return  Other value if gRT->SetVariable () fails.\r
-\r
-**/\r
-EFI_STATUS\r
-SetPassword (\r
-  IN DRIVER_SAMPLE_PRIVATE_DATA      *PrivateData,\r
-  IN EFI_STRING_ID                   StringId\r
-  )\r
-{\r
-  EFI_STATUS                      Status;\r
-  CHAR16                          *Password;\r
-  CHAR16                          *TempPassword;\r
-  UINTN                           PasswordSize;\r
-  DRIVER_SAMPLE_CONFIGURATION     *Configuration;\r
-  UINTN                           BufferSize;\r
-\r
-  //\r
-  // Get Buffer Storage data from EFI variable\r
-  //\r
-  BufferSize = sizeof (DRIVER_SAMPLE_CONFIGURATION);\r
-  Status = gRT->GetVariable (\r
-                  VariableName,\r
-                  &gDriverSampleFormSetGuid,\r
-                  NULL,\r
-                  &BufferSize,\r
-                  &PrivateData->Configuration\r
-                  );\r
-  if (EFI_ERROR (Status)) {\r
-    return Status;\r
-  }\r
-\r
-  //\r
-  // Get user input password\r
-  //\r
-  Password = PrivateData->Configuration.WhatIsThePassword2;\r
-  PasswordSize = sizeof (PrivateData->Configuration.WhatIsThePassword2);\r
-  ZeroMem (Password, PasswordSize);\r
-\r
-  TempPassword = HiiGetString (PrivateData->HiiHandle[0], StringId, NULL);\r
-  if (TempPassword == NULL) {\r
-    return EFI_NOT_READY;\r
-  }\r
-  if (StrSize (TempPassword) > PasswordSize) {\r
-    FreePool (TempPassword);\r
-    return EFI_NOT_READY;\r
-  }\r
-  StrnCpyS (Password, PasswordSize / sizeof (CHAR16), TempPassword, StrLen (TempPassword));\r
-  FreePool (TempPassword);\r
-\r
-  //\r
-  // Retrieve uncommitted data from Browser\r
-  //\r
-  Configuration = AllocateZeroPool (sizeof (DRIVER_SAMPLE_CONFIGURATION));\r
-  ASSERT (Configuration != NULL);\r
-  if (HiiGetBrowserData (&gDriverSampleFormSetGuid, VariableName, sizeof (DRIVER_SAMPLE_CONFIGURATION), (UINT8 *) Configuration)) {\r
-    //\r
-    // Update password's clear text in the screen\r
-    //\r
-    CopyMem (Configuration->PasswordClearText, Password, StrSize (Password));\r
-\r
-    //\r
-    // Update uncommitted data of Browser\r
-    //\r
-    HiiSetBrowserData (\r
-       &gDriverSampleFormSetGuid,\r
-       VariableName,\r
-       sizeof (DRIVER_SAMPLE_CONFIGURATION),\r
-       (UINT8 *) Configuration,\r
-       NULL\r
-       );\r
-  }\r
-\r
-  //\r
-  // Free Configuration Buffer\r
-  //\r
-  FreePool (Configuration);\r
-\r
-\r
-  //\r
-  // Set password\r
-  //\r
-  EncodePassword (Password, StrLen (Password) * 2);\r
-  Status = gRT->SetVariable(\r
-                  VariableName,\r
-                  &gDriverSampleFormSetGuid,\r
-                  EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
-                  sizeof (DRIVER_SAMPLE_CONFIGURATION),\r
-                  &PrivateData->Configuration\r
-                  );\r
-  return Status;\r
-}\r
-\r
 /**\r
  Update names of Name/Value storage to current language.\r
 \r
@@ -1728,40 +1501,6 @@ DriverCallback (
       HiiFreeOpCodeHandle (EndOpCodeHandle);\r
       break;\r
 \r
-    case 0x2000:\r
-      //\r
-      // Only used to update the state.\r
-      //\r
-      if ((Type == EFI_IFR_TYPE_STRING) && (Value->string == 0) && \r
-        (PrivateData->PasswordState == BROWSER_STATE_SET_PASSWORD)) {\r
-        PrivateData->PasswordState = BROWSER_STATE_VALIDATE_PASSWORD;\r
-        return EFI_INVALID_PARAMETER;\r
-      }\r
-\r
-      //\r
-      // When try to set a new password, user will be chanlleged with old password.\r
-      // The Callback is responsible for validating old password input by user,\r
-      // If Callback return EFI_SUCCESS, it indicates validation pass.\r
-      //\r
-      switch (PrivateData->PasswordState) {\r
-      case BROWSER_STATE_VALIDATE_PASSWORD:\r
-        Status = ValidatePassword (PrivateData, Value->string);\r
-        if (Status == EFI_SUCCESS) {\r
-          PrivateData->PasswordState = BROWSER_STATE_SET_PASSWORD;\r
-        }\r
-        break;\r
-\r
-      case BROWSER_STATE_SET_PASSWORD:\r
-        Status = SetPassword (PrivateData, Value->string);\r
-        PrivateData->PasswordState = BROWSER_STATE_VALIDATE_PASSWORD;\r
-        break;\r
-\r
-      default:\r
-        break;\r
-      }\r
-\r
-      break;\r
-\r
     default:\r
       break;\r
     }\r
@@ -1983,7 +1722,6 @@ DriverSampleInit (
   mPrivateData->ConfigAccess.ExtractConfig = ExtractConfig;\r
   mPrivateData->ConfigAccess.RouteConfig = RouteConfig;\r
   mPrivateData->ConfigAccess.Callback = DriverCallback;\r
-  mPrivateData->PasswordState = BROWSER_STATE_VALIDATE_PASSWORD;\r
 \r
   //\r
   // Locate Hii Database protocol\r
index 97dee9c79a31c6bd3e6701e0dc7323b8559bb888..6c97239cf37c2881ec72d55a43e67578becb0340 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
 \r
-Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
@@ -84,7 +84,6 @@ typedef struct {
   EFI_HII_HANDLE                   HiiHandle[2];\r
   DRIVER_SAMPLE_CONFIGURATION      Configuration;\r
   MY_EFI_VARSTORE_DATA             VarStoreConfig;\r
-  UINT8                            PasswordState;\r
 \r
   //\r
   // Name/Value storage Name list\r
index 3dfacca746e66ee547674d3d9936c367292840e4..195cc8ad62e77da4cd0eea1ae0e312ec4d599b67 100644 (file)
@@ -34,9 +34,7 @@ Revision History:
 \r
 #pragma pack(1)\r
 typedef struct {\r
-  UINT16  WhatIsThePassword2[20];\r
   UINT16  MyStringData[40];\r
-  UINT16  PasswordClearText[20];\r
   UINT16  SomethingHiddenForHtml;\r
   UINT8   HowOldAreYouInYearsManual;\r
   UINT16  HowTallAreYouManual;\r
index fe9a4495e257a07587b9ab8a5ede94db60831358..4bdaf765bc2667016665a1b76e2e20db58d8a4f9 100644 (file)
@@ -458,26 +458,6 @@ formset
       help     = STRING_TOKEN(STR_MANUFACTURE_DEFAULT_HELP),\r
     endresetbutton;\r
 \r
-    string    varid    = MyIfrNVData.PasswordClearText,\r
-              prompt   = STRING_TOKEN(STR_MY_STRING_PROMPT),\r
-              help     = STRING_TOKEN(STR_MY_STRING_HELP),\r
-              minsize  = 6,\r
-              maxsize  = 0x14,\r
-              default  = STRING_TOKEN(STR_MY_STRING_DEFAULT),\r
-    endstring;\r
-\r
-    //\r
-    // Interactive password, validate via ConfigAccess.Callback()\r
-    //\r
-    password  varid    = MyIfrNVData.WhatIsThePassword2,\r
-              prompt   = STRING_TOKEN(STR_PASSWORD_CALLBACK_PROMPT),\r
-              help     = STRING_TOKEN(STR_PASSWORD_HELP),\r
-              flags    = INTERACTIVE,\r
-              key      = 0x2000,\r
-              minsize  = 6,\r
-              maxsize  = 20,\r
-    endpassword;\r
-\r
     //\r
     // Sample use case for IFR Security op-code\r
     //\r
index 8d4448cc7fbbd562cbd7f7c06815c62cad643f56..8d24a476f32886edb13c0552ea0d78202094a926 100644 (file)
 #string STR_NUMERIC_HELP3              #language en-US "This is the help for those who are curious about body height. Type how tall you are in a numeric value.  The valid range in this case is from 0 to 190.  Let's see if you actually read this help and figure that out."\r
                                        #language fr-FR "Ésta es la ayuda para los que sean demasiado viejos entender la pregunta. Pulse cómo es viejo usted está en años."\r
 \r
-#string STR_PASSWORD_CALLBACK_PROMPT   #language en-US "Set the system password - Interactive"\r
-                                       #language fr-FR "Cuál es la palabra mágica? - Interactive"\r
 #string STR_PASSWORD_PROMPT            #language en-US "Set the system password"\r
                                        #language fr-FR "Cuál es la palabra mágica?"\r
-#string STR_PASSWORD_HELP              #language en-US "This is a system password which will likely be used by the BDS architecture in its platform portion of the code.  There is a very simple encryption in this sample and the password will be stored in NVRAM in its encrypted form."\r
-                                       #language fr-FR "Esto es analgous a mí que le pregunta cuál es su palabra de paso."\r
 #string STR_TEXT_SECRUITY_TEST_TEXT    #language en-US "Access only permitted for Admin"\r
                                        #language fr-FR "Access only permitted for Admin"\r
 #string STR_TEXT_SECRUITY_TEST_HELP    #language en-US "If this label is not gray, then current user has admin access setup permission. If this label is gray, then current user has no admin access setup permission."\r
                                        #language fr-FR "Éste es mi mensaje de error contrario."\r
 #string STR_ERROR_POPUP                #language en-US "You typed in something bad!"\r
                                        #language fr-FR "Esto es un mensaje de error del popup."\r
-#string STR_MY_STRING_PROMPT           #language en-US "Password you typed in is"\r
-                                       #language fr-FR "Password you typed in is"\r
-#string STR_MY_STRING_HELP             #language en-US "This is my string help"\r
-                                       #language fr-FR "This is my string help"\r
 #string STR_MY_STRING_DEFAULT          #language en-US "my password"\r
                                        #language fr-FR "my password"\r
 #string STR_MY_STRING_PROMPT2          #language en-US "String - Interactive"\r