<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Clang and LLVM should provide a documented & supported way to scrub registers and memory buffers"
   href="https://bugs.llvm.org/show_bug.cgi?id=36913">36913</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Clang and LLVM should provide a documented & supported way to scrub registers and memory buffers
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>new-bugs
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>new bugs
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>chandlerc@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>echristo@gmail.com, jdennett@google.com, llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Here, "scrub" means specifically in the context of protecting secrets such as
cryptographic private key data.

Currently, libraries that wish to reliably remove private key data from
registers or memory buffers have no well documented and reliable approach
because these operations are fundamentally "dead" and could be removed by the
optimizer. We need to come up with the programmer APIs that we think are
reasonable to use in crypto code and reasonable to implement. Then we need to
implement them across each layer and document their usage.

This is just an umbrella bug to track this and point people at when they are
interested in Clang and LLVM growing this kind of functionality.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>