我能够在硬件模式下使用运行 SGX 并从 IAS 成功检索 SigRL。但是我在尝试使用他们的 REST API 执行 Quote 证明时遇到了困难。我在这里使用了 REST API 接口描述。我使用 HTTP POST 请求成功连接到服务器
https://test-as.sgx.trustedservices.intel.com:443/attestation//sgx/v1/report
但我总是收到一个错误:400 Bad request!?
在客户端我得到 msg3 如下
ret = sgx_ra_proc_msg2(this->enclave->getContext(),
this->enclave->getID(),
sgx_ra_proc_msg2_trusted,
sgx_ra_get_msg3_trusted,
p_msg2,
size,
&p_msg3,
&msg3_size);
返回SGX_SUCCESS
。然后我在 p_msg3 结构中准备报价
std::string quoteStr = ConvertToString(p_msg3->quote);
quoteStr = EncodeToBase64(quoteStr);
最后我把引号放在 JSON 字符串中,结果是
{"isvEnclaveQuote": "MDIwMDAxMDBlMzBhMDAwMDA0MDA...RiMjUyYTgxOGE4NTIzMzQxZDY3"}
现在作为有效载荷发送到 IAS。