.edl文件包含HeapMaxSize
条目。 SDK用户指南指出这是因为
飞地内存是一种有限的资源。最大堆大小设置为 飞地创造。
但SGX规范是否允许EPC页面交换(EPA,EBLOCK,ETRACK,EWB)?
或者更实际的意义:设置HeapMaxSize=2^64
字节是否有缺点?
SDK可能尚不支持EPC页面交换,或者可信区域代码是否必须手动触发此类交换?
修改
正如 ab。指出的那样,使用SGXv1,所有EPC页面必须在安全区执行之前进行EADD
编辑。此时SDK是否仅支持SGXv1指令?
答案 0 :(得分:3)
我不熟悉SGX SDK,但请注意,SGXv1分页指令(EWB / ELDU和朋友)仍然要求您首先将EADDed放在所有页面上,并保留其加密内容在某些地方,以防他们被使用。即使SDK确实支持这一点,启动时你的飞地也会花费更长的时间,并且在为所有分页页面运行时会占用大量的存储空间。
SGXv2使用EAUG / EACCEPT解决了这个问题。