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>