TCG为与TPM通信的中间件的开发人员提供了两种不同规范的命令/接口。一方面是
中描述的TPM命令参考另一方面,如
中所述的TSS后者应对不同层(TDDL,TCS,TSP)的不同接口规范,而前者描述应在设备驱动程序上构建的功能。
作为示例,将TSS TDDL接口与TPM命令参考中指定的命令进行比较:
TSS TDDLI:
Tddli_Open()
Tddli_Close()
Tddli_Cancel()
Tddli_GetCapability()
Tddli_SetCapability()
Tddli_GetStatus()
Tddli_TransmitData()
TPM命令参考:
TPM_Init()
TPM_TakeOwnership()
TPM_GetCapability()
TPM_MigrateKey()
...
裤子,例如实现完整的TSS,而其他库如libtpm只实现TPM命令参考的一些功能。
这两个接口规范之间有什么关系?
答案 0 :(得分:1)
TPM Command 和 TPM Structures 文档仅指定TPM必须执行的操作。
另一方面, TSS 为应用程序开发人员提供了一个API,可以方便地开发支持信任的应用程序。部分TSS甚至不向TPM发出命令,如密钥存储部分或用户管理。
在链接的TSS文档中,您有第30页的图1-1中堆栈的结构化视图.TPM命令参考指定 TSS设备驱动程序库与<之间的细线的方式em> TPM 看起来像。另一方面,TSS规范指定 Tddli接口, TCS接口和 TSP接口的外观。
如果您更喜欢类比,请将其与HTTP进行比较:前者类似于HTTP规范,而TSS更像是HTTP客户端库的API文档。应用程序开发人员通常不会打开套接字并开始通过网络发送GET / HTTP/1.0 ...
。她使用的是库,而是专注于更高级别的抽象。同样,您通常不会一点一点地组装TPM命令,而是使用TSS。