Нарушение доступа ненадежного прокси SGX

Через SGX EDL я определил эту подпись для вычисления цифровой подписи:

trusted {
public void enc_sign([in, size=messageLength] Ipp8u* message, unsigned messageLength,
[out, size=outputLength] Ipp8u* output, unsigned outputLength, unsigned saltLength, int signBufferSize,
[in, size=publicLength] IppsRSAPublicKeyState* publicKeyContext, int publicLength,
[in, size=privateLength] IppsRSAPrivateKeyState* privateKeyContext, int privateLength);
};

Я не думаю, что код самой функции уместен, поскольку вне анклава он работает хорошо.

SGX SDK затем автоматически генерирует недоверенный прокси-код, который отвечает за выполнение вызова; однако я получаю ошибку.

Автоматически сгенерированный код является следующим (только соответствующая часть):

sgx_status_t enc_sign(sgx_enclave_id_t eid, Ipp8u* message,
unsigned int messageLength, Ipp8u* output, unsigned int outputLength,
unsigned int saltLength, int signBufferSize,
IppsRSAPublicKeyState* publicKeyContext, int publicLength,
IppsRSAPrivateKeyState* privateKeyContext, int privateLength)
{
sgx_status_t status;
ms_enc_sign_t ms;
ms.ms_message = message;
ms.ms_messageLength = messageLength;
ms.ms_output = output;
ms.ms_outputLength = outputLength;
ms.ms_saltLength = saltLength;
ms.ms_signBufferSize = signBufferSize;
ms.ms_publicKeyContext = publicKeyContext;
ms.ms_publicLength = publicLength;
ms.ms_privateKeyContext = privateKeyContext;
ms.ms_privateLength = privateLength;
status = sgx_ecall(eid, 0, &ocall_table_ESigner, &ms);
return status;
}

Этот код, в частности строка status = sgx_ecall(eid, 0, &ocall_table_ESigner, &ms); заставляет меня нарушение доступа: прочитайте по адресу 0x00000000.

Я дважды проверил это, и eid ocall_table_ESigner а также ms не являются нулевыми Более того, изменение второго параметра на любое другое число приводит к исчезновению ошибки, поэтому я предполагаю, что это проблема индекса функции.

Тем не менее, понятия не имею, как ее решить.

0

Решение

Задача ещё не решена.

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

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

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