<trclass="memdesc:gae46155a7e0f590af119edb140d974cb1"><tdclass="mdescLeft"> </td><tdclass="mdescRight">A handle to a NSSL context created with <aclass="el"href="group__nsysnet__nssl.html#gafd4a0686315bd9f7a4c99ece33cb74c8"title="Creates a context to use with the NSSL library.">NSSLCreateContext()</a>. <ahref="group__nsysnet__nssl.html#gae46155a7e0f590af119edb140d974cb1">More...</a><br/></td></tr>
<trclass="memdesc:ga79622287731ba9edbbcc5a7a21ad2c54"><tdclass="mdescLeft"> </td><tdclass="mdescRight">A handle to a NSSL connection created with <aclass="el"href="group__nsysnet__nssl.html#ga6980469997f47e7f9712b549f807bfe4"title="Open an SSL connection.">NSSLCreateConnection()</a>. <ahref="group__nsysnet__nssl.html#ga79622287731ba9edbbcc5a7a21ad2c54">More...</a><br/></td></tr>
<trclass="memdesc:gaa8a0f48711dabdd5c7e01a18ddeeaf95"><tdclass="mdescLeft"> </td><tdclass="mdescRight">The IDs of a system CA. <ahref="group__nsysnet__nssl.html#gaa8a0f48711dabdd5c7e01a18ddeeaf95">More...</a><br/></td></tr>
<trclass="memdesc:ga38586a4d6115d2c6486aafefaf4fc162"><tdclass="mdescLeft"> </td><tdclass="mdescRight">The IDs of a system CA. <ahref="group__nsysnet__nssl.html#ga38586a4d6115d2c6486aafefaf4fc162">More...</a><br/></td></tr>
<trclass="memdesc:ga271f6d02a5a17553605ee6f4c5d92201"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Initialises the NSSL library for use. <ahref="group__nsysnet__nssl.html#ga271f6d02a5a17553605ee6f4c5d92201">More...</a><br/></td></tr>
<trclass="memdesc:gabd6dd47f0a2f3698fd07c3336119fd60"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Cleans up and finishes use of the NSSL library. <ahref="group__nsysnet__nssl.html#gabd6dd47f0a2f3698fd07c3336119fd60">More...</a><br/></td></tr>
<trclass="memdesc:gafd4a0686315bd9f7a4c99ece33cb74c8"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Creates a context to use with the NSSL library. <ahref="group__nsysnet__nssl.html#gafd4a0686315bd9f7a4c99ece33cb74c8">More...</a><br/></td></tr>
<trclass="memdesc:ga2287e2c1ecb34493a1a3fe3359cc5ed1"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Destroys a NSSL context. <ahref="group__nsysnet__nssl.html#ga2287e2c1ecb34493a1a3fe3359cc5ed1">More...</a><br/></td></tr>
<trclass="memdesc:gae26bc46ca42f79c3140119374c40cea5"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Add a custom root CA to the given NSSL context. <ahref="group__nsysnet__nssl.html#gae26bc46ca42f79c3140119374c40cea5">More...</a><br/></td></tr>
<trclass="memdesc:ga29af65684bb6a2a238998b1282e9be1b"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Add a system root CA (one of <aclass="el"href="group__nsysnet__nssl.html#ga38586a4d6115d2c6486aafefaf4fc162"title="The IDs of a system CA.">NSSLServerCertId</a>) to the given NSSL context. <ahref="group__nsysnet__nssl.html#ga29af65684bb6a2a238998b1282e9be1b">More...</a><br/></td></tr>
<trclass="memdesc:ga6980469997f47e7f9712b549f807bfe4"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Open an SSL connection. <ahref="group__nsysnet__nssl.html#ga6980469997f47e7f9712b549f807bfe4">More...</a><br/></td></tr>
<trclass="memdesc:ga086f2b4473940cc47f13085184ecdb88"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Close and destroy a NSSL connection. <ahref="group__nsysnet__nssl.html#ga086f2b4473940cc47f13085184ecdb88">More...</a><br/></td></tr>
<trclass="memdesc:ga6b734c16fb0ed64d42ae11cc2c583410"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Read data from an open NSSL connection into a given buffer. <ahref="group__nsysnet__nssl.html#ga6b734c16fb0ed64d42ae11cc2c583410">More...</a><br/></td></tr>
<trclass="memdesc:gac4f9fc85ec4f365aae566cb5205fcd91"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Write data to an open NSSL connection from a given buffer. <ahref="group__nsysnet__nssl.html#gac4f9fc85ec4f365aae566cb5205fcd91">More...</a><br/></td></tr>
<p>The NSSL library is Nintendo's interface for making SSL connections on the Wii U. To use NSSL directly, call <aclass="el"href="group__nsysnet__nssl.html#ga271f6d02a5a17553605ee6f4c5d92201"title="Initialises the NSSL library for use.">NSSLInit()</a> then <aclass="el"href="group__nsysnet__nssl.html#gafd4a0686315bd9f7a4c99ece33cb74c8"title="Creates a context to use with the NSSL library.">NSSLCreateContext()</a> to create a context. This context - after adding root CAs via <aclass="el"href="group__nsysnet__nssl.html#ga29af65684bb6a2a238998b1282e9be1b"title="Add a system root CA (one of NSSLServerCertId) to the given NSSL context.">NSSLAddServerPKI()</a> or <aclass="el"href="group__nsysnet__nssl.html#gae26bc46ca42f79c3140119374c40cea5"title="Add a custom root CA to the given NSSL context.">NSSLAddServerPKIExternal()</a> - can be used to create connections (<aclass="el"href="group__nsysnet__nssl.html#ga6980469997f47e7f9712b549f807bfe4"title="Open an SSL connection.">NSSLCreateConnection()</a>) that can transfer data using <aclass="el"href="group__nsysnet__nssl.html#ga6b734c16fb0ed64d42ae11cc2c583410"title="Read data from an open NSSL connection into a given buffer.">NSSLRead()</a> and <aclass="el"href="group__nsysnet__nssl.html#gac4f9fc85ec4f365aae566cb5205fcd91"title="Write data to an open NSSL connection from a given buffer.">NSSLWrite()</a>.</p>
<p>A handle to a NSSL context created with <aclass="el"href="group__nsysnet__nssl.html#gafd4a0686315bd9f7a4c99ece33cb74c8"title="Creates a context to use with the NSSL library.">NSSLCreateContext()</a>. </p>
<pclass="definition">Definition at line <aclass="el"href="nssl_8h_source.html#l00028">28</a> of file <aclass="el"href="nssl_8h_source.html">nssl.h</a>.</p>
<p>A handle to a NSSL connection created with <aclass="el"href="group__nsysnet__nssl.html#ga6980469997f47e7f9712b549f807bfe4"title="Open an SSL connection.">NSSLCreateConnection()</a>. </p>
<pclass="definition">Definition at line <aclass="el"href="nssl_8h_source.html#l00030">30</a> of file <aclass="el"href="nssl_8h_source.html">nssl.h</a>.</p>
<p>These certificates are built-in to the system and can be added to a NSSL context with <aclass="el"href="group__nsysnet__nssl.html#ga29af65684bb6a2a238998b1282e9be1b"title="Add a system root CA (one of NSSLServerCertId) to the given NSSL context.">NSSLAddServerPKI()</a>.</p>
<p>These certificates are built-in to the system and can be added to a NSSL context with <aclass="el"href="group__nsysnet__nssl.html#ga29af65684bb6a2a238998b1282e9be1b"title="Add a system root CA (one of NSSLServerCertId) to the given NSSL context.">NSSLAddServerPKI()</a>.</p>
<p>The names and fingerprints given in this documentation are taken from the real certificates inside the Wii U's CDN package. </p>
<tableclass="fieldtable">
<tr><thcolspan="2">Enumerator</th></tr><tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162a44764410cad55e71de7b54b1ef27396e"></a>NSSL_SERVER_CERT_GROUP_NINTENDO_FIRST </td><tdclass="fielddoc"><p>Represents the first certificate in the Nintendo CA group. </p>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162ad3a072fd09b355320d8d97de72699a3c"></a>NSSL_SERVER_CERT_NINTENDO_CA_G3 </td><tdclass="fielddoc"><p>Nintendo CA - G3 (SHA1: 68 A0 77 05 CC C7 A4 08 41 6E 0E D7 AD 65 F2 EC 3F EA 98 62) </p>
</td></tr>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162a7339997df6b98f17d6c30fafce6c2061"></a>NSSL_SERVER_CERT_NINTENDO_CLASS2_CA </td><tdclass="fielddoc"><p>Nintendo Class 2 CA (SHA1: AA 8E F6 6A E0 F8 07 ED B8 41 C8 89 EE 36 66 A2 59 A2 8C CC) </p>
</td></tr>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162ae205afa4a74bbab928dd12a5715844d6"></a>NSSL_SERVER_CERT_NINTENDO_CLASS2_CA_G2 </td><tdclass="fielddoc"><p>Nintendo Class 2 CA - G2 (SHA1: 03 9D E5 37 3A C6 5E 1A EE 89 8D 54 E7 56 35 76 EB BE 54 9B) </p>
</td></tr>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162a4d57a04ba01e550690c193b5c99aaed3"></a>NSSL_SERVER_CERT_NINTENDO_CLASS2_CA_G3 </td><tdclass="fielddoc"><p>Nintendo Class 2 CA - G3 (SHA1: FA B5 6C 4C C7 CF F5 07 1D 40 B6 B0 07 38 61 D2 90 CA 2A 1A) </p>
</td></tr>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162aa1186c2da2524d45d98d6d847e1a5539"></a>NSSL_SERVER_CERT_GROUP_NINTENDO_LAST </td><tdclass="fielddoc"><p>Represents the last certificate in the Nintendo CA group. </p>
</td></tr>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162af44ae53e1c5af690c33c53d39ad6c903"></a>NSSL_SERVER_CERT_GROUP_COMMERCIAL_FIRST </td><tdclass="fielddoc"><p>Represents the first certificate in the commercial CA group. </p>
</td></tr>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162a1e5135043ad251e52d0b6424d5a73b74"></a>NSSL_SERVER_CERT_BALTIMORE_CYBERTRUST_ROOT_CA </td><tdclass="fielddoc"><p>Baltimore CyberTrust Root (SHA1: D4 DE 20 D0 5E 66 FC 53 FE 1A 50 88 2C 78 DB 28 52 CA E4 74) </p>
</td></tr>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162a15b3171c3d3d0940d3bc94c26a0aa84d"></a>NSSL_SERVER_CERT_CYBERTRUST_GLOBAL_ROOT_CA </td><tdclass="fielddoc"><p>Cybertrust Global Root (SHA1: 5F 43 E5 B1 BF F8 78 8C AC 1C C7 CA 4A 9A C6 22 2B CC 34 C6) </p>
</td></tr>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162a14b8daa3741773f882b2078c1b58520c"></a>NSSL_SERVER_CERT_VERIZON_GLOBAL_ROOT_CA </td><tdclass="fielddoc"><p>Verizon Global Root (SHA1: 91 21 98 EE F2 3D CA C4 09 39 31 2F EE 97 DD 56 0B AE 49 B1) </p>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162a50683e4aaf96862aea0da63e3c5b40a9"></a>NSSL_SERVER_CERT_VERISIGN_CLASS3_PUBLIC_PRIMARY_CA_G5 </td><tdclass="fielddoc"><p>VeriSign Class 3 Public Primary Certification Authority - G5 (SHA1: 4E B6 D5 78 49 9B 1C CF 5F 58 1E AD 56 BE 3D 9B 67 44 A5 E5) </p>
</td></tr>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162ac2d8f3a10f1b05117ea6f84fbaa43b43"></a>NSSL_SERVER_CERT_THAWTE_PRIMARY_ROOT_CA_G3 </td><tdclass="fielddoc"><p>thawte Primary Root CA - G3 (SHA1: F1 8B 53 8D 1B E9 03 B6 A6 F0 56 43 5B 17 15 89 CA F3 6B F2) </p>
</td></tr>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162a47d6223e74dfe30c26a789b54019f0cf"></a>NSSL_SERVER_CERT_THAWTE_PRIMARY_ROOT_CA </td><tdclass="fielddoc"><p>thawte Primary Root CA (SHA1: 91 C6 D6 EE 3E 8A C8 63 84 E5 48 C2 99 29 5C 75 6C 81 7B 81) </p>
</td></tr>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162a4f04ffb6a7a833f52ea9a036fa3bde88"></a>NSSL_SERVER_CERT_GEOTRUST_GLOBAL_CA </td><tdclass="fielddoc"><p>GeoTrust Global CA (SHA1: DE 28 F4 A4 FF E5 B9 2F A3 C5 03 D1 A3 49 A7 F9 96 2A 82 12) </p>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162a80940a860a0b7116ae9c25e55d6efbbd"></a>NSSL_SERVER_CERT_UTN_DATACORP_SGC_CA </td><tdclass="fielddoc"><p>UTN - DATACorp SGC (SHA1: 58 11 9F 0E 12 82 87 EA 50 FD D9 87 45 6F 4F 78 DC FA D6 D4) </p>
</td></tr>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162a78e923d100a6b4e1ab4754015fe4f29d"></a>NSSL_SERVER_CERT_UTN_USERFIRST_HARDWARE_CA </td><tdclass="fielddoc"><p>UTN-USERFirst-Hardware (SHA1: 04 83 ED 33 99 AC 36 08 05 87 22 ED BC 5E 46 00 E3 BE F9 D7) </p>
</td></tr>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162ad78b0fd5a2331f5fc2046a5fdcc4fb39"></a>NSSL_SERVER_CERT_DIGICERT_HIGH_ASSURANCE_EV_ROOT_CA </td><tdclass="fielddoc"><p>DigiCert High Assurance EV Root CA (SHA1: 5F B7 EE 06 33 E2 59 DB AD 0C 4C 9A E6 D3 8F 1A 61 C7 DC 25) </p>
</td></tr>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162abb685963d084c1ef99ba6815426fc2a7"></a>NSSL_SERVER_CERT_DIGICERT_ASSURED_ID_ROOT_CA </td><tdclass="fielddoc"><p>DigiCert Assured ID Root CA (SHA1: 05 63 B8 63 0D 62 D7 5A BB C8 AB 1E 4B DF B5 A8 99 B2 4D 43) </p>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162a5737164a863092db725b1cdc97f733c6"></a>NSSL_SERVER_CERT_DIGICERT_GLOBAL_ROOT_CA_G2 </td><tdclass="fielddoc"><p>DigiCert Global Root G2 (SHA1: DF 3C 24 F9 BF D6 66 76 1B 26 80 73 FE 06 D1 CC 8D 4F 82 A4) </p>
</td></tr>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162a44a9bbe3dc071bfbc069373d1abee15b"></a>NSSL_SERVER_CERT_GROUP_COMMERCIAL_LAST </td><tdclass="fielddoc"><p>Represents the last certificate in the commerical CA group. </p>
</td></tr>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162ad0d11f8a301e5a3dbee4a72b32191566"></a>NSSL_SERVER_CERT_GROUP_COMMERCIAL_4096_FIRST </td><tdclass="fielddoc"><p>Represents the first certificate in the 4096-bit commercial CA group. </p>
<tr><tdclass="fieldname"><aid="gga38586a4d6115d2c6486aafefaf4fc162a731b672ccd58765c653866fd6e421db8"></a>NSSL_SERVER_CERT_GROUP_COMMERCIAL_4096_LAST </td><tdclass="fielddoc"><p>Represents the last certificate in the 4096-bit commercial CA group. </p>
</td></tr>
</table>
<pclass="definition">Definition at line <aclass="el"href="nssl_8h_source.html#l00043">43</a> of file <aclass="el"href="nssl_8h_source.html">nssl.h</a>.</p>
<li><aclass="el"href="group__nsysnet__nssl.html#gabd6dd47f0a2f3698fd07c3336119fd60"title="Cleans up and finishes use of the NSSL library.">NSSLFinish()</a></li>
<dlclass="section return"><dt>Returns</dt><dd>A <aclass="el"href="group__nsysnet__nssl.html#gae46155a7e0f590af119edb140d974cb1"title="A handle to a NSSL context created with NSSLCreateContext().">NSSLContextHandle</a> representing the newly created context, or a negative value on error.</dd></dl>
<li><aclass="el"href="group__nsysnet__nssl.html#ga29af65684bb6a2a238998b1282e9be1b"title="Add a system root CA (one of NSSLServerCertId) to the given NSSL context.">NSSLAddServerPKI()</a></li>
<p>Add a system root CA (one of <aclass="el"href="group__nsysnet__nssl.html#ga38586a4d6115d2c6486aafefaf4fc162"title="The IDs of a system CA.">NSSLServerCertId</a>) to the given NSSL context. </p>
<tr><tdclass="paramname">pki</td><td>The <aclass="el"href="group__nsysnet__nssl.html#ga38586a4d6115d2c6486aafefaf4fc162"title="The IDs of a system CA.">NSSLServerCertId</a> representing the system CA to add.</td></tr>
<li><aclass="el"href="group__nsysnet__nssl.html#gae26bc46ca42f79c3140119374c40cea5"title="Add a custom root CA to the given NSSL context.">NSSLAddServerPKIExternal()</a></li>
<dlclass="section return"><dt>Returns</dt><dd>A <aclass="el"href="group__nsysnet__nssl.html#ga79622287731ba9edbbcc5a7a21ad2c54"title="A handle to a NSSL connection created with NSSLCreateConnection().">NSSLConnectionHandle</a> representing the current connection.</dd></dl>
<li><aclass="el"href="group__nsysnet__nssl.html#ga6b734c16fb0ed64d42ae11cc2c583410"title="Read data from an open NSSL connection into a given buffer.">NSSLRead()</a></li>
<li><aclass="el"href="group__nsysnet__nssl.html#gac4f9fc85ec4f365aae566cb5205fcd91"title="Write data to an open NSSL connection from a given buffer.">NSSLWrite()</a></li>
<li><aclass="el"href="group__nsysnet__nssl.html#ga086f2b4473940cc47f13085184ecdb88"title="Close and destroy a NSSL connection.">NSSLDestroyConnection()</a></li>
<p>Read data from an open NSSL connection into a given buffer. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">connection</td><td>The connection to read data from.</td></tr>
<tr><tdclass="paramname">buffer</td><td>A buffer to read decrypted data into.</td></tr>
<tr><tdclass="paramname">length</td><td>The length of the given buffer.</td></tr>
<tr><tdclass="paramname">outBytesRead</td><td>A pointer to write the actual number of read bytes into. This may be smaller than the input buffer.</td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>0 on success, or a negative value on error.</dd></dl>
<li><aclass="el"href="group__nsysnet__nssl.html#gac4f9fc85ec4f365aae566cb5205fcd91"title="Write data to an open NSSL connection from a given buffer.">NSSLWrite()</a></li>
<p>Write data to an open NSSL connection from a given buffer. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">connection</td><td>The connection to write data to.</td></tr>
<tr><tdclass="paramname">buffer</td><td>A buffer containing the data to be sent.</td></tr>
<tr><tdclass="paramname">length</td><td>The length of the given buffer.</td></tr>
<tr><tdclass="paramname">outBytesWritten</td><td>A pointer to write the actual number of written bytes into. This may be smaller than the input buffer.</td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>0 on success, or a negative value on error.</dd></dl>
<li><aclass="el"href="group__nsysnet__nssl.html#ga6b734c16fb0ed64d42ae11cc2c583410"title="Read data from an open NSSL connection into a given buffer.">NSSLRead()</a></li>