TPM 程序设计基础 1-2-2 :旧的 PCR 命令
Old PCR Commands
旧的 PCR 命令。
- 注意:本文只提供相关函数的说明、定义、参数、返回值、注释等的简单翻译,对于更多信息、疑问或错误之处,请阅读原英文文档。
Tspi_TPM_GetEvent
《TSS V1.2.pdf》 P282 4.3.4.12.1 Tspi_TPM_GetEvent
信息说明开始
该方法为给定的PCR指标和事件数提供PCR事件。
信息说明结束
定义
TSS_RESULT Tspi_TPM_GetEvent
(
TSS_HTPM hTPM, // in
UINT32 ulPcrIndex, // in
UINT32 ulEventNumber, // in
TSS_PCR_EVENT* pPcrEvent // out
);
参数
hTPM
TPM对象的句柄
ulPcrIndex
指标要求PCR。
ulEventNumber
要请求的事件的索引。
pPcrEvent
接收PCR事件数据。
返回值
TSS_SUCCESS
TSS_E_INVALID_HANDLE
TSS_E_BAD_PARAMETER
TSS_E_INTERNAL_ERROR
注释
Tspi_TPM_GetEvents
《TSS V1.2.pdf》 P283 4.3.4.12.2 Tspi_TPM_GetEvents
信息说明开始
该方法为给定的指标提供特定数量的PCR事件。
信息说明结束
定义
TSS_RESULT Tspi_TPM_GetEvents
(
TSS_HTPM hTPM, // in
UINT32 ulPcrIndex, // in
UINT32 ulStartNumber, // in
UINT32* pulEventNumber, // in, out
TSS_PCR_EVENT** prgPcrEvents // out
);
参数
hTPM
TPM对象的句柄
ulPcrIndex
指标要求PCR。
ulStartNumber
请求的第一个事件的索引。
pulEventNumber
[IN]请求元素的数量。[OUT]在prgpcre参数中接收返回的事件数据结构的数量
prgPcrEvents
接收指向PCR事件数据数组的指针。如果为空,则只在pulEventNumber参数中返回元素的数量。
返回值
TSS_SUCCESS
TSS_E_INVALID_HANDLE
TSS_E_BAD_PARAMETER
TSS_E_INTERNAL_ERROR
注释
Tspi_TPM_GetEvents方法为请求的事件数据分配一个内存块。必须使用Tspi_Context_FreeMemory方法释放该内存。
Tspi_TPM_GetEventLog
《TSS V1.2.pdf》 P285 4.3.4.12.3 Tspi_TPM_GetEventLog
信息说明开始
此方法提供整个事件日志。
信息说明结束
定义
TSS_RESULT Tspi_TPM_GetEventLog
(
TSS_HTPM hTPM, // in
UINT32* pulEventNumber, // out
TSS_PCR_EVENT** prgPcrEvents // out
);
参数
hTPM
TPM对象的句柄
pulEventNumber
在prgpcre参数中接收返回的事件数据结构的数量
prgPcrEvents
接收指向PCR事件数据数组的指针。如果为空,则只在pulEventNumber参数中返回元素的数量。
返回值
TSS_SUCCESS
TSS_E_INVALID_HANDLE
TSS_E_BAD_PARAMETER
TSS_E_INTERNAL_ERROR
注释
Tspi_TPM_GetEventLog方法为请求的事件数据分配一个内存块。必须使用Tspi_Context_FreeMemory方法释放该内存。
Tspi_TPM_Quote
《TSS V1.2.pdf》 P286 4.3.4.12.4 Tspi_TPM_Quote
信息说明开始
该方法引用了一个TCG系统。
信息说明结束
定义
TSS_RESULT Tspi_TPM_Quote
(
TSS_HTPM hTPM, // in
TSS_HKEY hIdentKey, // in
TSS_HPCRS hPcrComposite, // in
TSS_VALIDATION* pValidationData // in, out
);
参数
hTPM
TPM对象的句柄
hIdentKey
签名密钥对象的句柄
hPcrComposite
PCR复合物的句柄;结构类型必须是TSS_PCRS_STRUCT_INFO。[在]选定的pcr中引用
pValidationData
验证数据结构[IN]提供了计算签名所需的外部数据信息。在成功完成命令后,该结构提供一个包含验证数据的缓冲区和一个包含验证数据的缓冲区。
返回值
TSS_SUCCESS
TSS_E_INVALID_HANDLE
TSS_E_BAD_PARAMETER
TSS_E_INTERNAL_ERROR
注释
在调用该方法之前,必须在PcrComposite对象中设置关于应该引用哪些pcr的所需信息。在返回时,集合的每个元素都有其pcrValue集。
如果在hPcrComposite对象中使用的结构类型不是TSS_PCRS_STRUCT_INFO,那么将返回错误TSS_E_INVALID_OBJ_ACCESS。
返回签名是在TCG 1.1b主规范中定义的TCPA_QUOTE_INFO结构上计算的。
Tspi_TPM_Quote方法为请求的验证数据分配内存块。必须使用Tspi_Context_FreeMemory方法释放该内存。
Tspi_TPM_PcrExtend
《TSS V1.2.pdf》 P288 4.3.4.12.5 Tspi_TPM_PcrExtend
信息说明开始
该方法扩展PCR寄存器并写入PCR事件日志。
信息说明结束
定义
TSS_RESULT Tspi_TPM_PcrExtend
(
TSS_HTPM hTPM, // in
UINT32 ulPcrIndex, // in
UINT32 ulPcrDataLength, // in
BYTE* pbPcrData, // in
TSS_PCR_EVENT* pPcrEvent, // in
UINT32* pulPcrValueLength, // out
BYTE** prgbPcrValue // out
);
参数
hTPM
TPM对象的句柄
ulPcrIndex
PCR指标延长。
ulPcrDataLength
参数包含要扩展的数据长度。
pbPcrData
指向PCR扩展操作的数据blob的数据指针。如果pPcrEvent不为空,则该数据将用于根据节中TSS_PCR_EVENT结构的rgbPcrValue参数的描述创建的散列。如果pPcrEvent是本节中TSS_PCR_EVENT结构的参数。如果pPcrEvent为空,则该数据将被扩展到TPM中,而不会被TSP触及。
pPcrEvent
指向包含事件项信息的TSS_PCR_EVENT结构的指针。如果该指针为空,则不创建任何事件项,且该函数仅执行扩展操作。如果非空,这个结构的成员将由TSP根据章节中的规则设置。
pulPcrValueLength
接收prgbPcrValue参数的长度(以字节为单位)。
prgbPcrValue
接收一个指针,该指针指向在扩展操作之后包含PCR数据的内存块。
返回值
TSS_SUCCESS
TSS_E_INVALID_HANDLE
TSS_E_BAD_PARAMETER
TSS_E_INTERNAL_ERROR
注释
Tspi_TPM_PcrExtend方法为prgbPcrValue数据分配一个内存块。
必须使用Tspi_Context_FreeMemory方法释放该内存。
Tspi_TPM_PcrRead
《TSS V1.2.pdf》 P290 4.3.4.12.6 Tspi_TPM_PcrRead
信息说明开始
该方法读取PCR寄存器。
信息说明结束
定义
TSS_RESULT Tspi_TPM_PcrRead
(
TSS_HTPM hTPM, // in
UINT32 ulPcrIndex, // in
UINT32* pulPcrValueLength, // out
BYTE** prgbPcrValue // out
);
参数
hTPM
TPM对象的句柄
ulPcrIndex
指数PCR读。
pulPcrValueLength
接收prgbPcrValue参数的长度(以字节为单位)。
prgbPcrValue
接收一个指向包含PCR数据的内存块的指针。
返回值
TSS_SUCCESS
TSS_E_INVALID_HANDLE
TSS_E_BAD_PARAMETER
TSS_E_INTERNAL_ERROR
注释
Tspi_TPM_PcrRead方法为prgbPcrValue数据分配一个内存块。
必须使用Tspi_Context_FreeMemory方法释放该内存。