我正在研究 ESAPI API,我在我的 Ubuntu 22.04 桌面上托管了 TPM 模拟器,并尝试从一个 C 程序和另一个 C 程序生成对称私钥,使用相同的密钥对简单纯文本进行加密和解密。
到目前为止,我已经完成了这个示例<https://github.com/tpm2-software/tpm2-tss/blob/master/test/integration/esys-rsa-encrypt-decrypt.int.c>
我使用 -ltss2-esys 进行了小型编译,开发环境看起来不错。
生成的私钥会存储在哪里?
/* Alternative for simulator */
// char *name = "mssim:host=127.0.0.1,port=2321";
我可以在哪里查看密钥我有模拟器,好像现在没有硬件 TPM 使用情况。
也接受任何 FAPI 建议,但我处于学习阶段。
小控制台输出
amp@amp-virtual-machine:~$ openssl rand -engine tpm2tss -hex 10 引擎“tpm2tss”设置。 8d76bc5c449c894a019bamp@amp-virtual-machine:~$ sudo -u tss G_MESSAGES_DEBUG=all tpm2-abrmd [sudo] amp 的密码: ** 信息:06:35:41.119:tabrmd 启动
** (进程:6838):警告 **:06:35:41.121:tcti_conf 之前:“设备:/dev/tpm0” ** 信息:06:35:41.121:记录到标准输出
** (tpm2-abrmd:6838): 警告 **: 06:35:41.121: tcti_conf 之后: “device:/dev/tpm0” ** 信息:06:35:41.122:进入 g_main_loop ** 信息:06:35:41.124:init_thread_func 启动 **(tpm2-abrmd:6838):调试:06:35:41.127:random_class_init ** (tpm2-abrmd:6838): DEBUG: 06:35:41.127: 打开熵源:/dev/urandom ** (tpm2-abrmd:6838): DEBUG: 06:35:41.127: 从熵源读取:/dev/urandom **(tpm2-abrmd:6838):调试:06:35:41.129:connection_manager_set_property **(tpm2-abrmd:6838):调试:06:35:41.129:max_connections:27 ** (tpm2-abrmd:6838): DEBUG:06:35:41.131:IpcFrontendDbus 设置 bus_name:com.intel.tss2.Tabrmd **(tpm2-abrmd:6838):调试:06:35:41.132:ipc_frontend_connect 错误:tcti:src/tss2-tcti/tcti-device.c:451:Tss2_Tcti_Device_Init() 无法打开指定的 TCTI 设备文件 /dev/tpm0:没有此文件或目录 错误:tcti:src/tss2-tcti/tctildr-dl.c:169:tcti_from_file() 无法初始化 TCTI 文件:设备 错误:tcti:src/tss2-tcti/tctildr.c:430:Tss2_TctiLdr_Initialize_Ex() 无法实例化 TCTI
** (tpm2-abrmd:6838): 严重 **: 06:35:41.182: init_thread_func: 无法使用 conf“device:/dev/tpm0”创建 TCTI,得到 RC: 0xa000a ** (tpm2-abrmd:6838): 调试:06:35:41.182:init_thread_func:调用 gmain_data_cleanup **(tpm2-abrmd:6838):调试:06:35:41.186:gmain_data_cleanup **(tpm2-abrmd:6838):调试:06:35:41.187:ipc_frontend_disconnect
(tpm2-abrmd:6838):GLib-GIO-CRITICAL **:06:35:41.188:g_bus_unown_name:断言“owner_id > 0”失败 **(tpm2-abrmd:6838):调试:06:35:41.207:random_finalize ** 信息:06:35:41.208:main_loop_quit ** 信息:06:35:41.219:g_main_loop_run 完成,正在清理 **(tpm2-abrmd:6838):调试:06:35:41.221:gmain_data_cleanup ** 信息:06:35:41.222:main_loop_quit amp@amp-virtual-machine:~$ tpm2_startup -c amp@amp-virtual-machine:~$ 文件 /dev/urandom /dev/urandom:字符特殊(1/9)
答案1
我已经弄清楚的步骤并从 TPM 论坛获得了一些建议,即使用 openssl libs(c 程序)生成密钥,然后使用 FAPI API 密封选项来存储密钥,然后解封它并将其用于进一步的加密步骤。