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>Initialize</title> 8 </head> 9 <body> 10<h1><CODE>nn::ssl::Connection::Initialize</CODE> Member Function</h1> 11<h2>Syntax</h2> 12 <div class="section"> 13 <pre class="definition"> 14<a href="../../../nn/Result/Overview.html">nn::Result</a> Initialize( 15 const char * pServerName, 16 u32 verifyOpt = VERIFY_NONE 17); 18</pre> 19 </div> 20<h2>Arguments</h2> 21 <div class="section"> 22 <table class="arguments"> 23 <thead> 24 <tr> 25 <td width="15" /> 26<th>Name</th> 27<td>Description</td> 28 </tr> 29 </thead> 30 <tr> 31<td>in</td> 32<th>pServerName</th> 33<td>Communication target server's host name. During SSL communication, this host name is compared with the server certificate's <CODE>CommonName</CODE> value or its <CODE>subjectAltName</CODE> extended region <CODE>dnsName/IPAddress</CODE> value. If they do not match, a connection error occurs.<br />The maximum length of this string, including the <CODE>NULL</CODE> terminator, is <CODE>NN_SOCKET_MAXDNAME</CODE> bytes.</td> 34 </tr> 35 <tr> 36<td>in</td> 37<th>verifyOpt</th> 38<td>SSL server verification options. These verification options are disabled in the default server verification, but you can choose to enable them.<br />(This argument can be omitted when default server verification is used.)<br />Specify a <a href="../../../nn/ssl/VerifyOption.html"><CODE>nn::ssl::VerifyOption</CODE></a> enumerated type value representing the verification options to perform. (To specify multiple options, use the bitwise OR of the desired values.)<br /> Currently, this argument can be set to the following values: <CODE>nn::ssl::VERIFY_ROOT_CA</CODE>: Check whether the server certificate has expired.<br /><CODE>nn::ssl::USE_SESSION_CACHE</CODE>: Resume any existing session. (If you disconnect and reconnect to the same host, the system will attempt to resume the previous session.)<br /><CODE>nn::ssl::VERIFY_EV</CODE> : Carries out EV certificate authentication. (This authentication will fail unless the server certificate is linked to an EV certificate.)<br /><CODE>nn::ssl::VERIFY_IGNORE</CODE> : This option will verify the server certificate, but will ignore the verification result and connect regardless. (Get the result of the certificate verification using the <CODE>GetCertVerifyErrors</CODE> function.)<br /><CODE>nn::ssl::GET_ALL_SERVER_CERT_CHAIN</CODE> : This option will save all certificate data in the certificate chain when saving a server certificate to the buffer specified by <a href="../../../nn/ssl/Connection/SetServerCertBuffer.html"><CODE>SetServerCertBuffer</CODE></a>. (When this option is not specified, only the server certificate will be saved.)<br /><B>Note:</B> If the following verification options are defined in the <a href="../../../nn/ssl/VerifyOption.html"><CODE>VerifyOption</CODE></a> enumerated type, they will be run by default: (1) <I>CommonName</I> verification (<CODE>VERIFY_COMMON_NAME</CODE>), <I>RootCA</I> verification (<CODE>VERIFY_ROOT_CA</CODE>), and <I>SubjectAlternativeName</I> (<CODE>VERIFY_SUBJECT_ALT_NAME</CODE>).※<B>Note:</B> When saving all certificate data in the certificate chain using <CODE>nn::ssl::GET_ALL_SERVER_CERT_CHAIN</CODE>, the data will be laid out as follows: [length of certificate data (4 bytes)] + [certificate data].<br />The first certificate in the chain (the server certificate) will be the first item of data, and the end of the chain (the CA certificate) will be the last one. Note that if the CA verification fails, the CA certificate cannot be identified, so no CA certificate data will be included.<br /></td> 39 </tr> </table> 40 </div> 41<h2>Return Values</h2> 42<div class="section">Returns the function's execution result. Returns one of the <a href="../../../nn/Result/Overview.html"><CODE>Result</CODE></a> values listed below. <br /> 43 <table class="arguments"> 44 <thead> 45 <tr> 46<th>Value</th> 47<td>Description</td> 48 </tr> 49 </thead> 50 <tr> 51<th><CODE>ResultSuccess</CODE></th> 52<td>Process was successful.</td> 53 </tr> 54 <tr> 55<th>ResultProcessConnectionMaxErr</th> 56<td>Error indicating that the maximum number of connections used by one process has been reached. The connection will become usable if other SSL communication is ended; try again after calling <a href="../../../nn/ssl/Finalize.html"><CODE>Finalize</CODE></a> to end other <a href="../../../nn/ssl/Connection/Overview.html"><CODE>Connection</CODE></a>s that the caller has instantiated.</td> 57 </tr> 58 <tr> 59<th>ResultIpcSessionMaxErr</th> 60<td>Error indicating that the maximum number of IPC sessions are already connected. Trying again later may succeed (provided another IPC session succeeds in the meantime).</td> 61 </tr> 62 <tr> 63<th>ResultNotInitializedErr</th> 64<td>Error indicating that the library is not initialized. None of the functions in this library can be run without first running <a href="../../../nn/ssl/Initialize.html"><CODE>nn::ssl::Initialize</CODE></a>.</td> 65 </tr> 66 <tr> 67<th>A value other than the above.</th> 68<td>Unexpected error (see <CODE>ssl_Result.h</CODE> for error details).</td> 69 </tr> 70 </table> </div> 71<h2>Description</h2> 72 <div class="section"> 73<p>Initializes the connection. <BR><B>Note:</B> This function only configures communication settings; it does not connect on the network level. Network communication begins when the <a href="../../../nn/ssl/Connection/DoHandshake.html"><CODE>DoHandshake</CODE></a> function is called.</p><!-- write here --></div> 74<h2>Revision History</h2> 75 <div class="section"> 76 <dl class="history"> 77 <dt>2010/08/16</dt> 78<dd>Initial version.<br /> 79 </dd> 80 </dl> 81 </div> 82 <hr><p>CONFIDENTIAL</p></body> 83</html> 84