Qin & Jiewen Tks for your comments , I will follow up to update the patch.
-----Original Message----- From: Yao, Jiewen Sent: Tuesday, February 6, 2018 10:33 AM To: Long, Qin <[email protected]>; Zhang, Chao B <[email protected]>; [email protected] Subject: RE: [PATCH] SecurityPkg: Support PP version lower than 1.3 Yeah. I suggest we just use sizeof() for the fixed string. > -----Original Message----- > From: Long, Qin > Sent: Tuesday, February 6, 2018 10:30 AM > To: Zhang, Chao B <[email protected]>; [email protected] > Cc: Yao, Jiewen <[email protected]> > Subject: RE: [PATCH] SecurityPkg: Support PP version lower than 1.3 > > Could you update the AsciiStrLen usage with safe version, or direct > "sizeof()"? > Others looks good to me. > > Reviewed-by: Long Qin <[email protected]> > > > Best Regards & Thanks, > LONG, Qin > > -----Original Message----- > From: Zhang, Chao B > Sent: Monday, February 5, 2018 10:32 AM > To: [email protected] > Cc: Long, Qin <[email protected]>; Yao, Jiewen > <[email protected]>; Zhang, Chao B <[email protected]> > Subject: [PATCH] SecurityPkg: Support PP version lower than 1.3 > > TCG PP 1.2 & PP 1.3 spec defined different Opcodes. > Update code to support both. > > Cc: Long Qin <[email protected]> > Cc: Yao Jiewen <[email protected]> > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Chao Zhang <[email protected]> > --- > .../SmmTcg2PhysicalPresenceLib.c | 31 > +++++++++++++++++----- > .../SmmTcg2PhysicalPresenceLib.inf | 7 +++-- > 2 files changed, 30 insertions(+), 8 deletions(-) > > diff --git > a/SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/SmmTcg2PhysicalPresen > ce > Lib.c > b/SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/SmmTcg2PhysicalPresen > ce > Lib.c > index 6061453..ffade10 100644 > --- > a/SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/SmmTcg2PhysicalPresen > ce > Lib.c > +++ b/SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/SmmTcg2PhysicalPr > +++ es > +++ enceLib.c > @@ -10,7 +10,7 @@ > Tcg2PhysicalPresenceLibSubmitRequestToPreOSFunction() and > Tcg2PhysicalPresenceLibGetUserConfirmationStatusFunction() > will receive untrusted input and do validation. > > -Copyright (c) 2015 - 2017, Intel Corporation. All rights > reserved.<BR> > +Copyright (c) 2015 - 2018, Intel Corporation. All rights > +reserved.<BR> > This program and the accompanying materials are licensed and made > available under the terms and conditions of the BSD License which > accompanies this distribution. The full text of the license may be > found at @@ > -27,12 +27,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, > EITHER EXPRESS OR IMPLIED. > > #include <Protocol/SmmVariable.h> > > +#include <Library/BaseLib.h> > #include <Library/DebugLib.h> > #include <Library/BaseMemoryLib.h> > #include <Library/Tcg2PpVendorLib.h> > #include <Library/SmmServicesTableLib.h> > > +#define PP_INF_VERSION_1_2 "1.2" > + > EFI_SMM_VARIABLE_PROTOCOL *mTcg2PpSmmVariable; > +BOOLEAN mIsTcg2PPVerLowerThan_1_3 = FALSE; > > /** > The handler for TPM physical presence function: > @@ -337,11 +341,22 @@ > Tcg2PhysicalPresenceLibGetUserConfirmationStatusFunction ( > break; > > default: > - if (OperationRequest < > TCG2_PHYSICAL_PRESENCE_VENDOR_SPECIFIC_OPERATION) { > - // > - // TCG PP spec defined operations that are reserved or > un-implemented > - // > - return TCG_PP_GET_USER_CONFIRMATION_NOT_IMPLEMENTED; > + if (mIsTcg2PPVerLowerThan_1_3 == FALSE) { > + if (OperationRequest < > TCG2_PHYSICAL_PRESENCE_VENDOR_SPECIFIC_OPERATION) { > + // > + // TCG2 PP1.3 spec defined operations that are reserved or > un-implemented > + // > + return TCG_PP_GET_USER_CONFIRMATION_NOT_IMPLEMENTED; > + } > + } else { > + // > + // TCG PP lower than 1.3. (1.0, 1.1, 1.2) > + // > + if (OperationRequest <= > TCG2_PHYSICAL_PRESENCE_NO_ACTION_MAX) { > + RequestConfirmed = TRUE; > + } else if (OperationRequest < > TCG2_PHYSICAL_PRESENCE_VENDOR_SPECIFIC_OPERATION) { > + return TCG_PP_GET_USER_CONFIRMATION_NOT_IMPLEMENTED; > + } > } > break; > } > @@ -377,6 +392,10 @@ Tcg2PhysicalPresenceLibConstructor ( { > EFI_STATUS Status; > > + if (AsciiStrnCmp(PP_INF_VERSION_1_2, (CHAR8 > *)PcdGetPtr(PcdTcgPhysicalPresenceInterfaceVer), > AsciiStrLen(PP_INF_VERSION_1_2)) <=0) { > + mIsTcg2PPVerLowerThan_1_3 = TRUE; } > + > // > // Locate SmmVariableProtocol. > // > diff --git > a/SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/SmmTcg2PhysicalPresen > ce > Lib.inf > b/SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/SmmTcg2PhysicalPresen > ce > Lib.inf > index 5fa84b1..8367097 100644 > --- > a/SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/SmmTcg2PhysicalPresen > ce > Lib.inf > +++ b/SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/SmmTcg2PhysicalPr > +++ es > +++ enceLib.inf > @@ -7,7 +7,7 @@ > # This driver will have external input - variable. > # This external input must be validated carefully to avoid security issue. > # > -# Copyright (c) 2015, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) 2015 - 2018, Intel Corporation. All rights > +reserved.<BR> > # This program and the accompanying materials # are licensed and > made available under the terms and conditions of the BSD License # > which accompanies this distribution. The full text of the license may > be found at @@ > -52,6 +52,9 @@ > ## SOMETIMES_CONSUMES ## Variable:L"PhysicalPresence" > ## SOMETIMES_CONSUMES ## Variable:L"PhysicalPresenceFlags" > gEfiTcg2PhysicalPresenceGuid > - > + > +[Pcd] > + gEfiSecurityPkgTokenSpaceGuid.PcdTcgPhysicalPresenceInterfaceVer > +## CONSUMES > + > [Depex] > gEfiSmmVariableProtocolGuid > \ No newline at end of file > -- > 1.9.5.msysgit.1 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

