TPM 2.0中的tpm2_createprimary命令对应的源文件就是tpm2_createprimary.c,该文件位于tpm2-tools/tools/下,一共有450行(版本5.5)。
tpm2_createprimary的功能是创建一个主密钥。命令描述为:此命令用于在以下层次结构之一下创建主对象:所有者、平台、背书、NULL。该命令将创建并加载主对象。敏感和公共部分不返回信息。已创建对象句柄的上下文文件保存为文件,以供将来与创建的主对象交互。
下边用几篇文章的篇幅对tpm2_createprimary.c文件结合tpm2_createprimary命令进行深入的、完全的解析。
先来看第一段代码:
// Register this tool with tpm2_tool.c
TPM2_TOOL_REGISTER("createprimary", tpm2_tool_onstart, tpm2_tool_onrun,
tpm2_tool_onstop, tpm2_tool_onexit)
TPM2_TOOL_REGISTER是一个宏定义,在tpm2-tools/tools/tpm2_tool.h中,代码如下:
#define TPM2_TOOL_REGISTER(tool_name,tool_onstart,tool_onrun,tool_onstop,to