Dois métodos para determinar o tamanho máximo do enclave.
Em um ambiente de nuvem, não é possível verificar a memória reservada do processador (PRM), que inclui o Cache de página do Enclave (EPC), no BIOS.
Não é possível usar o SDK Intel® Software Guard Extensions (Intel® SGX) para encontrar a memória disponível para um enclave.
A SDK Intel® Software Guard Extensions (Intel® SGX) não fornece uma maneira de encontrar o tamanho máximo do enclave. O SDK Intel® Software Guard Extensions (Intel® SGX) permite definir o tamanho do enclave em um aplicativo usando o Arquivo de configuração enclave.
Há dois métodos para relatar os recursos Intel® Software Guard Extensions (Intel® SGX) disponíveis em um processador. Ambas as opções relatam o MaxEnclaveSize, que é o tamanho máximo do enclave virtual. O tamanho máximo real do enclave é determinado pelos limites do sistema operacional ou da memória.
Opção 1
Em um sistema Linux*, execute cpuid em um terminal:
$ cpuid | grep MaxEnclaveSize
Opção 2
Use test_sgx.c:
- Vá para o Github de hardware SGX e baixe o arquivo test_sgx.c ou clone o repositório
- Compilar e correr test_sgx.c de acordo com estes Instruções:
$ gcc test-sgx.c -o test-sgx
$ ./test-sgx
Explicação do MaxEnclaveSize
Se MaxEnclaveSize estiver 0, o SGX não está habilitado na plataforma.
Se a SGX estiver habilitada, a saída mais comum é:
MaxEnclaveSize_Not64: 1f
MaxEnclaveSize_64: 24
- MaxEnclaveSize_Not64: o tamanho máximo do enclave suportado é de 2^(EDX[7:0]) bytes quando não no modo de 64 bits
- MaxEnclaveSize_64: o tamanho máximo do enclave suportado é de 2^(EDX[15:8]) bytes ao operar no modo de 64 bits.
O tamanho virtual máximo do enclave é de 2^(0x1f) para enclaves de 32 bits e 2^(0x24) para enclaves de 64 bits.
Consulte os valores devolvidos pela chamada CPUID na seção 37.7.2, Tabela 37-6 do Manual do Desenvolvedor de Software de IA Vol 3d Parte 4.