<?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 Difference btw trusted bridge and trusted proxy? in Intel® Software Guard Extensions (Intel® SGX)</title>
    <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Difference-btw-trusted-bridge-and-trusted-proxy/m-p/1124740#M1687</link>
    <description>&lt;P&gt;In Intel's SGX developer guide Pointer Handling(&lt;A href="https://software.intel.com/en-us/node/696463"&gt;https://software.intel.com/en-us/node/696463&lt;/A&gt;), it mentions:&lt;/P&gt;

&lt;P&gt;&lt;U&gt;&amp;gt; When a buffer is being copied, the trusted bridge must avoid overwriting enclave memory in an ECALL and the trusted proxy must avoid leaking secrets in an OCALL.&lt;/U&gt;&lt;/P&gt;

&lt;P&gt;What are the &lt;STRONG&gt;trusted bridge&lt;/STRONG&gt; and &lt;STRONG&gt;trusted proxy&lt;/STRONG&gt; here?&lt;/P&gt;</description>
    <pubDate>Wed, 04 Jan 2017 02:14:52 GMT</pubDate>
    <dc:creator>jason_t_</dc:creator>
    <dc:date>2017-01-04T02:14:52Z</dc:date>
    <item>
      <title>Difference btw trusted bridge and trusted proxy?</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Difference-btw-trusted-bridge-and-trusted-proxy/m-p/1124740#M1687</link>
      <description>&lt;P&gt;In Intel's SGX developer guide Pointer Handling(&lt;A href="https://software.intel.com/en-us/node/696463"&gt;https://software.intel.com/en-us/node/696463&lt;/A&gt;), it mentions:&lt;/P&gt;

&lt;P&gt;&lt;U&gt;&amp;gt; When a buffer is being copied, the trusted bridge must avoid overwriting enclave memory in an ECALL and the trusted proxy must avoid leaking secrets in an OCALL.&lt;/U&gt;&lt;/P&gt;

&lt;P&gt;What are the &lt;STRONG&gt;trusted bridge&lt;/STRONG&gt; and &lt;STRONG&gt;trusted proxy&lt;/STRONG&gt; here?&lt;/P&gt;</description>
      <pubDate>Wed, 04 Jan 2017 02:14:52 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Difference-btw-trusted-bridge-and-trusted-proxy/m-p/1124740#M1687</guid>
      <dc:creator>jason_t_</dc:creator>
      <dc:date>2017-01-04T02:14:52Z</dc:date>
    </item>
    <item>
      <title>Hello Jason,</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Difference-btw-trusted-bridge-and-trusted-proxy/m-p/1124741#M1688</link>
      <description>&lt;P&gt;Hello Jason,&lt;/P&gt;

&lt;P&gt;Trusted bridge and Trusted proxy interfaces between application and enclave.This code interfaces in/Out of enclave.&lt;/P&gt;

&lt;P&gt;Edger Tool(included in build environment) that parses the EDL file and generate the trusted bridge and trusted proxy files (.c and .h files).&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;Trusted Bridge&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;For ECALLs, trusted bridge task is to ensure that the marshalling structure does not overlap enclave memory.&lt;/P&gt;

&lt;P&gt;[in]: When a pointer to untrusted memory with attribute in is passed to the enclave, the trusted bridge allocates memory inside the enclave and copies the memory pointed to by&lt;BR /&gt;
	&amp;nbsp;the pointer from outside to the enclave memory.&lt;/P&gt;

&lt;P&gt;[out]: When a pointer to untrusted memory with the out attribute is passed to the enclave, the trusted bridge allocates a buffer in trusted memory, zeroes the buffer contents&lt;BR /&gt;
	&amp;nbsp;to clear any previous secrets and passes a pointer to this buffer to the trusted function. After the trusted function returns, the trusted bridge copies the contents of the&lt;BR /&gt;
	&amp;nbsp;trusted buffer to untrusted memory.&lt;BR /&gt;
	&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&lt;STRONG&gt;Trusted proxy&lt;/STRONG&gt;&lt;BR /&gt;
	&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;For OCALLs, the trusted proxy allocates memory on the outside stack to pass the marshalling structure and checks that pointer parameters with their full range are within enclave.&lt;BR /&gt;
	&amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;[in]: When a pointer to trusted memory with attribute in is passed from an enclave (an OCALL), the trusted proxy allocates memory outside the enclave and copies the memory&lt;BR /&gt;
	&amp;nbsp;pointed by the pointer from inside the enclave to untrusted memory.&lt;/P&gt;

&lt;P&gt;[out]: When a pointer to trusted memory with the out attribute is passed from an enclave (an OCALL), the trusted proxy allocates a buffer on the untrusted stack, and passes&lt;BR /&gt;
	&amp;nbsp;a pointer to this buffer to the untrusted function. After the untrusted function returns, the trusted proxy copies the contents of the untrusted buffer to trusted memory.&lt;/P&gt;

&lt;P&gt;Thanks,&lt;BR /&gt;
	R.Prabu&lt;/P&gt;</description>
      <pubDate>Wed, 04 Jan 2017 18:10:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Difference-btw-trusted-bridge-and-trusted-proxy/m-p/1124741#M1688</guid>
      <dc:creator>Prabu_R_Intel</dc:creator>
      <dc:date>2017-01-04T18:10:39Z</dc:date>
    </item>
    <item>
      <title>Thank you R.Prabu, so can I</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Difference-btw-trusted-bridge-and-trusted-proxy/m-p/1124742#M1689</link>
      <description>&lt;P&gt;Thank you R.Prabu, so can I re-phrase your detailed answer in this way ?&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Trusted bridge and trusted proxy are two delegates responsible for allocating and/or copying memory buffers in/out enclave. They are built by the&amp;nbsp;&lt;SPAN style="font-size: 12px;"&gt;Edger Tool, based on the EDL file we developer writes, to take care of each ECALL and OCALL respectively.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 05 Jan 2017 01:38:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/Difference-btw-trusted-bridge-and-trusted-proxy/m-p/1124742#M1689</guid>
      <dc:creator>jason_t_</dc:creator>
      <dc:date>2017-01-05T01:38:16Z</dc:date>
    </item>
  </channel>
</rss>

