我正在尝试在英特尔 SGX SDK 中运行远程证明示例代码。我总是收到错误“错误,调用 sgx_ra_get_msg1 失败 [wmain]。” 我认为这是因为该sgx_ra_init(&g_sp_pub_key, b_pse, p_context)
函数返回零值p_context
,无法使用。
有没有人可以正确运行远程证明示例代码?PS:我可以运行本地认证示例代码,我认为Intel SGX开发环境是可以的。
我正在尝试在英特尔 SGX SDK 中运行远程证明示例代码。我总是收到错误“错误,调用 sgx_ra_get_msg1 失败 [wmain]。” 我认为这是因为该sgx_ra_init(&g_sp_pub_key, b_pse, p_context)
函数返回零值p_context
,无法使用。
有没有人可以正确运行远程证明示例代码?PS:我可以运行本地认证示例代码,我认为Intel SGX开发环境是可以的。
我假设您正在 Ubuntu 上运行以下链接提供的示例代码: https ://github.com/01org/linux-sgx/tree/master/SampleCode/RemoteAttestation
我遇到过同样的问题。它不起作用的原因可能有多种。我按照下面提到的步骤解决了它:
检查是否加载了 Intel(r) SGX 驱动程序。您可以通过检查“isgx”是否存在于通过在 Linux BASH shell 上运行以下命令生成的已加载内核模块列表中来做到这一点:
sudo lsmod | sort
假设您已按照上述步骤操作,则可以重新启动 AESM 守护程序服务。在外壳上:
sudo service aesmd restart
仅供参考,您可以为 SGX 硬件和调试模式构建项目,然后在 shell 上通过以下命令执行:
make clean
make SGX_MODE=HW SGX_DEBUG=1
./app
我希望这有帮助。