TPM 程序设计基础 1-2-1 :Tspi_Context 类定义
Tspi_Context Class Definition
Tspi_Context 类定义
- 注意:本文只提供相关函数的说明、定义、参数、返回值、注释等的简单翻译,对于更多信息、疑问或错误之处,请阅读原英文文档。
Tspi_Context_Create
《TSS V1.2.pdf》 P182-183 4.3.3.2.1 Tspi_Context_Create
复制信息说明开始
此方法返回新上下文对象的句柄。在各种函数中使用上下文句柄将资源分配给它。
信息说明结束
定义
TSS_RESULT Tspi_Context_Create
(
TSS_HCONTEXT* phContext // out
);
参数
phContext
接收创建的上下文对象的句柄。
返回值
TSS_SUCCESS
TSS_E_INTERNAL_ERROR
Tspi_Context_Close
《TSS V1.2.pdf》 P184 4.3.3.2.2 Tspi_Context_Close
复制信息说明开始
此方法销毁上下文并释放所有分配的资源。
信息说明结束
定义
TSS_RESULT Tspi_Context_Close
(
TSS_HCONTEXT hContext // in
);
参数
hContext
要关闭的上下文对象的hContext句柄。
返回值
TSS_SUCCESS
TSS_E_INVALID_HANDLE
TSS_E_INTERNAL_ERROR
Tspi_Context_Connect
《TSS V1.2.pdf》 P191 4.3.3.2.7 Tspi_Context_Connect
复制信息说明开始
此方法建立到本地或远程TSS系统的连接。
信息说明结束
定义
TSS_RESULT Tspi_Context_Connect
(
TSS_HCONTEXT hContext, // in
TSS_UNICODE* wszDestination // in
);
参数
hContext
上下文对象的句柄
wszDestination
指向空终止的TSS_UNICODE字符串的指针,该字符串指定要连接的远程系统。如果为空,则上下文对象绑定到本地系统。
返回值
TSS_SUCCESS
TSS_E_INVALID_HANDLE
TSS_E_NO_CONNECTION
TSS_E_INTERNAL_ERROR
Tspi_Context_GetDefaultPolicy
《TSS V1.2.pdf》 P193 4.3.3.2.9 Tspi_Context_GetDefaultPolicy
复制信息说明开始
此方法提供上下文的默认策略对象。每个上下文(一个)。
信息说明结束
定义
TSS_RESULT Tspi_Context_GetDefaultPolicy
(
TSS_HCONTEXT hContext, // in
TSS_HPOLICY* phPolicy // out
);
参数
hContext
上下文对象的句柄
phPolicy
接收绑定到上下文的默认策略对象的句柄。
返回值
TSS_SUCCESS
TSS_E_INVALID_HANDLE
TSS_E_INTERNAL_ERROR
Tspi_Context_CreateObject
《TSS V1.2.pdf》 P194 4.3.3.2.10 Tspi_Context_CreateObject
复制信息说明开始
此方法创建并初始化指定类型的空对象,并返回对该对象寻址的句柄。对象被绑定到一个已经打开的上下文。
信息说明结束
定义
TSS_RESULT Tspi_Context_CreateObject
(
TSS_HCONTEXT hContext, // in
TSS_FLAG objectType, // in
TSS_FLAG initFlags, // in
TSS_HOBJECT* phObject // out
);
参数
hContext
上下文对象的句柄
objectType
指示要创建的对象类型的标志(参见2.3.2.1节)。
initFlags
表示对象的默认属性的标志(参见2.3.2.2节)。
phObject
接收创建对象的句柄。
返回值
TSS_SUCCESS
TSS_E_INVALID_HANDLE
TSS_E_INVALID_OBJECT_TYPE
TSS_E_INVALID_OBJECT_INIT_FLAG
TSS_E_BAD_PARAMETER
TSS_E_INTERNAL_ERROR
TSS_E_ENC_INVALID_TYPE
TSS_E_HASH_INVALID_ALG
Tspi_Context_CloseObject
《TSS V1.2.pdf》 P195 4.3.3.2.11 Tspi_Context_CloseObject
复制信息说明开始
此方法将销毁与对象句柄关联的对象。对象中所有分配的资源也被释放。
信息说明结束
定义
TSS_RESULT Tspi_Context_CloseObject
(
TSS_HCONTEXT hContext, // in
TSS_HOBJECT hObject // in
);
参数
hContext
上下文对象的句柄
hObject
被关闭对象的句柄。
返回值
TSS_SUCCESS
TSS_E_INVALID_HANDLE
TSS_E_INTERNAL_ERROR
Tspi_Context_GetTPMObject
《TSS V1.2.pdf》 P200 4.3.3.2.13 Tspi_Context_GetTPMObject
复制信息说明开始
此方法检索上下文的TPM对象。对于给定的上下文,该对象只有一个实例,并且隐式地表示TPM所有者。
信息说明结束
定义
TSS_RESULT Tspi_Context_GetTpmObject
(
TSS_HCONTEXT hContext, // in
TSS_HTPM* phTPM // out
);
参数
hContext
上下文对象的句柄
phTPM
接收绑定到上下文的TPM对象的句柄。
返回值
TSS_SUCCESS
TSS_E_INVALID_HANDLE
TSS_E_BAD_PARAMETER
TSS_E_INTERNAL_ERROR
Tspi_Context_LoadKeyByUUID
《TSS V1.2.pdf》 P208 4.3.4.2.2 Tspi_Context_LoadKeyByUUID
复制信息说明开始
该方法使用UUID根据密钥管理器中包含的信息创建密钥对象,并将密钥加载到TPM中。持久存储提供了加载父键所需的所有信息,以加载与给定UUID关联的键。在将此命令与可能需要授权的父键一起使用时,需要考虑一些微妙的情况。如果注册的密钥都不需要授权,则应用程序可以使用下面指定的Tspi_Context_LoadKeyByUUID(),不会出现错误或警告。如果一个已注册的密钥需要授权,并且应用程序知道已注册的密钥堆栈,那么它必须通过Tspi_Context_GetKeyByUUID()从密钥数据库获取密钥,为密钥分配一个策略,然后通过Tspi_Key_LoadKey()加载密钥。如果一个已注册的密钥需要授权,而应用程序不知道密钥堆栈,那么它必须首先通过调用Tspi_Context_GetRegisteredKeysByUUID()从密钥数据库检索密钥堆栈信息,然后按照上面的段落进行操作。
信息说明结束
定义
TSS_RESULT Tspi_Context_LoadKeyByUUID
(
TSS_HCONTEXT hContext, // in
TSS_FLAG persistentStorageType, // in
TSS_UUID uuidData, // in
TSS_HKEY* phKey // out
);
参数
hContext
上下文对象的句柄
persistentStorageType
表示持久存储的标志(参见2.3.2.22节)。
uuidData
密钥在持久存储(TSP或已连接的TCS)中注册时所使用的密钥的UUID。
phKey
接收表示已加载密钥的密钥对象的句柄。
返回值
TSS_SUCCESS
TSS_E_INVALID_HANDLE
TSS_E_BAD_PARAMETER
TSS_E_PS_KEY_NOTFOUND
TSS_E_INTERNAL_ERROR
作者:Yogile
出处:https://www.cnblogs.com/Yogile/p/12800494.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
分类:
《可信计算基础》
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构