<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:DengXian;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:"\@DengXian";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:2091997997;
mso-list-template-ids:-1;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Thoughts?</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">- Bret <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> devel@edk2.groups.io <devel@edk2.groups.io> on behalf of Bret Barkelew via groups.io <bret.barkelew=microsoft.com@groups.io><br>
<b>Sent:</b> Wednesday, August 11, 2021 12:37:52 PM<br>
<b>To:</b> devel@edk2.groups.io <devel@edk2.groups.io>; bret@corthon.com <bret@corthon.com><br>
<b>Cc:</b> Yao, Jiewen <jiewen.yao@intel.com>; Jian J Wang <jian.j.wang@intel.com>; Qi Zhang <qi1.zhang@intel.com>; Rahul Kumar <rahul1.kumar@intel.com><br>
<b>Subject:</b> Re: [EXTERNAL] [edk2-devel] [PATCH v1 1/1] SecurityPkg/Library: Add Tpm2NvUndefineSpaceSpecial to Tpm2CommandLib</font>
<div> </div>
</div>
<style>
<!--
@font-face
{font-family:"Cambria Math"}
@font-face
{font-family:DengXian}
@font-face
{font-family:Calibri}
@font-face
{}
p.x_MsoNormal, li.x_MsoNormal, div.x_MsoNormal
{margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif}
.x_MsoChpDefault
{}
@page WordSection1
{margin:1.0in 1.0in 1.0in 1.0in}
div.x_WordSection1
{}
ol
{margin-bottom:0in}
ul
{margin-bottom:0in}
-->
</style>
<div lang="EN-US" link="blue" vlink="#954F72" style="word-wrap:break-word">
<div class="x_WordSection1">
<p class="x_MsoNormal">Thoughts?</p>
<p class="x_MsoNormal"> </p>
<p class="x_MsoNormal">- Bret </p>
<p class="x_MsoNormal"> </p>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> devel@edk2.groups.io <devel@edk2.groups.io> on behalf of Bret Barkelew via groups.io <bret.barkelew=microsoft.com@groups.io><br>
<b>Sent:</b> Wednesday, August 4, 2021 9:32:32 AM<br>
<b>To:</b> devel@edk2.groups.io <devel@edk2.groups.io>; bret@corthon.com <bret@corthon.com><br>
<b>Cc:</b> Yao, Jiewen <jiewen.yao@intel.com>; Jian J Wang <jian.j.wang@intel.com>; Qi Zhang <qi1.zhang@intel.com>; Rahul Kumar <rahul1.kumar@intel.com><br>
<b>Subject:</b> Re: [EXTERNAL] [edk2-devel] [PATCH v1 1/1] SecurityPkg/Library: Add Tpm2NvUndefineSpaceSpecial to Tpm2CommandLib</font>
<div> </div>
</div>
<style>
<!--
@font-face
{font-family:"Cambria Math"}
@font-face
{font-family:DengXian}
@font-face
{font-family:Calibri}
@font-face
{font-family:Consolas}
p.x_x_MsoNormal, li.x_x_MsoNormal, div.x_x_MsoNormal
{margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif}
a:link, span.x_x_MsoHyperlink
{color:blue;
text-decoration:underline}
p.x_x_MsoListParagraph, li.x_x_MsoListParagraph, div.x_x_MsoListParagraph
{margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
font-size:11.0pt;
font-family:"Calibri",sans-serif}
@page WordSection1
{margin:1.0in 1.0in 1.0in 1.0in}
ol
{margin-bottom:0in}
ul
{margin-bottom:0in}
-->
</style>
<div lang="EN-US" style="word-wrap:break-word">
<div class="x_x_WordSection1">
<p class="x_x_MsoNormal">Poking this one.</p>
<p class="x_x_MsoNormal"> </p>
<ol start="1" type="1" style="margin-top:0in">
<li class="x_x_MsoListParagraph" style="margin-left:0in">It’s a easy review with small, obvious code change.</li><li class="x_x_MsoListParagraph" style="margin-left:0in">I need some answers on “when is it okay to violate ECC/PatchCheck, if the new code matches the style of the existing code. Should I endeavor to pass the PatchCheck and ECCCheck with this patch only, and
leave it in conflict with the rest of the file?</li></ol>
<p class="x_x_MsoNormal"> </p>
<p class="x_x_MsoNormal">Thanks!</p>
<p class="x_x_MsoNormal"> </p>
<p class="x_x_MsoNormal">- Bret </p>
<p class="x_x_MsoNormal"> </p>
<div style="border:none; border-top:solid #E1E1E1 1.0pt; padding:3.0pt 0in 0in 0in">
<p class="x_x_MsoNormal" style="border:none; padding:0in"><b>From: </b><a href="mailto:bret.barkelew=microsoft.com@groups.io">Bret Barkelew via groups.io</a><br>
<b>Sent: </b>Friday, July 30, 2021 11:08 AM<br>
<b>To: </b><a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a>; <a href="mailto:bret@corthon.com">
bret@corthon.com</a><br>
<b>Cc: </b><a href="mailto:jiewen.yao@intel.com">Yao, Jiewen</a>; <a href="mailto:jian.j.wang@intel.com">
Jian J Wang</a>; <a href="mailto:qi1.zhang@intel.com">Qi Zhang</a>; <a href="mailto:rahul1.kumar@intel.com">
Rahul Kumar</a><br>
<b>Subject: </b>Re: [EXTERNAL] [edk2-devel] [PATCH v1 1/1] SecurityPkg/Library: Add Tpm2NvUndefineSpaceSpecial to Tpm2CommandLib</p>
</div>
<p class="x_x_MsoNormal"> </p>
<p class="x_x_MsoNormal">Note, even though this keeps with the style of the rest of the file, it breaks ECC:</p>
<p class="x_x_MsoNormal"><a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F1848&data=04%7C01%7Cbret.barkelew%40microsoft.com%7Cba78a3e7f9c74b56180308d95cff85ac%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637643074816403966%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=W6%2FZUYQmTc5I6ks8woDCoBw%2FtTmYrNn79jtLB8fEeYE%3D&reserved=0" originalsrc="https://github.com/tianocore/edk2/pull/1848" shash="EPioUTPQfZMluWeDlqMXgHJCsGaecUf9dXUDI7/Luc1iWnoWiiMiQdpwzNs8PnPw670yycRKnj4BJKkb2C0xEN+F7ZTpVZtbZcOC6ED0CGVNX2dA+6rh2sM76yxM1dVqWqw5gelN7HFMum3iV18APjgtKVg0dvdySUi633dHXIs=" originalsrc="https://github.com/tianocore/edk2/pull/1848" shash="iMOudcRgJVZIuryWzax4Ht+MK6k3X4D0JwC0ROjEVynVjznLt93pdPWReNcCKPS2U8p2vYUX9gPAjXoHUkF0ELkdpboSk2mNu2EVJKj5IABATTD65ZVwfukQICjbhSsOJHXHz7W1CKjzF+AFo8TerV3pBRbM7NYUUi+78n59Klg=">SecurityPkg/Library:
Add Tpm2NvUndefineSpaceSpecial to Tpm2CommandLib by corthon · Pull Request #1848 · tianocore/edk2 (github.com)</a></p>
<p class="x_x_MsoNormal"> </p>
<div>
<div>
<p class="x_x_MsoNormal" style="background:#201F1E"><span class="x_x_pl-plain"><span style="font-size:9.0pt; font-family:Consolas; color:#E1DFDD">PROGRESS - --Running SecurityPkg: EccCheck Test NO-TARGET --
</span></span><span style="font-size:9.0pt; font-family:Consolas; color:#E1DFDD"></span></p>
</div>
<div>
<p class="x_x_MsoNormal" style="background:#201F1E"><span class="x_x_pl-plain"><span style="font-size:9.0pt; font-family:Consolas; color:#E1DFDD">ERROR -
</span></span><span style="font-size:9.0pt; font-family:Consolas; color:#E1DFDD"></span></p>
</div>
<div>
<p class="x_x_MsoNormal" style="background:#201F1E"><span class="x_x_pl-plain"><span style="font-size:9.0pt; font-family:Consolas; color:#E1DFDD">ERROR -
</span></span><span style="font-size:9.0pt; font-family:Consolas; color:#E1DFDD"></span></p>
</div>
<div>
<p class="x_x_MsoNormal" style="background:#201F1E"><span class="x_x_pl-plain"><span style="font-size:9.0pt; font-family:Consolas; color:#E1DFDD">ERROR - EFI coding style error
</span></span><span style="font-size:9.0pt; font-family:Consolas; color:#E1DFDD"></span></p>
</div>
<div>
<p class="x_x_MsoNormal" style="background:#201F1E"><span class="x_x_pl-plain"><span style="font-size:9.0pt; font-family:Consolas; color:#E1DFDD">ERROR - *Error code: 8001
</span></span><span style="font-size:9.0pt; font-family:Consolas; color:#E1DFDD"></span></p>
</div>
<div>
<p class="x_x_MsoNormal" style="background:#201F1E"><span class="x_x_pl-plain"><span style="font-size:9.0pt; font-family:Consolas; color:#E1DFDD">ERROR - *Only capital letters are allowed to be used for #define declarations
</span></span><span style="font-size:9.0pt; font-family:Consolas; color:#E1DFDD"></span></p>
</div>
<div>
<p class="x_x_MsoNormal" style="background:#201F1E"><span class="x_x_pl-plain"><span style="font-size:9.0pt; font-family:Consolas; color:#E1DFDD">ERROR - *file: //home/vsts/work/1/s/SecurityPkg/Library/Tpm2CommandLib/Tpm2NVStorage.c
</span></span><span style="font-size:9.0pt; font-family:Consolas; color:#E1DFDD"></span></p>
</div>
<div>
<p class="x_x_MsoNormal" style="background:#201F1E"><span class="x_x_pl-plain"><span style="font-size:9.0pt; font-family:Consolas; color:#E1DFDD">ERROR - *Line number: 27
</span></span><span style="font-size:9.0pt; font-family:Consolas; color:#E1DFDD"></span></p>
</div>
<div>
<p class="x_x_MsoNormal" style="background:#201F1E"><span class="x_x_pl-plain"><span style="font-size:9.0pt; font-family:Consolas; color:#E1DFDD">ERROR - *The #define name [RC_NV_UndefineSpaceSpecial_nvIndex] does no</span></span><span style="font-size:9.0pt; font-family:Consolas; color:#E1DFDD"></span></p>
</div>
</div>
<p class="x_x_MsoNormal"> </p>
<p class="x_x_MsoNormal">Thoughts?</p>
<p class="x_x_MsoNormal"> </p>
<p class="x_x_MsoNormal">- Bret </p>
<p class="x_x_MsoNormal"> </p>
<div style="border:none; border-top:solid #E1E1E1 1.0pt; padding:3.0pt 0in 0in 0in">
<p class="x_x_MsoNormal"><b>From: </b><a href="mailto:bret=corthon.com@groups.io">Bret Barkelew via groups.io</a><br>
<b>Sent: </b>Friday, July 30, 2021 10:55 AM<br>
<b>To: </b><a href="mailto:devel@edk2.groups.io">devel@edk2.groups.io</a><br>
<b>Cc: </b><a href="mailto:jiewen.yao@intel.com">Yao, Jiewen</a>; <a href="mailto:jian.j.wang@intel.com">
Jian J Wang</a>; <a href="mailto:qi1.zhang@intel.com">Qi Zhang</a>; <a href="mailto:rahul1.kumar@intel.com">
Rahul Kumar</a><br>
<b>Subject: </b>[EXTERNAL] [edk2-devel] [PATCH v1 1/1] SecurityPkg/Library: Add Tpm2NvUndefineSpaceSpecial to Tpm2CommandLib</p>
</div>
<p class="x_x_MsoNormal"> </p>
<p class="x_x_MsoNormal" style="margin-bottom:12.0pt">Used to provision and maintain certain HW-defined NV spaces.<br>
<br>
REF: <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D2994&data=04%7C01%7Cbret.barkelew%40microsoft.com%7Cba78a3e7f9c74b56180308d95cff85ac%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637643074816413922%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=AaKL%2BDQTryN6x9nNVyvMDuV%2B04EkYV%2BVYuXC2aVw4n4%3D&reserved=0" originalsrc="https://bugzilla.tianocore.org/show_bug.cgi?id=2994" shash="IvA33vIiOekHMXd1o3kQoMvkml5V1A16+VNpS36WzBoCYR1eWPl3sTMunj55ADYS0yWgenfl8coGZ713uZX/gP1yFFddntl3DgoVaEoldyJ+pR/N36mA0p5hZfUY9oR5KkeiC295GkJPjSc5Gc0CjDmQqv3bORpI32JgoW145UE=" originalsrc="https://bugzilla.tianocore.org/show_bug.cgi?id=2994" shash="oYvX3QlPRRnxR00VAxWVBP2pxhwX19F6Hyd2DFuv3Jo0qy/y9016iVWNO2pqDmEfmd6zl3yyXlBNnDvJrwM0BkWTi41EbDex+EbJHD0Kznj68z6BgfLyofEkk8hpNeFuFbV85lTX3fVZDU6mG83PO24n7Sp42e7nTdJ/DGJDphk=">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D2994&data=04%7C01%7CBret.Barkelew%40microsoft.com%7Cb7ae3c62047c48fc85d908d953833ca0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637632645397602953%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=s96M3RvxMOY831Vfr1nt%2Fz1h3cyb6jU9eFzvjKO7Dtc%3D&reserved=0</a><br>
<br>
Signed-off-by: Bret Barkelew <bret.barkelew@microsoft.com><br>
Cc: Jiewen Yao <jiewen.yao@intel.com><br>
Cc: Jian J Wang <jian.j.wang@intel.com><br>
Cc: Qi Zhang <qi1.zhang@intel.com><br>
Cc: Rahul Kumar <rahul1.kumar@intel.com><br>
---<br>
SecurityPkg/Library/Tpm2CommandLib/Tpm2NVStorage.c | 122 ++++++++++++++++++++<br>
SecurityPkg/Include/Library/Tpm2CommandLib.h | 22 ++++<br>
2 files changed, 144 insertions(+)<br>
<br>
diff --git a/SecurityPkg/Library/Tpm2CommandLib/Tpm2NVStorage.c b/SecurityPkg/Library/Tpm2CommandLib/Tpm2NVStorage.c<br>
index 87572de20164..7931fade9190 100644<br>
--- a/SecurityPkg/Library/Tpm2CommandLib/Tpm2NVStorage.c<br>
+++ b/SecurityPkg/Library/Tpm2CommandLib/Tpm2NVStorage.c<br>
@@ -24,6 +24,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent<br>
#define RC_NV_UndefineSpace_authHandle (TPM_RC_H + TPM_RC_1)<br>
<br>
#define RC_NV_UndefineSpace_nvIndex (TPM_RC_H + TPM_RC_2)<br>
<br>
<br>
<br>
+#define RC_NV_UndefineSpaceSpecial_nvIndex (TPM_RC_H + TPM_RC_1)<br>
<br>
+<br>
<br>
#define RC_NV_Read_authHandle (TPM_RC_H + TPM_RC_1)<br>
<br>
#define RC_NV_Read_nvIndex (TPM_RC_H + TPM_RC_2)<br>
<br>
#define RC_NV_Read_size (TPM_RC_P + TPM_RC_1)<br>
<br>
@@ -74,6 +76,20 @@ typedef struct {<br>
TPMS_AUTH_RESPONSE AuthSession;<br>
<br>
} TPM2_NV_UNDEFINESPACE_RESPONSE;<br>
<br>
<br>
<br>
+typedef struct {<br>
<br>
+ TPM2_COMMAND_HEADER Header;<br>
<br>
+ TPMI_RH_NV_INDEX NvIndex;<br>
<br>
+ TPMI_RH_PLATFORM Platform;<br>
<br>
+ UINT32 AuthSessionSize;<br>
<br>
+ TPMS_AUTH_COMMAND AuthSession;<br>
<br>
+} TPM2_NV_UNDEFINESPACESPECIAL_COMMAND;<br>
<br>
+<br>
<br>
+typedef struct {<br>
<br>
+ TPM2_RESPONSE_HEADER Header;<br>
<br>
+ UINT32 AuthSessionSize;<br>
<br>
+ TPMS_AUTH_RESPONSE AuthSession;<br>
<br>
+} TPM2_NV_UNDEFINESPACESPECIAL_RESPONSE;<br>
<br>
+<br>
<br>
typedef struct {<br>
<br>
TPM2_COMMAND_HEADER Header;<br>
<br>
TPMI_RH_NV_AUTH AuthHandle;<br>
<br>
@@ -506,6 +522,112 @@ Done:<br>
return Status;<br>
<br>
}<br>
<br>
<br>
<br>
+/**<br>
<br>
+ This command removes an index from the TPM.<br>
<br>
+<br>
<br>
+ @param[in] NvIndex The NV Index.<br>
<br>
+ @param[in] IndexAuthSession Auth session context for the Index auth/policy<br>
<br>
+ @param[in] PlatAuthSession Auth session context for the Platform auth/policy<br>
<br>
+<br>
<br>
+ @retval EFI_SUCCESS Operation completed successfully.<br>
<br>
+ @retval EFI_NOT_FOUND The command was returned successfully, but NvIndex is not found.<br>
<br>
+ @retval EFI_UNSUPPORTED Selected NvIndex does not support deletion through this call.<br>
<br>
+ @retval EFI_SECURITY_VIOLATION Deletion is not authorized by current policy session.<br>
<br>
+ @retval EFI_INVALID_PARAMETER The command was unsuccessful.<br>
<br>
+ @retval EFI_DEVICE_ERROR The command was unsuccessful.<br>
<br>
+**/<br>
<br>
+EFI_STATUS<br>
<br>
+EFIAPI<br>
<br>
+Tpm2NvUndefineSpaceSpecial (<br>
<br>
+ IN TPMI_RH_NV_INDEX NvIndex,<br>
<br>
+ IN TPMS_AUTH_COMMAND *IndexAuthSession OPTIONAL,<br>
<br>
+ IN TPMS_AUTH_COMMAND *PlatAuthSession OPTIONAL<br>
<br>
+ )<br>
<br>
+{<br>
<br>
+ EFI_STATUS Status;<br>
<br>
+ TPM2_NV_UNDEFINESPACESPECIAL_COMMAND SendBuffer;<br>
<br>
+ TPM2_NV_UNDEFINESPACESPECIAL_RESPONSE RecvBuffer;<br>
<br>
+ UINT32 SendBufferSize;<br>
<br>
+ UINT32 RecvBufferSize;<br>
<br>
+ UINT8 *Buffer;<br>
<br>
+ UINT32 IndexAuthSize, PlatAuthSize;<br>
<br>
+ TPM_RC ResponseCode;<br>
<br>
+<br>
<br>
+ //<br>
<br>
+ // Construct command<br>
<br>
+ //<br>
<br>
+ SendBuffer.Header.tag = SwapBytes16(TPM_ST_SESSIONS);<br>
<br>
+ SendBuffer.Header.commandCode = SwapBytes32(TPM_CC_NV_UndefineSpaceSpecial);<br>
<br>
+<br>
<br>
+ SendBuffer.NvIndex = SwapBytes32 (NvIndex);<br>
<br>
+ SendBuffer.Platform = SwapBytes32 (TPM_RH_PLATFORM);<br>
<br>
+<br>
<br>
+ //<br>
<br>
+ // Marshall the Auth Sessions for the two handles.<br>
<br>
+ Buffer = (UINT8 *)&SendBuffer.AuthSession;<br>
<br>
+ // IndexAuthSession<br>
<br>
+ IndexAuthSize = CopyAuthSessionCommand (IndexAuthSession, Buffer);<br>
<br>
+ Buffer += IndexAuthSize;<br>
<br>
+ // PlatAuthSession<br>
<br>
+ PlatAuthSize = CopyAuthSessionCommand (PlatAuthSession, Buffer);<br>
<br>
+ Buffer += PlatAuthSize;<br>
<br>
+ // AuthSessionSize<br>
<br>
+ SendBuffer.AuthSessionSize = SwapBytes32(IndexAuthSize + PlatAuthSize);<br>
<br>
+<br>
<br>
+ // Update total command size.<br>
<br>
+ SendBufferSize = (UINT32)(Buffer - (UINT8 *)&SendBuffer);<br>
<br>
+ SendBuffer.Header.paramSize = SwapBytes32 (SendBufferSize);<br>
<br>
+<br>
<br>
+ //<br>
<br>
+ // send Tpm command<br>
<br>
+ //<br>
<br>
+ RecvBufferSize = sizeof (RecvBuffer);<br>
<br>
+ Status = Tpm2SubmitCommand (SendBufferSize, (UINT8 *)&SendBuffer, &RecvBufferSize, (UINT8 *)&RecvBuffer);<br>
<br>
+ if (EFI_ERROR (Status)) {<br>
<br>
+ goto Done;<br>
<br>
+ }<br>
<br>
+<br>
<br>
+ if (RecvBufferSize < sizeof (TPM2_RESPONSE_HEADER)) {<br>
<br>
+ DEBUG ((EFI_D_ERROR, "Tpm2NvUndefineSpaceSpecial - RecvBufferSize Error - %x\n", RecvBufferSize));<br>
<br>
+ Status = EFI_DEVICE_ERROR;<br>
<br>
+ goto Done;<br>
<br>
+ }<br>
<br>
+<br>
<br>
+ ResponseCode = SwapBytes32(RecvBuffer.Header.responseCode);<br>
<br>
+ if (ResponseCode != TPM_RC_SUCCESS) {<br>
<br>
+ DEBUG ((EFI_D_ERROR, "Tpm2NvUndefineSpaceSpecial - responseCode - %x\n", SwapBytes32(RecvBuffer.Header.responseCode)));<br>
<br>
+ }<br>
<br>
+ switch (ResponseCode) {<br>
<br>
+ case TPM_RC_SUCCESS:<br>
<br>
+ // return data<br>
<br>
+ break;<br>
<br>
+ case TPM_RC_ATTRIBUTES:<br>
<br>
+ case TPM_RC_ATTRIBUTES + RC_NV_UndefineSpaceSpecial_nvIndex:<br>
<br>
+ Status = EFI_UNSUPPORTED;<br>
<br>
+ break;<br>
<br>
+ case TPM_RC_NV_AUTHORIZATION:<br>
<br>
+ Status = EFI_SECURITY_VIOLATION;<br>
<br>
+ break;<br>
<br>
+ case TPM_RC_HANDLE + RC_NV_UndefineSpaceSpecial_nvIndex: // TPM_RC_NV_DEFINED:<br>
<br>
+ Status = EFI_NOT_FOUND;<br>
<br>
+ break;<br>
<br>
+ case TPM_RC_VALUE + RC_NV_UndefineSpace_nvIndex:<br>
<br>
+ Status = EFI_INVALID_PARAMETER;<br>
<br>
+ break;<br>
<br>
+ default:<br>
<br>
+ Status = EFI_DEVICE_ERROR;<br>
<br>
+ break;<br>
<br>
+ }<br>
<br>
+<br>
<br>
+Done:<br>
<br>
+ //<br>
<br>
+ // Clear AuthSession Content<br>
<br>
+ //<br>
<br>
+ ZeroMem (&SendBuffer, sizeof(SendBuffer));<br>
<br>
+ ZeroMem (&RecvBuffer, sizeof(RecvBuffer));<br>
<br>
+ return Status;<br>
<br>
+} // Tpm2NvUndefineSpaceSpecial()<br>
<br>
+<br>
<br>
/**<br>
<br>
This command reads a value from an area in NV memory previously defined by TPM2_NV_DefineSpace().<br>
<br>
<br>
<br>
diff --git a/SecurityPkg/Include/Library/Tpm2CommandLib.h b/SecurityPkg/Include/Library/Tpm2CommandLib.h<br>
index ee8eb622951c..8d7b4998d98d 100644<br>
--- a/SecurityPkg/Include/Library/Tpm2CommandLib.h<br>
+++ b/SecurityPkg/Include/Library/Tpm2CommandLib.h<br>
@@ -364,6 +364,28 @@ Tpm2NvUndefineSpace (<br>
IN TPMS_AUTH_COMMAND *AuthSession OPTIONAL<br>
<br>
);<br>
<br>
<br>
<br>
+/**<br>
<br>
+ This command removes an index from the TPM.<br>
<br>
+<br>
<br>
+ @param[in] NvIndex The NV Index.<br>
<br>
+ @param[in] IndexAuthSession Auth session context for the Index auth/policy<br>
<br>
+ @param[in] PlatAuthSession Auth session context for the Platform auth/policy<br>
<br>
+<br>
<br>
+ @retval EFI_SUCCESS Operation completed successfully.<br>
<br>
+ @retval EFI_NOT_FOUND The command was returned successfully, but NvIndex is not found.<br>
<br>
+ @retval EFI_UNSUPPORTED Selected NvIndex does not support deletion through this call.<br>
<br>
+ @retval EFI_SECURITY_VIOLATION Deletion is not authorized by current policy session.<br>
<br>
+ @retval EFI_INVALID_PARAMETER The command was unsuccessful.<br>
<br>
+ @retval EFI_DEVICE_ERROR The command was unsuccessful.<br>
<br>
+**/<br>
<br>
+EFI_STATUS<br>
<br>
+EFIAPI<br>
<br>
+Tpm2NvUndefineSpaceSpecial (<br>
<br>
+ IN TPMI_RH_NV_INDEX NvIndex,<br>
<br>
+ IN TPMS_AUTH_COMMAND *IndexAuthSession OPTIONAL,<br>
<br>
+ IN TPMS_AUTH_COMMAND *PlatAuthSession OPTIONAL<br>
<br>
+ );<br>
<br>
+<br>
<br>
/**<br>
<br>
This command reads a value from an area in NV memory previously defined by TPM2_NV_DefineSpace().<br>
<br>
<br>
<br>
-- <br>
2.31.1.windows.1<br>
<br>
<br>
<br>
-=-=-=-=-=-=<br>
Groups.io Links: You receive all messages sent to this group.<br>
View/Reply Online (#78450): <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fedk2.groups.io%2Fg%2Fdevel%2Fmessage%2F78450&data=04%7C01%7Cbret.barkelew%40microsoft.com%7Cba78a3e7f9c74b56180308d95cff85ac%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637643074816413922%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=K0A5SdqSU5yx3b3r8tm7h6aCPrN14q8IaFUnACvj%2BJM%3D&reserved=0" originalsrc="https://edk2.groups.io/g/devel/message/78450" shash="zdGl1t9XiixtI87lpQSdmMGWpC0trQ5PuAGplQqHHbfOE78m4V9zVGOZVJp2mr9dydX1gjFVD4KePJFLtDU2w/UrsQFvqUvcnl53ESAZDThWqYt56Zod1h3xqUHSMrSmct3Y3mV/2TuMXl+XxtyUXTCvHiM/uE/EHO2erf0o6BM=" originalsrc="https://edk2.groups.io/g/devel/message/78450" shash="rnwsktNoj/SSIec/hJelLX7XAtc3XeZBUhdNWrxE6RIkjzSBqwEwrpp7jXAvhV8vsxGR6PObzbQotU2OKCPZfZ7xJmTuVwjCzmjpcUylFV5ApdWLQNFGezjiv59b6Uq+HULmLOxv9D7pFQFMnfNMNLoOBvLeB3FNCvx1NLO+wR4=">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fedk2.groups.io%2Fg%2Fdevel%2Fmessage%2F78450&data=04%7C01%7CBret.Barkelew%40microsoft.com%7Cb7ae3c62047c48fc85d908d953833ca0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637632645397612922%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=CWxLwgp73z2XQEa%2FN77gsCwRF73xha0RZCKwcFTlrRE%3D&reserved=0</a><br>
Mute This Topic: <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.io%2Fmt%2F84555713%2F1822150&data=04%7C01%7Cbret.barkelew%40microsoft.com%7Cba78a3e7f9c74b56180308d95cff85ac%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637643074816423877%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=v1MYXgPFzvCFw%2FQuWkawIHp4Qptang3Apwu%2BUWh9pYI%3D&reserved=0" originalsrc="https://groups.io/mt/84555713/1822150" shash="SxiC03yOmkUUWJQrvNE5b4fLp6AVb9aZKY3183azh0aAcr2qm/DsXFegLJ1eHjXNmK0BIMUyzZAG0atSsCdz/lAERMHb2voFa04Q3lxXtnG6NzQXRoNxlyhw2eotxz2HBu01087cJCdHrTPNs7P5RjuOR1qFFlusVGrOlmwM5XM=" originalsrc="https://groups.io/mt/84555713/1822150" shash="JEWFZOpfRA9f9eKAqaAnt7CpvmVepnJ+nSQVte4O0oD13i0Cjarfzifs1uMcH7Tu8jeA+3nmuXtsrfPGJ2RbUZWB6bJPTkDVcZG4O9FWSTyakqaqIsQTlVp3yq/20wxtbJP9qe1vMyi7Uu5QLF0AdmZNCk1CI8k6ZxQbs5Mh8Ss=">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.io%2Fmt%2F84555713%2F1822150&data=04%7C01%7CBret.Barkelew%40microsoft.com%7Cb7ae3c62047c48fc85d908d953833ca0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637632645397612922%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=IWQ6E4yP0ECt3oYLYQa%2BnddGfcQEDMgfASlcxRuda%2BQ%3D&reserved=0</a><br>
Group Owner: devel+owner@edk2.groups.io<br>
Unsubscribe: <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fedk2.groups.io%2Fg%2Fdevel%2Funsub&data=04%7C01%7Cbret.barkelew%40microsoft.com%7Cba78a3e7f9c74b56180308d95cff85ac%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637643074816423877%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=z1FcgbeOOFrnnzd7U5bgjlwsdc1i8msijhK3g1qtw38%3D&reserved=0" originalsrc="https://edk2.groups.io/g/devel/unsub" shash="qtdti5EZGIL2U0fRexL6FyR2EDonTOB+Dc31VFUG+c8Lchfk2Fa91pSehebhS4v/LLJQyvsbHnaagzqp/SA7pmBCWeW6Nsta8X99JVyuBNtvhbQzPwWzODpFUHlZD+2bSWkz45jwuzLfveoifpPmWMTuGm606SIjWnZYSEo78/E=" originalsrc="https://edk2.groups.io/g/devel/unsub" shash="WzH+SJq1310S+DFSXDPNRnwClzKSKWqu19MALw+z3A/DqW3L898ZOG5dX/nsxJQCnq1+GHO+utMnGORfsVimFHTTP2VNmrXkJnJX+Juro2SOHwOAZwfzVsHmsNcAtixJ3LCrvyiJYQblLKVhd5MnLcTRG5kO1+JhxM5zCDpsVsM=">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fedk2.groups.io%2Fg%2Fdevel%2Funsub&data=04%7C01%7CBret.Barkelew%40microsoft.com%7Cb7ae3c62047c48fc85d908d953833ca0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637632645397612922%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=qor4Y5FZEH8ch0AEmWDbe97FIQk4V1qx7IURcTHzjAU%3D&reserved=0</a>
[brbarkel@microsoft.com]<br>
-=-=-=-=-=-=</p>
<p class="x_x_MsoNormal"> </p>
<div>
<p class="x_x_MsoNormal"></p>
<p class="x_x_MsoNormal"> </p>
</div>
</div>
</div>
</div>
</body>
</html>
<div width="1" style="color:white;clear:both">_._,_._,_</div> <hr> Groups.io Links:<p> You receive all messages sent to this group. <p> <a target="_blank" href="https://edk2.groups.io/g/devel/message/79202">View/Reply Online (#79202)</a> | | <a target="_blank" href="https://groups.io/mt/84666034/1813853">Mute This Topic</a> | <a href="https://edk2.groups.io/g/devel/post">New Topic</a><br> <a href="https://edk2.groups.io/g/devel/editsub/1813853">Your Subscription</a> | <a href="mailto:devel+owner@edk2.groups.io">Contact Group Owner</a> | <a href="https://edk2.groups.io/g/devel/unsub">Unsubscribe</a> [edk2-devel-archive@redhat.com]<br> <div width="1" style="color:white;clear:both">_._,_._,_</div>