Как реализовать динамическую загрузку внутри анклава Intel SGX?

Потому что никакая стандартная библиотека не может быть использована внутри анклава Intel SGX. Как реализовать динамическую загрузку внутри анклава? Например, у меня есть функции foo1() а также foo2() в файле с расширением.so.

Мне нужно динамически загрузить функцию внутри анклава. Затем основная функция вне Enclave может вызвать загруженную функцию.

App.cpp

status = ecall_dynamicLoading(enclave_id,func); // func is a function pointer loaded from .so // for example, func = &foo1;

Enclave.cpp

ecall_dynamicLoading(func){ (*func)(/* some inputs */); }

Является ли это возможным?

Спасибо.

1 ответ

Согласно собственной документации Intel, вы не можете загрузить shared_object (.so) внутри ENCLAVE. Вам нужно превратить его в статическую библиотеку.

https://software.intel.com/en-us/node/708963 https://software.intel.com/en-us/node/708964

Даже тогда статическая библиотека имеет много ограничений.

Другие вопросы по тегам