OCALL を使用して、信頼できないメモリで動的に作成された C 文字列のコピーを自分のエンクレーブに取得したいと考えています。したがって、[out, string]
属性を使用する必要があります。
[in]
ただし、属性も追加する必要があるため、それはできません。問題は、文字列のサイズが本当にわからないことと、[in]
OCALL を作成するたびにエンクレーブから信頼できないメモリに文字列を不必要にコピーすることによるオーバーヘッド (に伴う) が必要ないことです。
私のedlファイル:
enclave {
trusted {
public void ecall_open(void);
};
untrusted {
void ocall_get_string([out, string] char* str);
};
};
error: string/wstring/sizefunc should be used with an 'in' attribute
なぜ[in]
属性を追加する必要があるのですか?
パフォーマンス上の理由から、このオーバーヘッドを回避する方法はありますか?