Потому что никакая стандартная библиотека не может быть использована внутри анклава 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 */);
}
Является ли это возможным?
Спасибо.
Согласно собственной документации Intel, вы не можете загрузить shared_object (.so) внутри ENCLAVE. Вам нужно превратить его в статическую библиотеку.
https://software.intel.com/en-us/node/708963
https://software.intel.com/en-us/node/708964
Даже тогда статическая библиотека имеет много ограничений.
Других решений пока нет …