1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xml:lang="en-US" lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
3  <head>
4    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5    <meta http-equiv="Content-Style-Type" content="text/css" />
6    <link rel="stylesheet" href="../../../css/manpage.css" type="text/css" />
7    <title>UpdatePdata</title>
8  </head>
9  <body>
10    <h1><CODE><a href="../../../nn/Overview.html">nn</a>::<a href="../../../nn/crypto/Overview.html">crypto</a>::<a href="../../../nn/crypto/AuthenticatedEncryptor/Overview.html">AuthenticatedEncryptor</a>::UpdatePdata</CODE> Member Function</h1>
11    <h2>Syntax</h2>
12    <div class="section">
13      <pre class="definition">
14virtual size_t UpdatePdata(
15     void * pDst,
16     size_t dstSize,
17     const void * pSrc,
18     size_t srcSize
19) = 0;
20</pre>
21    </div>
22    <h2>Parameters</h2>
23    <div class="section">
24      <table class="arguments">
25        <thead>
26          <tr>
27            <td width="15" />
28            <th>Name</th>
29            <td>Description</td>
30          </tr>
31        </thead>
32        <tr>
33          <td>out</td>
34          <th>pDst</th>
35          <td>Pointer to the buffer storing the encryption results.</td>
36        </tr>
37        <tr>
38          <td>in</td>
39          <th>dstSize</th>
40          <td>Size of the buffer specified by <SPAN class="argument">pDst</SPAN>.</td>
41        </tr>
42        <tr>
43          <td>in</td>
44          <th>pSrc</th>
45          <td>Pointer to the buffer storing the Pdata.</td>
46        </tr>
47        <tr>
48          <td>in</td>
49          <th>srcSize</th>
50          <td>Pdata size in bytes.</td>
51        </tr> </table>
52    </div>
53    <h2>Return Values</h2>
54    <div class="section">Returns the number of bytes written to <SPAN class="argument">pDst</SPAN>. </div>
55    <h2>Description</h2>
56    <div class="section">
57      <p>Specifies the Pdata and gets the encryption result.</p><p>The Pdata is data for MAC and also for encryption.</p><p>You must call the <CODE><a href="../../../nn/crypto/AuthenticatedEncryptor/UpdateAdataFinal.html">UpdateAdataFinal</a></CODE> function before calling this function.</p><p>You can call this function multiple times before calling the <CODE><a href="../../../nn/crypto/AuthenticatedEncryptor/UpdatePdataFinal.html">UpdatePdataFinal</a></CODE> function. However, input data is all handled as a single consolidation, so note that the order of input is significant.</p><p>The size of the buffer required for <SPAN class="argument">pDst</SPAN> is (the total of all <SPAN class="argument">size</SPAN> values specified in the <CODE>UpdatePdata</CODE> function calls, including the current call) - (the total of all <CODE>UpdatePdata</CODE> function return values, excluding the current call). For instance, if you have called the <CODE>UpdatePdata</CODE> function three times and specified <SPAN class="argument">size</SPAN> values of 500, 600, and 700, and the return values were 450, 620, and 660. Then in your next call to the <CODE>UpdatePdata</CODE> function, you would have to specify a buffer in <SPAN class="argument">pDst</SPAN> that is as big as the <SPAN class="argument">size</SPAN> value for that plus (500 + 600 + 700) - (450 + 620 + 660) = 70 bytes. The value of (the total of all <SPAN class="argument">size</SPAN> values specified in the <CODE>UpdatePdata</CODE> function calls, including the current call) - (the total of all <CODE>UpdatePdata</CODE> function return values, excluding the current call). That is, the size of the buffer you must specify in <SPAN class="argument">pDst</SPAN> cannot be any bigger than (<SPAN class="argument">size</SPAN> + the block size).</p><p>The function fails and displays an error if the size of the return value is larger than the buffer size specified in <SPAN class="argument">dstSize</SPAN>. Data is not written to the buffer beyond the size specified in <SPAN class="argument">dstSize</SPAN>. If the size of the return value is not larger than <SPAN class="argument">dstSize</SPAN>, the function indicates a successful completion and writes the size of the return value in <SPAN class="argument">pDst</SPAN>.</p><p>If this function fails, encryption cannot continue. You must then try again, starting by calling the <CODE><a href="../../../nn/ac/CTR/Initialize.html">Initialize</a></CODE> function.</p><!-- write here --></div>
58    <h2>Revision History</h2>
59    <div class="section">
60      <dl class="history">
61        <dt>2011/10/27</dt>
62        <dd>Initial version.<br />
63        </dd>
64      </dl>
65    </div>
66  <hr><p>CONFIDENTIAL</p></body>
67</html>