Reviewed-by: Jian J Wang <jian.j.w...@intel.com>
Regards,
Jian
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Qi Zhang
> Sent: Tuesday, July 28, 2020 4:21 PM
> To: devel@edk2.groups.io
> Cc: Zhang, Qi1 <qi1.zh...@intel.com>; Yao, Jiewen <jiewen....@intel.com>;
> Wang, Jian J <jian.j.w...@intel.com>; Chao Zhang <chao.b.zh...@intel.com>;
> Kumar, Rahul1 <rahul1.ku...@intel.com>
> Subject: [edk2-devel] [PATCH v4 1/2] SecurityPkg/Tpm2CommandLib: add a new
> function
>
> From: "Zhang, Qi" <qi1.zh...@intel.com>
>
> Tpm2GetCapabilityIsCommandImplemented
>
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2793
>
> check if the commad is supported by comparing the command code with
> command index.
>
> Cc: Jiewen Yao <jiewen....@intel.com>
> Cc: Jian J Wang <jian.j.w...@intel.com>
> Cc: Chao Zhang <chao.b.zh...@intel.com>
> Cc: Rahul Kumar <rahul1.ku...@intel.com>
> Signed-off-by: Qi Zhang <qi1.zh...@intel.com>
> ---
> SecurityPkg/Include/Library/Tpm2CommandLib.h | 16 ++++++++
> .../Library/Tpm2CommandLib/Tpm2Capability.c | 40 +++++++++++++++++++
> 2 files changed, 56 insertions(+)
>
> diff --git a/SecurityPkg/Include/Library/Tpm2CommandLib.h
> b/SecurityPkg/Include/Library/Tpm2CommandLib.h
> index ce381e786b..ee8eb62295 100644
> --- a/SecurityPkg/Include/Library/Tpm2CommandLib.h
> +++ b/SecurityPkg/Include/Library/Tpm2CommandLib.h
> @@ -790,6 +790,22 @@ Tpm2GetCapabilityAlgorithmSet (
> OUT UINT32 *AlgorithmSet
>
> );
>
>
>
> +/**
>
> + This function will query if the command is supported.
>
> +
>
> + @param[In] Command TPM_CC command starts from TPM_CC_FIRST.
>
> + @param[out] IsCmdImpl The command is supported or not.
>
> +
>
> + @retval EFI_SUCCESS Operation completed successfully.
>
> + @retval EFI_DEVICE_ERROR The command was unsuccessful.
>
> +**/
>
> +EFI_STATUS
>
> +EFIAPI
>
> +Tpm2GetCapabilityIsCommandImplemented (
>
> + IN TPM_CC Command,
>
> + OUT BOOLEAN *IsCmdImpl
>
> + );
>
> +
>
> /**
>
> This command is used to check to see if specific combinations of algorithm
> parameters are supported.
>
>
>
> diff --git a/SecurityPkg/Library/Tpm2CommandLib/Tpm2Capability.c
> b/SecurityPkg/Library/Tpm2CommandLib/Tpm2Capability.c
> index 85b11c7715..17c0c3a151 100644
> --- a/SecurityPkg/Library/Tpm2CommandLib/Tpm2Capability.c
> +++ b/SecurityPkg/Library/Tpm2CommandLib/Tpm2Capability.c
> @@ -39,6 +39,8 @@ typedef struct {
>
>
> #pragma pack()
>
>
>
> +#define TPMA_CC_COMMANDINDEX_MASK 0x2000FFFF
>
> +
>
> /**
>
> This command returns various information regarding the TPM and its current
> state.
>
>
>
> @@ -628,6 +630,44 @@ Tpm2GetCapabilityAlgorithmSet (
> return EFI_SUCCESS;
>
> }
>
>
>
> +/**
>
> + This function will query if the command is supported.
>
> +
>
> + @param[In] Command TPM_CC command starts from TPM_CC_FIRST.
>
> + @param[out] IsCmdImpl The command is supported or not.
>
> +
>
> + @retval EFI_SUCCESS Operation completed successfully.
>
> + @retval EFI_DEVICE_ERROR The command was unsuccessful.
>
> +**/
>
> +EFI_STATUS
>
> +EFIAPI
>
> +Tpm2GetCapabilityIsCommandImplemented (
>
> + IN TPM_CC Command,
>
> + OUT BOOLEAN *IsCmdImpl
>
> + )
>
> +{
>
> + TPMS_CAPABILITY_DATA TpmCap;
>
> + TPMI_YES_NO MoreData;
>
> + EFI_STATUS Status;
>
> + UINT32 Attribute;
>
> +
>
> + Status = Tpm2GetCapability (
>
> + TPM_CAP_COMMANDS,
>
> + Command,
>
> + 1,
>
> + &MoreData,
>
> + &TpmCap
>
> + );
>
> + if (EFI_ERROR (Status)) {
>
> + return Status;
>
> + }
>
> +
>
> + CopyMem (&Attribute, &TpmCap.data.command.commandAttributes[0],
> sizeof (UINT32));
>
> + *IsCmdImpl = (Command == (SwapBytes32(Attribute) &
> TPMA_CC_COMMANDINDEX_MASK));
>
> +
>
> + return EFI_SUCCESS;
>
> +}
>
> +
>
> /**
>
> This command is used to check to see if specific combinations of algorithm
> parameters are supported.
>
>
>
> --
> 2.26.2.windows.1
>
>
> -=-=-=-=-=-=
> Groups.io Links: You receive all messages sent to this group.
>
> View/Reply Online (#63392): https://edk2.groups.io/g/devel/message/63392
> Mute This Topic: https://groups.io/mt/75840053/1768734
> Group Owner: devel+ow...@edk2.groups.io
> Unsubscribe: https://edk2.groups.io/g/devel/unsub [jian.j.w...@intel.com]
> -=-=-=-=-=-=
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#63670): https://edk2.groups.io/g/devel/message/63670
Mute This Topic: https://groups.io/mt/75840053/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-