Невозможно создать анклав SGX в аппаратном режиме — & quot; неверный маркер запуска & quot; хотя в документации указан неверный маркер запуска в качестве первого

Документация Intel гласит Вот что если нет предыдущего маркера запуска, следует использовать «недопустимый» токен со всеми нулями. Это прекрасно работает в режиме симуляции, но в аппаратном режиме возвращает SGX_ERROR_INVALID_LAUNCH_TOKEN, даже если это именно то, о чем он просит.

    // Initialize an "invalid" first token, as the documentation specifies (all zeros)
sgx_launch_token_t token = {0};

// Create enclave
sgx_enclave_id_t id;
int updated = 0;
const auto status = sgx_create_enclave("enclave.signed.so", SGX_DEBUG_FLAG, &token, &updated, &id, NULL);

if (status != SGX_SUCCESS) {
throw "Failed to initialize enclave. (" + get_error_message(status) + ")";
}

Код возвращает статус = SGX_ERROR_INVALID_LAUNCH_TOKEN

Failed to initialize enclave. (The launch token is not correct.)

Может быть, я что-то упускаю из процесса строительства?

0

Решение

Проблема была вызвана использованием моего приложения libsgx_urts.so от /usr/lib а также libsgx_uae_service.so из пути установки моего SGX SDK (/opt/intel/sgxsdk/lib64 в моем случае.)

Я изменил ссылку на следующее:


Simulation mode:
libsgx_urts.so => /opt/intel/sgxsdk/lib64/libsgx_urts.so
libsgx_uae_service.so => /opt/intel/sgxsdk/lib64/libsgx_uae_service.so


Hardware mode:
libsgx_urts.so => /usr/lib/libsgx_urts.so
libsgx_uae_service.so => /usr/lib/libsgx_uae_service.so

`

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]