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