<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re:std::stringstream in encalve in Intel® Software Guard Extensions (Intel® SGX)</title>
    <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/std-stringstream-in-encalve/m-p/1266711#M4391</link>
    <description>&lt;P&gt;&lt;B&gt;This thread has been marked as answered and Intel will no longer monitor this thread. If you want a response from Intel in a follow-up question, please open a new thread.&lt;/B&gt;&lt;/P&gt;&lt;BR /&gt;</description>
    <pubDate>Mon, 22 Mar 2021 22:38:48 GMT</pubDate>
    <dc:creator>JesusG_Intel</dc:creator>
    <dc:date>2021-03-22T22:38:48Z</dc:date>
    <item>
      <title>std::stringstream in encalve</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/std-stringstream-in-encalve/m-p/1264454#M4370</link>
      <description>&lt;P&gt;Why is it not possible to use std::stringstream in an enclave?&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 15 Mar 2021 15:40:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/std-stringstream-in-encalve/m-p/1264454#M4370</guid>
      <dc:creator>shmoo</dc:creator>
      <dc:date>2021-03-15T15:40:21Z</dc:date>
    </item>
    <item>
      <title>Re:std::stringstream in encalve</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/std-stringstream-in-encalve/m-p/1264561#M4373</link>
      <description>&lt;P&gt;Hello Shmoo,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Stringstream is part of &lt;SPAN style="font-family: courier;"&gt;&amp;lt;iostream&amp;gt;&lt;/SPAN&gt; which is not supported by SGX. The SGX Developer Reference Guide states:&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;"As for the C++ standard library, most functions will work just as its untrusted counterpart, but here is a high level summary of features that are not supported inside the enclave:&lt;/P&gt;&lt;P&gt;1. I/O related functions and classes, like &amp;lt;iostream&amp;gt;;&lt;/P&gt;&lt;P&gt;2. Functions depending on a locale library;&lt;/P&gt;&lt;P&gt;3. Any other functions that require system calls."&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;The section &lt;I&gt;Unsupported C++ Standard Classes and Functions&lt;/I&gt; contains a table, titled "Input/Output Library," in which iostream is listed as not supported.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;As a workaround to access iostream functions &lt;SPAN style="background-color: var(--lwc-colorBackgroundInput,rgb(255, 255, 255)); color: var(--lwc-colorTextWeak,rgb(62, 62, 60)); font-size: var(--lwc-fontSize3,0.8125rem); font-family: var(--lwc-fontFamily,&amp;quot;Salesforce Sans&amp;quot;, Arial, sans-serif);"&gt;within an enclave, &lt;/SPAN&gt;&lt;B style="background-color: var(--lwc-colorBackgroundInput,rgb(255, 255, 255)); color: var(--lwc-colorTextWeak,rgb(62, 62, 60)); font-size: var(--lwc-fontSize3,0.8125rem); font-family: var(--lwc-fontFamily,&amp;quot;Salesforce Sans&amp;quot;, Arial, sans-serif);"&gt;create &lt;/B&gt;&lt;SPAN style="background-color: var(--lwc-colorBackgroundInput,rgb(255, 255, 255)); color: var(--lwc-colorTextWeak,rgb(62, 62, 60)); font-size: var(--lwc-fontSize3,0.8125rem); font-family: var(--lwc-fontFamily,&amp;quot;Salesforce Sans&amp;quot;, Arial, sans-serif);"&gt;an ocall. The SampleEnclave example in the SGX SDK demonstrates how to implement an ocall for using &lt;/SPAN&gt;&lt;SPAN style="background-color: var(--lwc-colorBackgroundInput,rgb(255, 255, 255)); color: var(--lwc-colorTextWeak,rgb(62, 62, 60)); font-size: var(--lwc-fontSize3,0.8125rem); font-family: courier;"&gt;printf &lt;/SPAN&gt;&lt;SPAN style="background-color: var(--lwc-colorBackgroundInput,rgb(255, 255, 255)); color: var(--lwc-colorTextWeak,rgb(62, 62, 60)); font-size: var(--lwc-fontSize3,0.8125rem); font-family: var(--lwc-fontFamily,&amp;quot;Salesforce Sans&amp;quot;, Arial, sans-serif);"&gt;within an enclave.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Sincerely,&lt;/P&gt;&lt;P&gt;Jesus G.&lt;/P&gt;&lt;P&gt;Intel Customer Support&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Mon, 15 Mar 2021 21:52:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/std-stringstream-in-encalve/m-p/1264561#M4373</guid>
      <dc:creator>JesusG_Intel</dc:creator>
      <dc:date>2021-03-15T21:52:26Z</dc:date>
    </item>
    <item>
      <title>Re: Re:std::stringstream in encalve</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/std-stringstream-in-encalve/m-p/1264680#M4375</link>
      <description>&lt;P&gt;Hello Jesus!&lt;/P&gt;
&lt;P&gt;Thank you for your response! I am aware of that table. But Is there any reason why it is not supported? Are there any technical difficulties regarding the implementation?&lt;/P&gt;
&lt;P&gt;Sincerely,&lt;BR /&gt;David&lt;/P&gt;</description>
      <pubDate>Tue, 16 Mar 2021 06:36:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/std-stringstream-in-encalve/m-p/1264680#M4375</guid>
      <dc:creator>shmoo</dc:creator>
      <dc:date>2021-03-16T06:36:00Z</dc:date>
    </item>
    <item>
      <title>Re:std::stringstream in encalve</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/std-stringstream-in-encalve/m-p/1264860#M4377</link>
      <description>&lt;P&gt;Hello Shmoo,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;The I/O operations defined within &amp;lt;iostream&amp;gt; are not supported due to security reasons. The SGX SDK includes a trusted version of the C++ standard library. Remember, that SGX enclaves must be isolated from the system in order to maintain their security posture. The system is essentially untrusted. I/O operations are too dependent on system resources so a trusted version could not be created. This is why the enclave must go through the untrusted app to do I/O. If the untrusted app gets compromised, the enclave is not affected.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Sincerely,&lt;/P&gt;&lt;P&gt;Jesus G.&lt;/P&gt;&lt;P&gt;Intel Customer Support&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 16 Mar 2021 16:35:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/std-stringstream-in-encalve/m-p/1264860#M4377</guid>
      <dc:creator>JesusG_Intel</dc:creator>
      <dc:date>2021-03-16T16:35:46Z</dc:date>
    </item>
    <item>
      <title>Re: Re:std::stringstream in encalve</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/std-stringstream-in-encalve/m-p/1265059#M4378</link>
      <description>&lt;P&gt;I am aware that the enclave does not allow i/o operations. But the std::stringstream does not include iostream and does make any file i/o operations.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The reason I am asking this, is because several third party libraries rely on std::stringsteam and because of the missing implementation, it was impossible for us to include these libraries.&lt;/P&gt;</description>
      <pubDate>Wed, 17 Mar 2021 06:11:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/std-stringstream-in-encalve/m-p/1265059#M4378</guid>
      <dc:creator>shmoo</dc:creator>
      <dc:date>2021-03-17T06:11:08Z</dc:date>
    </item>
    <item>
      <title>Re: std::stringstream in encalve</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/std-stringstream-in-encalve/m-p/1265303#M4380</link>
      <description>&lt;P&gt;Hello Shmoo,&lt;/P&gt;
&lt;P&gt;I do not know the particulars of how the SGX engineers assess a function's security posture. All we know is that they assessed the functions in &amp;lt;iostream&amp;gt; and decided that they could not be ported into a trusted library.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sincerely,&lt;BR /&gt;Jesus G.&lt;BR /&gt;Intel Customer Support&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 17 Mar 2021 22:00:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/std-stringstream-in-encalve/m-p/1265303#M4380</guid>
      <dc:creator>JesusG_Intel</dc:creator>
      <dc:date>2021-03-17T22:00:12Z</dc:date>
    </item>
    <item>
      <title>Re:std::stringstream in encalve</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/std-stringstream-in-encalve/m-p/1266711#M4391</link>
      <description>&lt;P&gt;&lt;B&gt;This thread has been marked as answered and Intel will no longer monitor this thread. If you want a response from Intel in a follow-up question, please open a new thread.&lt;/B&gt;&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Mon, 22 Mar 2021 22:38:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/std-stringstream-in-encalve/m-p/1266711#M4391</guid>
      <dc:creator>JesusG_Intel</dc:creator>
      <dc:date>2021-03-22T22:38:48Z</dc:date>
    </item>
  </channel>
</rss>

