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>EncryptAndGenerate</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/CcmEncryptor/Overview.html">CcmEncryptor</a>::EncryptAndGenerate</CODE> Member Function</h1>
11    <h2>Syntax</h2>
12    <div class="section">
13      <pre class="definition">
14static void EncryptAndGenerate(
15     void * pMac,
16     void * pDst,
17     size_t dstSize,
18     const void * pAdata,
19     size_t adataSize,
20     const void * pPdata,
21     size_t pdataSize,
22     const void * pIv,
23     size_t ivSize,
24     size_t macSize,
25     const <a href="../../../nn/crypto/BlockCipher/Overview.html">BlockCipher</a> & c
26);
27</pre>
28    </div>
29    <h2>Parameters</h2>
30    <div class="section">
31      <table class="arguments">
32        <thead>
33          <tr>
34            <td width="15" />
35            <th>Name</th>
36            <td>Description</td>
37          </tr>
38        </thead>
39        <tr>
40          <td>out</td>
41          <th>pMac</th>
42          <td>Pointer to the buffer storing the MAC.</td>
43        </tr>
44        <tr>
45          <td>out</td>
46          <th>pDst</th>
47          <td>Pointer to the buffer storing the encryption results.</td>
48        </tr>
49        <tr>
50          <td>in</td>
51          <th>dstSize</th>
52          <td>Size of the buffer pointed to by <SPAN class="argument">pDst</SPAN>.</td>
53        </tr>
54        <tr>
55          <td>in</td>
56          <th>pAdata</th>
57          <td>Pointer to the buffer storing the Adata.</td>
58        </tr>
59        <tr>
60          <td>in</td>
61          <th>adataSize</th>
62          <td>Adata size in bytes.</td>
63        </tr>
64        <tr>
65          <td>in</td>
66          <th>pPdata</th>
67          <td>Pointer to the buffer storing the Pdata.</td>
68        </tr>
69        <tr>
70          <td>in</td>
71          <th>pdataSize</th>
72          <td>Pdata size in bytes.</td>
73        </tr>
74        <tr>
75          <td>in</td>
76          <th>pIv</th>
77          <td>Pointer to the buffer storing the IV.</td>
78        </tr>
79        <tr>
80          <td>in</td>
81          <th>ivSize</th>
82          <td>IV size in bytes.</td>
83        </tr>
84        <tr>
85          <td>in</td>
86          <th>macSize</th>
87          <td>MAC size in bytes.</td>
88        </tr>
89        <tr>
90          <td>in</td>
91          <th>c</th>
92          <td>Instance of the block encryption implementation used in encryption.</td>
93        </tr> </table>
94    </div>
95    <h2>Return Values</h2>
96    <div class="section">
97                None.
98               </div>
99    <h2>Description</h2>
100    <div class="section">
101      <p>Handles batch encryption and MAC generation in CTR mode.</p><p>When all data is loaded into memory, you can call this function to encrypt and generate MACs for all of the data at once.</p><p>For <SPAN class="argument">c</SPAN>, specify an instance of a class derived from the <CODE><a href="../../../nn/crypto/BlockCipher/Overview.html">BlockCipher</a></CODE> class that implements the block cipher used in encryption. You must have previously used the <CODE><a href="../../../nn/crypto/BlockCipher/SetKey.html">BlockCipher::SetKey</a></CODE> function to set the key used in encryption.</p><p>Specify a pointer to an IV object in <SPAN class="argument">pIv</SPAN>, and its size in <SPAN class="argument">ivSize</SPAN>. The IV is called a &quot;nonce&quot; in CCM mode. The value in <SPAN class="argument">ivSize</SPAN> must be at least 7 and no more than 13. You cannot specify 13 if <SPAN class="argument">pdataSize</SPAN> exceeds <CODE>0x01000000</CODE> bytes. Nintendo strongly recommends specifying 12 or 13.</p><p>The value in <SPAN class="argument">macSize</SPAN> must be an even number of at least 4 and no more than 16. Nintendo strongly recommends specifying 16.</p><!-- write here --></div>
102    <h2>Revision History</h2>
103    <div class="section">
104      <dl class="history">
105        <dt>2011/10/27</dt>
106        <dd>Initial version.<br />
107        </dd>
108      </dl>
109    </div>
110  <hr><p>CONFIDENTIAL</p></body>
111</html>