mirror of https://github.com/acidanthera/audk.git
SecurityPkg/Tpm2CommandLib: add a new function
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.yao@intel.com> Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Chao Zhang <chao.b.zhang@intel.com> Cc: Rahul Kumar <rahul1.kumar@intel.com> Signed-off-by: Qi Zhang <qi1.zhang@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
This commit is contained in:
parent
ffde22468e
commit
1b0d659e6d
|
@ -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.
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
Loading…
Reference in New Issue