This commit is contained in:
2025-11-24 14:19:51 +05:30
commit f5c1412b28
6734 changed files with 1527575 additions and 0 deletions

View File

@ -0,0 +1,8 @@
var _two_way_authentication_8h =
[
[ "CHALLENGE_MINIMUM_TIMEOUT", "df/df8/_two_way_authentication_8h.xhtml#a75d76cdac8766b04974dd1161372a22b", null ],
[ "HASHED_NONCE_AND_PW_LENGTH", "df/df8/_two_way_authentication_8h.xhtml#a6c49937ccc748d8e7482399a8c6d5536", null ],
[ "NONCE_TIMEOUT_MS", "df/df8/_two_way_authentication_8h.xhtml#a626b5ac04df90117dab2c21b10576dd1", null ],
[ "TWO_WAY_AUTHENTICATION_NONCE_LENGTH", "df/df8/_two_way_authentication_8h.xhtml#aaa86357a26d52aae1bbb4337f804ff62", null ],
[ "FCM2Guid", "df/df8/_two_way_authentication_8h.xhtml#a62eaa6e09cf986dbadba4bd9d1f1def8", null ]
];

View File

@ -0,0 +1,251 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>SLikeNet: Source/include/slikenet/TwoWayAuthentication.h File Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">SLikeNet
&#160;<span id="projectnumber">0.1.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.2 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="../../index.xhtml"><span>Main&#160;Page</span></a></li>
<li><a href="../../pages.xhtml"><span>Related&#160;Pages</span></a></li>
<li><a href="../../modules.xhtml"><span>Modules</span></a></li>
<li><a href="../../namespaces.xhtml"><span>Namespaces</span></a></li>
<li><a href="../../annotated.xhtml"><span>Classes</span></a></li>
<li class="current"><a href="../../files.xhtml"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="../../search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="../../search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="../../files.xhtml"><span>File&#160;List</span></a></li>
<li><a href="../../globals.xhtml"><span>File&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('df/df8/_two_way_authentication_8h.xhtml','../../');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
<div class="title">TwoWayAuthentication.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Implements two way authentication.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="../../de/ddb/_native_feature_includes_8h_source.xhtml">NativeFeatureIncludes.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="../../db/d31/_d_r___s_h_a1_8h_source.xhtml">DR_SHA1.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="../../d7/ddd/_plugin_interface2_8h_source.xhtml">PluginInterface2.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="../../dd/dc5/memoryoverride_8h_source.xhtml">memoryoverride.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="../../df/df2/_native_types_8h_source.xhtml">NativeTypes.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="../../da/d66/string_8h_source.xhtml">string.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="../../d2/d77/_d_s___hash_8h_source.xhtml">DS_Hash.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="../../dc/d8d/_d_s___queue_8h_source.xhtml">DS_Queue.h</a>&quot;</code><br/>
</div>
<p><a href="../../df/df8/_two_way_authentication_8h_source.xhtml">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:d7/d56/class_s_l_net_1_1_two_way_authentication"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#d7/d56/class_s_l_net_1_1_two_way_authentication">SLNet::TwoWayAuthentication</a></td></tr>
<tr class="memdesc:d7/d56/class_s_l_net_1_1_two_way_authentication"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements two way authentication. <a href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#d7/d56/class_s_l_net_1_1_two_way_authentication">More...</a><br/></td></tr>
<tr class="separator:d7/d56/class_s_l_net_1_1_two_way_authentication"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:d7/dd6/struct_s_l_net_1_1_two_way_authentication_1_1_pending_challenge"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#d7/dd6/struct_s_l_net_1_1_two_way_authentication_1_1_pending_challenge">SLNet::TwoWayAuthentication::PendingChallenge</a></td></tr>
<tr class="separator:d7/dd6/struct_s_l_net_1_1_two_way_authentication_1_1_pending_challenge"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:d8/dc2/struct_s_l_net_1_1_two_way_authentication_1_1_nonce_and_remote_system_request"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#d8/dc2/struct_s_l_net_1_1_two_way_authentication_1_1_nonce_and_remote_system_request">SLNet::TwoWayAuthentication::NonceAndRemoteSystemRequest</a></td></tr>
<tr class="separator:d8/dc2/struct_s_l_net_1_1_two_way_authentication_1_1_nonce_and_remote_system_request"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:d0/da5/struct_s_l_net_1_1_two_way_authentication_1_1_nonce_generator"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#d0/da5/struct_s_l_net_1_1_two_way_authentication_1_1_nonce_generator">SLNet::TwoWayAuthentication::NonceGenerator</a></td></tr>
<tr class="separator:d0/da5/struct_s_l_net_1_1_two_way_authentication_1_1_nonce_generator"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:dd/d30/namespace_s_l_net"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d30/namespace_s_l_net.xhtml">SLNet</a></td></tr>
<tr class="memdesc:dd/d30/namespace_s_l_net"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simple class to send changes between directories. In essence, a simple autopatcher that can be used for transmitting levels, skins, etc. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a626b5ac04df90117dab2c21b10576dd1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/df8/_two_way_authentication_8h.xhtml#a626b5ac04df90117dab2c21b10576dd1">NONCE_TIMEOUT_MS</a>&#160;&#160;&#160;10000</td></tr>
<tr class="separator:a626b5ac04df90117dab2c21b10576dd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75d76cdac8766b04974dd1161372a22b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/df8/_two_way_authentication_8h.xhtml#a75d76cdac8766b04974dd1161372a22b">CHALLENGE_MINIMUM_TIMEOUT</a>&#160;&#160;&#160;3000</td></tr>
<tr class="separator:a75d76cdac8766b04974dd1161372a22b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa86357a26d52aae1bbb4337f804ff62"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/df8/_two_way_authentication_8h.xhtml#aaa86357a26d52aae1bbb4337f804ff62">TWO_WAY_AUTHENTICATION_NONCE_LENGTH</a>&#160;&#160;&#160;20</td></tr>
<tr class="separator:aaa86357a26d52aae1bbb4337f804ff62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c49937ccc748d8e7482399a8c6d5536"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/df8/_two_way_authentication_8h.xhtml#a6c49937ccc748d8e7482399a8c6d5536">HASHED_NONCE_AND_PW_LENGTH</a>&#160;&#160;&#160;<a class="el" href="../../db/d31/_d_r___s_h_a1_8h.xhtml#ada325b66c61568fd5151e89881aa368c">SHA1_LENGTH</a></td></tr>
<tr class="separator:a6c49937ccc748d8e7482399a8c6d5536"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a62eaa6e09cf986dbadba4bd9d1f1def8"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="../../df/df2/_native_types_8h.xhtml#adec1df1b8b51cb32b77e5b86fff46471">int64_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/df8/_two_way_authentication_8h.xhtml#a62eaa6e09cf986dbadba4bd9d1f1def8">FCM2Guid</a></td></tr>
<tr class="separator:a62eaa6e09cf986dbadba4bd9d1f1def8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implements two way authentication. </p>
<p>Given two systems, each of whom known a common password, verify the password without transmitting it This can be used to determine what permissions are should be allowed to the other system </p>
<p>Definition in file <a class="el" href="../../df/df8/_two_way_authentication_8h_source.xhtml">TwoWayAuthentication.h</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a75d76cdac8766b04974dd1161372a22b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CHALLENGE_MINIMUM_TIMEOUT&#160;&#160;&#160;3000</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="../../df/df8/_two_way_authentication_8h_source.xhtml#l00032">32</a> of file <a class="el" href="../../df/df8/_two_way_authentication_8h_source.xhtml">TwoWayAuthentication.h</a>.</p>
</div>
</div>
<a class="anchor" id="a6c49937ccc748d8e7482399a8c6d5536"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define HASHED_NONCE_AND_PW_LENGTH&#160;&#160;&#160;<a class="el" href="../../db/d31/_d_r___s_h_a1_8h.xhtml#ada325b66c61568fd5151e89881aa368c">SHA1_LENGTH</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="../../df/df8/_two_way_authentication_8h_source.xhtml#l00044">44</a> of file <a class="el" href="../../df/df8/_two_way_authentication_8h_source.xhtml">TwoWayAuthentication.h</a>.</p>
</div>
</div>
<a class="anchor" id="a626b5ac04df90117dab2c21b10576dd1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define NONCE_TIMEOUT_MS&#160;&#160;&#160;10000</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="../../df/df8/_two_way_authentication_8h_source.xhtml#l00030">30</a> of file <a class="el" href="../../df/df8/_two_way_authentication_8h_source.xhtml">TwoWayAuthentication.h</a>.</p>
</div>
</div>
<a class="anchor" id="aaa86357a26d52aae1bbb4337f804ff62"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define TWO_WAY_AUTHENTICATION_NONCE_LENGTH&#160;&#160;&#160;20</td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="../../df/df8/_two_way_authentication_8h_source.xhtml#l00043">43</a> of file <a class="el" href="../../df/df8/_two_way_authentication_8h_source.xhtml">TwoWayAuthentication.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="a62eaa6e09cf986dbadba4bd9d1f1def8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="../../df/df2/_native_types_8h.xhtml#adec1df1b8b51cb32b77e5b86fff46471">int64_t</a> <a class="el" href="../../d0/da8/_fully_connected_mesh2_8h.xhtml#a62eaa6e09cf986dbadba4bd9d1f1def8">FCM2Guid</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="../../df/df8/_two_way_authentication_8h_source.xhtml#l00054">54</a> of file <a class="el" href="../../df/df8/_two_way_authentication_8h_source.xhtml">TwoWayAuthentication.h</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_74389ed8173ad57b461b9d623a1f3867.xhtml">Source</a></li><li class="navelem"><a class="el" href="../../dir_bbb90e3ef9167a594ae33323139a2595.xhtml">include</a></li><li class="navelem"><a class="el" href="../../dir_88467e66686deb9d3756fe4fc298e321.xhtml">slikenet</a></li><li class="navelem"><a class="el" href="../../df/df8/_two_way_authentication_8h.xhtml">TwoWayAuthentication.h</a></li>
<li class="footer">Generated on Wed Aug 14 2019 22:09:48 for SLikeNet by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.2 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,248 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>SLikeNet: Source/include/slikenet/TwoWayAuthentication.h Source File</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">SLikeNet
&#160;<span id="projectnumber">0.1.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.2 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="../../index.xhtml"><span>Main&#160;Page</span></a></li>
<li><a href="../../pages.xhtml"><span>Related&#160;Pages</span></a></li>
<li><a href="../../modules.xhtml"><span>Modules</span></a></li>
<li><a href="../../namespaces.xhtml"><span>Namespaces</span></a></li>
<li><a href="../../annotated.xhtml"><span>Classes</span></a></li>
<li class="current"><a href="../../files.xhtml"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="../../search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="../../search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="../../files.xhtml"><span>File&#160;List</span></a></li>
<li><a href="../../globals.xhtml"><span>File&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('df/df8/_two_way_authentication_8h_source.xhtml','../../');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">TwoWayAuthentication.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="../../df/df8/_two_way_authentication_8h.xhtml">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Original work: Copyright (c) 2014, Oculus VR, Inc.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * All rights reserved.</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * This source code is licensed under the BSD-style license found in the</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * RakNet License.txt file in the licenses directory of this source tree. An additional grant </span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * of patent rights can be found in the RakNet Patents.txt file in the same directory.</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * Modified work: Copyright (c) 2017, SLikeSoft UG (haftungsbeschränkt)</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * This source code was modified by SLikeSoft. Modifications are licensed under the MIT-style</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * license found in the license.txt file in the root directory of this source tree.</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../de/ddb/_native_feature_includes_8h.xhtml">NativeFeatureIncludes.h</a>&quot;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#if _RAKNET_SUPPORT_TwoWayAuthentication==1</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#ifndef __TWO_WAY_AUTHENTICATION_H</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define __TWO_WAY_AUTHENTICATION_H</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">// How often to change the nonce.</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="code" href="../../df/df8/_two_way_authentication_8h.xhtml#a626b5ac04df90117dab2c21b10576dd1"> 30</a></span>&#160;<span class="preprocessor">#define NONCE_TIMEOUT_MS 10000</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"></span><span class="comment">// How often to check for ID_TWO_WAY_AUTHENTICATION_OUTGOING_CHALLENGE_TIMEOUT, and the minimum timeout time. Maximum is double this value.</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="code" href="../../df/df8/_two_way_authentication_8h.xhtml#a75d76cdac8766b04974dd1161372a22b"> 32</a></span>&#160;<span class="preprocessor">#define CHALLENGE_MINIMUM_TIMEOUT 3000</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#if LIBCAT_SECURITY==1</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor"></span><span class="comment">// From CPP FILE:</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// static const int HASH_BITS = 256;</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// static const int HASH_BYTES = HASH_BITS / 8;</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// static const int STRENGTHENING_FACTOR = 1000;</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#define TWO_WAY_AUTHENTICATION_NONCE_LENGTH 32</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HASHED_NONCE_AND_PW_LENGTH 32</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &quot;<a class="code" href="../../db/d31/_d_r___s_h_a1_8h.xhtml">DR_SHA1.h</a>&quot;</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="code" href="../../df/df8/_two_way_authentication_8h.xhtml#aaa86357a26d52aae1bbb4337f804ff62"> 43</a></span>&#160;<span class="preprocessor">#define TWO_WAY_AUTHENTICATION_NONCE_LENGTH 20</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="code" href="../../df/df8/_two_way_authentication_8h.xhtml#a6c49937ccc748d8e7482399a8c6d5536"> 44</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define HASHED_NONCE_AND_PW_LENGTH SHA1_LENGTH</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../d7/ddd/_plugin_interface2_8h.xhtml" title="RakNet&#39;s plugin functionality system, version 2. You can derive from this to create your own plugins...">PluginInterface2.h</a>&quot;</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../dd/dc5/memoryoverride_8h.xhtml" title="If _USE_RAK_MEMORY_OVERRIDE is defined, memory allocations go through rakMalloc, rakRealloc, and rakFree.">memoryoverride.h</a>&quot;</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../df/df2/_native_types_8h.xhtml">NativeTypes.h</a>&quot;</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../da/d66/string_8h.xhtml">string.h</a>&quot;</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../d2/d77/_d_s___hash_8h.xhtml">DS_Hash.h</a>&quot;</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../dc/d8d/_d_s___queue_8h.xhtml">DS_Queue.h</a>&quot;</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="code" href="../../df/df8/_two_way_authentication_8h.xhtml#a62eaa6e09cf986dbadba4bd9d1f1def8"> 54</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="../../df/df2/_native_types_8h.xhtml#adec1df1b8b51cb32b77e5b86fff46471">int64_t</a> <a class="code" href="../../d0/da8/_fully_connected_mesh2_8h.xhtml#a62eaa6e09cf986dbadba4bd9d1f1def8">FCM2Guid</a>;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">namespace </span>SLNet</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">class </span>RakPeerInterface;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml"> 67</a></span>&#160;<span class="keyword">class </span><a class="code" href="../../db/dbd/_export_8h.xhtml#ab0579394e418800d5c85e46ad6fcd61d">RAK_DLL_EXPORT</a> <a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#d7/d56/class_s_l_net_1_1_two_way_authentication" title="Implements two way authentication.">TwoWayAuthentication</a> : <span class="keyword">public</span> <a class="code" href="../../de/d14/group___p_l_u_g_i_n___i_n_t_e_r_f_a_c_e___g_r_o_u_p.xhtml#db/d5e/class_s_l_net_1_1_plugin_interface2">PluginInterface2</a></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="comment">// GetInstance() and DestroyInstance(instance*)</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="../../db/dbd/_export_8h.xhtml#af3e49377f340027d211b2814949efc48">STATIC_FACTORY_DECLARATIONS</a>(<a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#d7/d56/class_s_l_net_1_1_two_way_authentication" title="Implements two way authentication.">TwoWayAuthentication</a>)</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#d7/d56/class_s_l_net_1_1_two_way_authentication" title="Implements two way authentication.">TwoWayAuthentication</a>();</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#d7/d56/class_s_l_net_1_1_two_way_authentication" title="Implements two way authentication.">TwoWayAuthentication</a>();</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordtype">bool</span> AddPassword(<a class="code" href="../../d2/d66/class_s_l_net_1_1_rak_string.xhtml" title="String class.">SLNet::RakString</a> identifier, <a class="code" href="../../d2/d66/class_s_l_net_1_1_rak_string.xhtml" title="String class.">SLNet::RakString</a> password);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">bool</span> Challenge(<a class="code" href="../../d2/d66/class_s_l_net_1_1_rak_string.xhtml" title="String class.">SLNet::RakString</a> identifier, <a class="code" href="../../d3/da8/struct_s_l_net_1_1_address_or_g_u_i_d.xhtml">AddressOrGUID</a> remoteSystem);</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">void</span> Clear(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Update(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> <a class="code" href="../../de/d14/group___p_l_u_g_i_n___i_n_t_e_r_f_a_c_e___g_r_o_u_p.xhtml#ga5c8f613a7c294e0b96deccbdabc38f18">PluginReceiveResult</a> OnReceive(<a class="code" href="../../dd/d30/namespace_s_l_net.xhtml#d8/d23/struct_s_l_net_1_1_packet" title="This represents a user message from another system.">Packet</a> *packet);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnRakPeerShutdown(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnClosedConnection(<span class="keyword">const</span> <a class="code" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml" title="Network address for a system.">SystemAddress</a> &amp;systemAddress, <a class="code" href="../../dd/d3f/struct_s_l_net_1_1_rak_net_g_u_i_d.xhtml">RakNetGUID</a> rakNetGUID, <a class="code" href="../../de/d14/group___p_l_u_g_i_n___i_n_t_e_r_f_a_c_e___g_r_o_u_p.xhtml#ga4d3ac5ca8821fadad6d22d0267e06803">PI2_LostConnectionReason</a> lostConnectionReason );</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml"> 105</a></span>&#160; <span class="keyword">struct </span><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#d7/dd6/struct_s_l_net_1_1_two_way_authentication_1_1_pending_challenge">PendingChallenge</a></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; {</div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#a8e7331fe27b3489b4eb709f6a0c5047b"> 107</a></span>&#160; <a class="code" href="../../d2/d66/class_s_l_net_1_1_rak_string.xhtml" title="String class.">SLNet::RakString</a> <a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#a8e7331fe27b3489b4eb709f6a0c5047b">identifier</a>;</div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#ae895f561d00cc698544bb2caa91f8531"> 108</a></span>&#160; <a class="code" href="../../d3/da8/struct_s_l_net_1_1_address_or_g_u_i_d.xhtml">AddressOrGUID</a> <a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#ae895f561d00cc698544bb2caa91f8531">remoteSystem</a>;</div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#acb6dd0eea6e100b38eadc7f47ae0c0a0"> 109</a></span>&#160; <a class="code" href="../../dd/d30/namespace_s_l_net.xhtml#a7223b62c1b67121db1d975f2ab9b74c7">SLNet::Time</a> <a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#acb6dd0eea6e100b38eadc7f47ae0c0a0">time</a>;</div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#afb799617234e35dfcea120c29ed0c846"> 110</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#afb799617234e35dfcea120c29ed0c846">sentHash</a>;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; };</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#abd69e57bd42a42527a45da884a5318d3"> 113</a></span>&#160; <a class="code" href="../../d3/d87/class_data_structures_1_1_queue.xhtml">DataStructures::Queue&lt;PendingChallenge&gt;</a> <a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#abd69e57bd42a42527a45da884a5318d3">outgoingChallenges</a>;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml"> 116</a></span>&#160; <span class="keyword">struct </span><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#d8/dc2/struct_s_l_net_1_1_two_way_authentication_1_1_nonce_and_remote_system_request">NonceAndRemoteSystemRequest</a></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#a461de4e62ef3008ac0420af1de70dc9e"> 118</a></span>&#160; <span class="keywordtype">char</span> nonce[<a class="code" href="../../df/df8/_two_way_authentication_8h.xhtml#aaa86357a26d52aae1bbb4337f804ff62">TWO_WAY_AUTHENTICATION_NONCE_LENGTH</a>];</div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#aa93ad0f94635f877fe5b426639f88dd5"> 119</a></span>&#160; <a class="code" href="../../d3/da8/struct_s_l_net_1_1_address_or_g_u_i_d.xhtml">SLNet::AddressOrGUID</a> <a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#aa93ad0f94635f877fe5b426639f88dd5">remoteSystem</a>;</div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#a168de9a145b811e62a81e54c645ccd46"> 120</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#a168de9a145b811e62a81e54c645ccd46">requestId</a>;</div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#a48ca19e6389a22a4549bf63d0935838d"> 121</a></span>&#160; <a class="code" href="../../dd/d30/namespace_s_l_net.xhtml#a7223b62c1b67121db1d975f2ab9b74c7">SLNet::Time</a> <a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#a48ca19e6389a22a4549bf63d0935838d">whenGenerated</a>;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; };</div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml"> 124</a></span>&#160; <span class="keyword">struct </span><a class="code" href="../../db/dbd/_export_8h.xhtml#ab0579394e418800d5c85e46ad6fcd61d">RAK_DLL_EXPORT</a> <a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#d0/da5/struct_s_l_net_1_1_two_way_authentication_1_1_nonce_generator">NonceGenerator</a></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#d0/da5/struct_s_l_net_1_1_two_way_authentication_1_1_nonce_generator">NonceGenerator</a>();</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; ~NonceGenerator();</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordtype">void</span> GetNonce(<span class="keywordtype">char</span> nonce[<a class="code" href="../../df/df8/_two_way_authentication_8h.xhtml#aaa86357a26d52aae1bbb4337f804ff62">TWO_WAY_AUTHENTICATION_NONCE_LENGTH</a>], <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> *requestId, <a class="code" href="../../d3/da8/struct_s_l_net_1_1_address_or_g_u_i_d.xhtml">SLNet::AddressOrGUID</a> remoteSystem);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">void</span> GenerateNonce(<span class="keywordtype">char</span> nonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH]);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordtype">bool</span> GetNonceById(<span class="keywordtype">char</span> nonce[TWO_WAY_AUTHENTICATION_NONCE_LENGTH], <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> requestId, <a class="code" href="../../d3/da8/struct_s_l_net_1_1_address_or_g_u_i_d.xhtml">SLNet::AddressOrGUID</a> remoteSystem, <span class="keywordtype">bool</span> popIfFound);</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">void</span> Clear(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">void</span> ClearByAddress(<a class="code" href="../../d3/da8/struct_s_l_net_1_1_address_or_g_u_i_d.xhtml">SLNet::AddressOrGUID</a> remoteSystem);</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">void</span> Update(<a class="code" href="../../dd/d30/namespace_s_l_net.xhtml#a7223b62c1b67121db1d975f2ab9b74c7">SLNet::Time</a> curTime);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#af3e4c4ee6d0eec2d00d9e88c62f3f53d"> 135</a></span>&#160; <a class="code" href="../../d4/d78/class_data_structures_1_1_list.xhtml">DataStructures::List&lt;TwoWayAuthentication::NonceAndRemoteSystemRequest*&gt;</a> <a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#af3e4c4ee6d0eec2d00d9e88c62f3f53d">generatedNonces</a>;</div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#ac9915da4f02b9b0e936106883622b461"> 136</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#ac9915da4f02b9b0e936106883622b461">nextRequestId</a>;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; };</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordtype">void</span> PushToUser(<a class="code" href="../../dd/d30/namespace_s_l_net.xhtml#a5b5b9eb3be9ad636af02da44b718a75f" title="First byte of a network message.">MessageID</a> messageId, <a class="code" href="../../d2/d66/class_s_l_net_1_1_rak_string.xhtml" title="String class.">SLNet::RakString</a> password, <a class="code" href="../../d3/da8/struct_s_l_net_1_1_address_or_g_u_i_d.xhtml">SLNet::AddressOrGUID</a> remoteSystem);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// Key is identifier, data is password</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#a4f5950a9585950680938fcf9934a4381"> 142</a></span>&#160; <a class="code" href="../../d6/d83/class_data_structures_1_1_hash.xhtml">DataStructures::Hash&lt;SLNet::RakString, SLNet::RakString, 16, SLNet::RakString::ToInteger &gt;</a> <a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#a4f5950a9585950680938fcf9934a4381">passwords</a>;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#a766fc0e8387692ea9677f5058c1f3d64"> 144</a></span>&#160; <a class="code" href="../../dd/d30/namespace_s_l_net.xhtml#a7223b62c1b67121db1d975f2ab9b74c7">SLNet::Time</a> <a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#a766fc0e8387692ea9677f5058c1f3d64">whenLastTimeoutCheck</a>;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#a36e61759a6d97672877709774c4a710c"> 146</a></span>&#160; <a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#d0/da5/struct_s_l_net_1_1_two_way_authentication_1_1_nonce_generator">NonceGenerator</a> <a class="code" href="../../df/db6/group___p_l_u_g_i_n_s___g_r_o_u_p.xhtml#a36e61759a6d97672877709774c4a710c">nonceGenerator</a>;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">void</span> OnNonceRequest(<a class="code" href="../../dd/d30/namespace_s_l_net.xhtml#d8/d23/struct_s_l_net_1_1_packet" title="This represents a user message from another system.">Packet</a> *packet);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordtype">void</span> OnNonceReply(<a class="code" href="../../dd/d30/namespace_s_l_net.xhtml#d8/d23/struct_s_l_net_1_1_packet" title="This represents a user message from another system.">Packet</a> *packet);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="../../de/d14/group___p_l_u_g_i_n___i_n_t_e_r_f_a_c_e___g_r_o_u_p.xhtml#ga5c8f613a7c294e0b96deccbdabc38f18">PluginReceiveResult</a> OnHashedNonceAndPassword(<a class="code" href="../../dd/d30/namespace_s_l_net.xhtml#d8/d23/struct_s_l_net_1_1_packet" title="This represents a user message from another system.">Packet</a> *packet);</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordtype">void</span> OnPasswordResult(<a class="code" href="../../dd/d30/namespace_s_l_net.xhtml#d8/d23/struct_s_l_net_1_1_packet" title="This represents a user message from another system.">Packet</a> *packet);</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordtype">void</span> Hash(<span class="keywordtype">char</span> thierNonce[<a class="code" href="../../df/df8/_two_way_authentication_8h.xhtml#aaa86357a26d52aae1bbb4337f804ff62">TWO_WAY_AUTHENTICATION_NONCE_LENGTH</a>], <a class="code" href="../../d2/d66/class_s_l_net_1_1_rak_string.xhtml" title="String class.">SLNet::RakString</a> password, <span class="keywordtype">char</span> out[<a class="code" href="../../df/df8/_two_way_authentication_8h.xhtml#a6c49937ccc748d8e7482399a8c6d5536">HASHED_NONCE_AND_PW_LENGTH</a>]);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;};</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;} <span class="comment">// namespace SLNet</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#endif // _RAKNET_SUPPORT_*</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_74389ed8173ad57b461b9d623a1f3867.xhtml">Source</a></li><li class="navelem"><a class="el" href="../../dir_bbb90e3ef9167a594ae33323139a2595.xhtml">include</a></li><li class="navelem"><a class="el" href="../../dir_88467e66686deb9d3756fe4fc298e321.xhtml">slikenet</a></li><li class="navelem"><a class="el" href="../../df/df8/_two_way_authentication_8h.xhtml">TwoWayAuthentication.h</a></li>
<li class="footer">Generated on Wed Aug 14 2019 22:09:46 for SLikeNet by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.2 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,130 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>SLikeNet: Member List</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">SLikeNet
&#160;<span id="projectnumber">0.1.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.2 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="../../index.xhtml"><span>Main&#160;Page</span></a></li>
<li><a href="../../pages.xhtml"><span>Related&#160;Pages</span></a></li>
<li><a href="../../modules.xhtml"><span>Modules</span></a></li>
<li><a href="../../namespaces.xhtml"><span>Namespaces</span></a></li>
<li class="current"><a href="../../annotated.xhtml"><span>Classes</span></a></li>
<li><a href="../../files.xhtml"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="../../search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="../../search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="../../annotated.xhtml"><span>Class&#160;List</span></a></li>
<li><a href="../../classes.xhtml"><span>Class&#160;Index</span></a></li>
<li><a href="../../inherits.xhtml"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="../../functions.xhtml"><span>Class&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('de/d18/class_s_l_net_1_1_reference_counter.xhtml','../../');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">SLNet::ReferenceCounter Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="../../de/d18/class_s_l_net_1_1_reference_counter.xhtml">SLNet::ReferenceCounter</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="../../de/d18/class_s_l_net_1_1_reference_counter.xhtml#a8eca4aa2ab19980202ca8e45042b4605">AddRef</a>()</td><td class="entry"><a class="el" href="../../de/d18/class_s_l_net_1_1_reference_counter.xhtml">SLNet::ReferenceCounter</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="../../de/d18/class_s_l_net_1_1_reference_counter.xhtml#a803af73ea0243fdc22d10f389e4943ce">GetRefCount</a>(void) const </td><td class="entry"><a class="el" href="../../de/d18/class_s_l_net_1_1_reference_counter.xhtml">SLNet::ReferenceCounter</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../de/d18/class_s_l_net_1_1_reference_counter.xhtml#a0b4ace561bf78c4aabbe0f023830fbc2">ReferenceCounter</a>()</td><td class="entry"><a class="el" href="../../de/d18/class_s_l_net_1_1_reference_counter.xhtml">SLNet::ReferenceCounter</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="../../de/d18/class_s_l_net_1_1_reference_counter.xhtml#a5025bb5ba27512e796d6cf7fdd41531d">Release</a>()</td><td class="entry"><a class="el" href="../../de/d18/class_s_l_net_1_1_reference_counter.xhtml">SLNet::ReferenceCounter</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="../../de/d18/class_s_l_net_1_1_reference_counter.xhtml#a5e38354033bef34633f0517fff124aa7">~ReferenceCounter</a>()</td><td class="entry"><a class="el" href="../../de/d18/class_s_l_net_1_1_reference_counter.xhtml">SLNet::ReferenceCounter</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Wed Aug 14 2019 22:09:50 for SLikeNet by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.2 </li>
</ul>
</div>
</body>
</html>