#include <tss/platform.h> #include <tss/tcpa_defines.h> #include <tss/tcpa_typedef.h> #include <tss/tcpa_struct.h> #include <tss/tss_typedef.h> #include <tss/tss_structs.h> #include <tss/tspi.h> TSS_RESULT Tspi_TPM_GetCapability(TSS_HTPM hTPM, TSS_FLAG capArea, UINT32 ulSubCapLength, BYTE* rgbSubCap, UINT32* pulRespDataLength, BYTE** prgbRespData);
Tspi_TPM_GetCapability gets information on various capabilities of the TPM. This command can be used to learn how many PCRs the TPM supports, etc.
The following Capability Areas and Sub-Capability Areas are supported by 1.1 TSS's:
TSS_TPMCAP_ORD - query whether an ordinal is supported by the TPM.
subCaps: TPM_ORD_* (see tcpa_literals.h)
TSS_TPMCAP_FLAG - query for the volatile and non-volatile flags inside the TPM. (Must be owner authorized). In this case, the 2 UINT32 values will be returned concatenated together in prgbRespData.
subCaps: ignored.
TSS_TPMCAP_ALG - query whether an algorithm is supported by the TPM.
subCaps: TSS_ALG_RSA
TSS_ALG_DES
TSS_ALG_3DES
TSS_ALG_SHA
TSS_ALG_HMAC
TSS_ALG_AES
TSS_TPMCAP_PROPERTY - query a property of the TPM.
subCaps: TSS_TPMCAP_PROP_PCR
TSS_TPMCAP_PROP_DIR
TSS_TPMCAP_PROP_MANUFACTURER
TSS_TPMCAP_PROP_SLOTS
TSS_TPMCAP_VERSION - get the TSS_VERSION structure tha identifies the TPM.
subCaps: ignored.
Tspi_TPM_GetCapability returns TSS_SUCCESS on success, otherwise one of the following values is returned:
Tspi_TPM_GetCapability conforms to the Trusted Computing Group Software Specification version 1.1 Golden
Tspi_TPM_GetCapabilitySigned(3), Tspi_TPM_GetEvent(3).