From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by mx.groups.io with SMTP id smtpd.web12.15897.1591196957869519710 for ; Wed, 03 Jun 2020 08:09:18 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@nuviainc-com.20150623.gappssmtp.com header.s=20150623 header.b=xAaYw1Ds; spf=pass (domain: nuviainc.com, ip: 209.85.221.66, mailfrom: leif@nuviainc.com) Received: by mail-wr1-f66.google.com with SMTP id r7so2784899wro.1 for ; Wed, 03 Jun 2020 08:09:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nuviainc-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=uitfpitd/qqfYr/cEWjFBKt48VUgoCxZi+ExFGo54pc=; b=xAaYw1Ds2u026fNB7g2n+eMoB0pNW+bNMe0dR+Ju+6pvzp2vdViZn2Lo2jSI6zhrhj TPwnMg/twLcVPpXiuBxk0fMGt6IXmu74nEILCebzLGmk1jLFhJy0QMTefJLhr7Puwqxv cwMA7ZmZhdoNIaeWxrlkgFw3Pit5zeJWp/Qa36tFriEtxZJbXNc2J5/rrU8hkn27hIZi IvT+EI6k9mIW9UhkBrQruiAjD6DIwDSQxiShI5e55CV7N9KNmRPBbPJuw731H1bvx1Uv PRczXXu2WjEaWk530pAoG2A9z12KjjJqAt8qLLfTDoRDQINqMaGRgXapLIOuKkiuZjz1 jOCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=uitfpitd/qqfYr/cEWjFBKt48VUgoCxZi+ExFGo54pc=; b=ua4lcnv92t09nddCIc3v9jhYxGtOSEvfssMNeBPUwN1J9mAjJJPK1BaSyNoxHs/8JS +6YrjxyJf8MQhDJGU3v6qWtt4Yv7NdlFZZi+jFJiF38l8EETDKvY3QpgJdVyN/NcoaW/ mRge4DKInjryscSLdg+g5fvOHv11PBIstLHv9rXIW5R+vfm8eace1j2aL3MHGJz2/sMI t+SJwFoYhbt7k3/3kAGS2H5JGupZCfV5MHZXjSEBSCvVKIU4UrLe5OX1rsbmGLjxe4Cp aPZTrS/tEwSz36RyoMqAowBZeueb8qnNPuF/KAqT36aOUO2SNZlVeZH/uEGb75hbBQqV qN6Q== X-Gm-Message-State: AOAM533nIRdvIGEtHBQ6fht1iYAiTf/ASDuFeLz9JsQ7ygHCcMJQ32mg KDLAnexBcZKaxyQj1YFUhghr2Zos1NwUZ6aGAgHDgQYSWaEOWweSUpAnKb+B471n1zBaT6zf2l+ riNtHz1AB4KgOcFiFYSxwiRNVin+vNOMmwhR9B2Hnl9yni+8TdlsIO0P84wafDo8R3A== X-Google-Smtp-Source: ABdhPJxOosV/YTOOgcN5/dCEU01XJtbnAYq23+LISuOi2vHNTFfA9RakNYm1sitNhYzwB45lA6vmjQ== X-Received: by 2002:adf:97d3:: with SMTP id t19mr32290179wrb.116.1591196956032; Wed, 03 Jun 2020 08:09:16 -0700 (PDT) Return-Path: Received: from vanye ([2001:470:1f09:12f0:b26e:bfff:fea9:f1b8]) by smtp.gmail.com with ESMTPSA id k17sm3249586wmj.15.2020.06.03.08.09.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Jun 2020 08:09:15 -0700 (PDT) Date: Wed, 3 Jun 2020 16:09:13 +0100 From: "Leif Lindholm" To: devel@edk2.groups.io, bret@corthon.com Cc: Liming Gao , Laszlo Ersek , Ard Biesheuvel , Andrew Fish Subject: Re: [edk2-devel] [PATCH v5 00/14] Add the VariablePolicy feature Message-ID: <20200603150913.GS28566@vanye> References: <20200603065810.806-1-brbarkel@microsoft.com> MIME-Version: 1.0 In-Reply-To: <20200603065810.806-1-brbarkel@microsoft.com> User-Agent: Mutt/1.10.1 (2018-07-13) Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Bret, I don't have any comments on the content of these patches, but I have a couple about metadata: You're submitting the patches from bret@corthon.org, but signing them off with Bret Barkelew . This way the Microsoft authorship metadata is not preserved, which I think is unfortunate. It also leaves the relationship between bret@corthon.com and brbarkel@microsoft.com somewhat unofficial. If this is exactly as intended, feel free to stop reading here. If not, I have some suggestions. - It would be a good clarification if one of you could submit a patch to edk2/.mailmap associating the addresses, and the other giving it a Reviewed-by. - Can we use brbarkel@microsoft.com as the author of the patches? I'm sure whoever stages this set as a pull request would be happy to do it this time around, but for future sets, if you set up local git configuration for edk2 with user.email as @microsoft.com, you should still be able to set (local or global) sendemail.from as @corthon.com. Finally, it would be nice if bret@corthon.com could "become a member" of edk2.groups.io, and then set the subscription to "no email". This way, you don't get duplicated emails, but it lets us add the corthon address to the sender whitelist, so your patches stop getting stuck in moderation. Best Regards, Leif On Tue, Jun 02, 2020 at 23:57:56 -0700, Bret Barkelew wrote: > REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2522 > > The 14 patches in this series add the VariablePolicy feature to the core, > deprecate Edk2VarLock (while adding a compatibility layer to reduce code > churn), and integrate the VariablePolicy libraries and protocols into > Variable Services. > > Since the integration requires multiple changes, including adding libraries, > a protocol, an SMI communication handler, and VariableServices integration, > the patches are broken up by individual library additions and then a final > integration. Security-sensitive changes like bypassing Authenticated > Variable enforcement are also broken out into individual patches so that > attention can be called directly to them. > > Platform porting instructions are described in this wiki entry: > https://github.com/tianocore/tianocore.github.io/wiki/VariablePolicy-Protocol---Enhanced-Method-for-Managing-Variables#platform-porting > > Discussion of the feature can be found in multiple places throughout > the last year on the RFC channel, staging branches, and in devel. > > Most recently, this subject was discussed in this thread: > https://edk2.groups.io/g/devel/message/53712 > (the code branches shared in that discussion are now out of date, but the > whitepapers and discussion are relevant). > > Cc: Jiewen Yao > Cc: Chao Zhang > Cc: Jian J Wang > Cc: Hao A Wu > Cc: Liming Gao > Cc: Jordan Justen > Cc: Laszlo Ersek > Cc: Ard Biesheuvel > Cc: Andrew Fish > Cc: Ray Ni > Cc: Bret Barkelew > Signed-off-by: Bret Barkelew > > v5 changes: > * Fix the CONST mismatch in VariablePolicy.h and VariablePolicySmmDxe.c > * Fix EFIAPI mismatches in the functional unittest > * Rebase on latest origin/master > > v4 changes: > * Remove Optional PcdAllowVariablePolicyEnforcementDisable PCD from platforms > * Rebase on master > * Migrate to new MmCommunicate2 protocol > * Fix an oversight in the default return value for InitMmCommonCommBuffer > * Fix in VariablePolicyLib to allow ExtraInitRuntimeDxe to consume variables > > V3 changes: > * Address all non-unittest issues with ECC > * Make additional style changes > * Include section name in hunk headers in "ini-style" files > * Remove requirement for the EdkiiPiSmmCommunicationsRegionTable driver > (now allocates its own buffer) > * Change names from VARIABLE_POLICY_PROTOCOL and gVariablePolicyProtocolGuid > to EDKII_VARIABLE_POLICY_PROTOCOL and gEdkiiVariablePolicyProtocolGuid > * Fix GCC warning about initializing externs > * Add UNI strings for new PCD > * Add patches for ArmVirtPkg, OvmfXen, and UefiPayloadPkg > * Reorder patches according to Liming's feedback about adding to platforms > before changing variable driver > > V2 changes: > * Fixed implementation for RuntimeDxe > * Add PCD to block DisableVariablePolicy > * Fix the DumpVariablePolicy pagination in SMM > > Bret Barkelew (14): > MdeModulePkg: Define the VariablePolicy protocol interface > MdeModulePkg: Define the VariablePolicyLib > MdeModulePkg: Define the VariablePolicyHelperLib > MdeModulePkg: Define the VarCheckPolicyLib and SMM interface > OvmfPkg: Add VariablePolicy engine to OvmfPkg platform > EmulatorPkg: Add VariablePolicy engine to EmulatorPkg platform > ArmVirtPkg: Add VariablePolicy engine to ArmVirtPkg platform > UefiPayloadPkg: Add VariablePolicy engine to UefiPayloadPkg platform > MdeModulePkg: Connect VariablePolicy business logic to > VariableServices > MdeModulePkg: Allow VariablePolicy state to delete protected variables > SecurityPkg: Allow VariablePolicy state to delete authenticated > variables > MdeModulePkg: Change TCG MOR variables to use VariablePolicy > MdeModulePkg: Drop VarLock from RuntimeDxe variable driver > MdeModulePkg: Add a shell-based functional test for VariablePolicy > > MdeModulePkg/Library/VarCheckPolicyLib/VarCheckPolicyLib.c | 320 +++ > MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.c | 396 ++++ > MdeModulePkg/Library/VariablePolicyLib/VariablePolicyExtraInitNull.c | 46 + > MdeModulePkg/Library/VariablePolicyLib/VariablePolicyExtraInitRuntimeDxe.c | 85 + > MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.c | 813 +++++++ > MdeModulePkg/Library/VariablePolicyLib/VariablePolicyUnitTest/VariablePolicyUnitTest.c | 2436 ++++++++++++++++++++ > MdeModulePkg/Test/ShellTest/VariablePolicyFuncTestApp/VariablePolicyFuncTestApp.c | 1978 ++++++++++++++++ > MdeModulePkg/Universal/Variable/RuntimeDxe/TcgMorLockDxe.c | 52 +- > MdeModulePkg/Universal/Variable/RuntimeDxe/TcgMorLockSmm.c | 60 +- > MdeModulePkg/Universal/Variable/RuntimeDxe/VarCheck.c | 49 +- > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c | 53 + > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableLockRequstToLock.c | 71 + > MdeModulePkg/Universal/Variable/RuntimeDxe/VariablePolicySmmDxe.c | 642 ++++++ > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.c | 14 + > SecurityPkg/Library/AuthVariableLib/AuthService.c | 22 +- > ArmVirtPkg/ArmVirt.dsc.inc | 4 + > EmulatorPkg/EmulatorPkg.dsc | 3 + > MdeModulePkg/Include/Guid/VarCheckPolicyMmi.h | 54 + > MdeModulePkg/Include/Library/VariablePolicyHelperLib.h | 164 ++ > MdeModulePkg/Include/Library/VariablePolicyLib.h | 207 ++ > MdeModulePkg/Include/Protocol/VariablePolicy.h | 157 ++ > MdeModulePkg/Library/VarCheckPolicyLib/VarCheckPolicyLib.inf | 42 + > MdeModulePkg/Library/VarCheckPolicyLib/VarCheckPolicyLib.uni | 12 + > MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf | 35 + > MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.uni | 12 + > MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.inf | 44 + > MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.uni | 12 + > MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLibRuntimeDxe.inf | 51 + > MdeModulePkg/Library/VariablePolicyLib/VariablePolicyUnitTest/VariablePolicyUnitTest.inf | 40 + > MdeModulePkg/MdeModulePkg.ci.yaml | 4 +- > MdeModulePkg/MdeModulePkg.dec | 26 +- > MdeModulePkg/MdeModulePkg.dsc | 15 + > MdeModulePkg/MdeModulePkg.uni | 7 + > MdeModulePkg/Test/MdeModulePkgHostTest.dsc | 11 + > MdeModulePkg/Test/ShellTest/VariablePolicyFuncTestApp/Readme.md | 55 + > MdeModulePkg/Test/ShellTest/VariablePolicyFuncTestApp/VariablePolicyFuncTestApp.inf | 42 + > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf | 5 + > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf | 4 + > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf | 10 + > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableStandaloneMm.inf | 4 + > OvmfPkg/OvmfPkgIa32.dsc | 5 + > OvmfPkg/OvmfPkgIa32X64.dsc | 5 + > OvmfPkg/OvmfPkgX64.dsc | 5 + > OvmfPkg/OvmfXen.dsc | 4 + > SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf | 2 + > UefiPayloadPkg/UefiPayloadPkgIa32.dsc | 4 + > UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc | 4 + > 47 files changed, 8008 insertions(+), 78 deletions(-) > create mode 100644 MdeModulePkg/Library/VarCheckPolicyLib/VarCheckPolicyLib.c > create mode 100644 MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.c > create mode 100644 MdeModulePkg/Library/VariablePolicyLib/VariablePolicyExtraInitNull.c > create mode 100644 MdeModulePkg/Library/VariablePolicyLib/VariablePolicyExtraInitRuntimeDxe.c > create mode 100644 MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.c > create mode 100644 MdeModulePkg/Library/VariablePolicyLib/VariablePolicyUnitTest/VariablePolicyUnitTest.c > create mode 100644 MdeModulePkg/Test/ShellTest/VariablePolicyFuncTestApp/VariablePolicyFuncTestApp.c > create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/VariableLockRequstToLock.c > create mode 100644 MdeModulePkg/Universal/Variable/RuntimeDxe/VariablePolicySmmDxe.c > create mode 100644 MdeModulePkg/Include/Guid/VarCheckPolicyMmi.h > create mode 100644 MdeModulePkg/Include/Library/VariablePolicyHelperLib.h > create mode 100644 MdeModulePkg/Include/Library/VariablePolicyLib.h > create mode 100644 MdeModulePkg/Include/Protocol/VariablePolicy.h > create mode 100644 MdeModulePkg/Library/VarCheckPolicyLib/VarCheckPolicyLib.inf > create mode 100644 MdeModulePkg/Library/VarCheckPolicyLib/VarCheckPolicyLib.uni > create mode 100644 MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf > create mode 100644 MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.uni > create mode 100644 MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.inf > create mode 100644 MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.uni > create mode 100644 MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLibRuntimeDxe.inf > create mode 100644 MdeModulePkg/Library/VariablePolicyLib/VariablePolicyUnitTest/VariablePolicyUnitTest.inf > create mode 100644 MdeModulePkg/Test/ShellTest/VariablePolicyFuncTestApp/Readme.md > create mode 100644 MdeModulePkg/Test/ShellTest/VariablePolicyFuncTestApp/VariablePolicyFuncTestApp.inf > > -- > 2.26.2.windows.1.8.g01c50adf56.20200515075929 > > > >