Bibliotecas padrão C++ não suportadas em Intel® SGX enclaves
Por que não é possível usar std::stringstream em um enclave?
Stringstream faz parte do que não é suportado por Intel SGX. O Intel SGX de referência para desenvolvedores SDK diz:
"Quanto à biblioteca padrão C++, a maioria das funções funcionará como sua contraparte não confiável, mas aqui está um resumo de alto nível de recursos que não são suportados dentro do enclave:
- Funções e classes relacionadas a E/S, como ;
- Funções dependendo de uma biblioteca local;
- Quaisquer outras funções que exigem chamadas do sistema."
A seção De classes e funções padrão C++ não suportadas contém uma tabela, intitulada Biblioteca de entrada/saída,na qual o iostream está listado como não suportado.
Como solução alternativa para acessar funções iostream em um enclave, crie uma chamada que chama as funções de iostream no aplicativo não falso em nome do enclave. O exemplo sampleEnclave no Kit de desenvolvimento de software SGX (SGX SDK) demonstra como implementar uma ocall para usar printf em um enclave.