0

成功地按照说明在全新的 Linux 安装上正确运行 LocalAttestation 示例,我这辈子都做不到。鉴于这是在模拟模式下构建的,我会认为没有其他依赖项?

我修改了演示以提供额外的输出,这行返回 3002 SGX_ERROR_INVALID_ATTRIBUTE:

printf("creating enclave 1\n");
    ret = sgx_create_enclave(ENCLAVE1_PATH, SGX_DEBUG_FLAG, &launch_token, &launch_token_updated, &e1_enclave_id, NULL);
    if (ret != SGX_SUCCESS) {
        printf("Failed. Return value is: %X\n", ret);
                return ret;
    }

这是 linux SDK 中的示例:https ://github.com/intel/linux-sgx并且英特尔关于该功能的文档中甚至没有提到此错误的可能性:https://software.intel .com/en-us/sgx-sdk-dev-reference-sgx-create-enclave

任何帮助将不胜感激!

——亨利

4

2 回答 2

0
ret =sgx_create_enclave(_T(ENCLAVE_PATH),1,&launch_token,&launch_token_update,&enclave_id, NULL);
            if(ret !=SGX_SUCCESS)
            {
                printf("Failed to create enclave");
            }
            printf("Successfully create enclave.");
            printf("\nEnclaveID %llx", enclave_id);
于 2019-07-01T18:48:54.313 回答
0

原来这是示例代码的问题。通过将 launch_token 初始化为零,一切都按预期工作:

sgx_launch_token_t launch_token = {0};
于 2018-09-24T15:22:11.070 回答