Пример локальной аттестации SGX, возвращающий 0x3002 в симуляторе
Я не могу на всю жизнь заставить корректно работать образец LocalAttestation при новой установке Linux, следуя инструкциям успешно. Учитывая, что это строится в режиме симуляции, я бы подумал, что нет никаких дополнительных зависимостей?
Я изменил демо, чтобы обеспечить дополнительный вывод, и эта строка возвращает 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 и эта ошибка даже не упоминается как возможность в документации Intel по этой функции: https://software.intel.com / EN-US / SGX-СДК-DEV-ссылки SGX создать-анклав
Любая помощь будет принята с благодарностью!
Генри
1 ответ
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);
Оказывается, это была проблема с примером кода. Инициализируя обнуленный launch_token, все работает как ожидалось:
sgx_launch_token_t launch_token = {0};