blob: 4f92fecad84a13fdbe629edf85e053f3729f5192 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Qpid Proton C API: proton/tls.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="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Qpid Proton C API
&#160;<span id="projectnumber">0.38.0</span>
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.svg"
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.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
</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">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('tls_8h.html',''); initResizable(); });
/* @license-end */
</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)">
</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="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">tls.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;proton/import_export.h&gt;</code><br />
<code>#include &lt;<a class="el" href="raw__connection_8h_source.html">proton/raw_connection.h</a>&gt;</code><br />
</div>
<p><a href="tls_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gaf87a70ae2ad227fcfccdc9f25fa34ad3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#gaf87a70ae2ad227fcfccdc9f25fa34ad3">PN_TLS_OK</a></td></tr>
<tr class="memdesc:gaf87a70ae2ad227fcfccdc9f25fa34ad3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Error codes. <a href="group__tls.html#gaf87a70ae2ad227fcfccdc9f25fa34ad3">More...</a><br /></td></tr>
<tr class="separator:gaf87a70ae2ad227fcfccdc9f25fa34ad3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeda88b549d6da281a9991c7105fd36c3"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#gaeda88b549d6da281a9991c7105fd36c3">PN_TLS_INIT_ERR</a></td></tr>
<tr class="memdesc:gaeda88b549d6da281a9991c7105fd36c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Failure in initialization, unrelated to activity with the peer. <br /></td></tr>
<tr class="separator:gaeda88b549d6da281a9991c7105fd36c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8b74f9a5d3a4eb16ef18b04b56cca1bb"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#ga8b74f9a5d3a4eb16ef18b04b56cca1bb">PN_TLS_PROTOCOL_ERR</a></td></tr>
<tr class="memdesc:ga8b74f9a5d3a4eb16ef18b04b56cca1bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Failure in the TLS protocol between peers. <br /></td></tr>
<tr class="separator:ga8b74f9a5d3a4eb16ef18b04b56cca1bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga039fffc9b59c44e5e8ba2bd4ef87c3ed"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#ga039fffc9b59c44e5e8ba2bd4ef87c3ed">PN_TLS_AUTHENTICATION_ERR</a></td></tr>
<tr class="memdesc:ga039fffc9b59c44e5e8ba2bd4ef87c3ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Peer authentication failure. <br /></td></tr>
<tr class="separator:ga039fffc9b59c44e5e8ba2bd4ef87c3ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7f9703fbb0e925f38d310262800f7a73"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#ga7f9703fbb0e925f38d310262800f7a73">PN_TLS_STATE_ERR</a></td></tr>
<tr class="memdesc:ga7f9703fbb0e925f38d310262800f7a73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Requested action not possible due to session state. <br /></td></tr>
<tr class="separator:ga7f9703fbb0e925f38d310262800f7a73"><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:gad6584cb7d21b979882fe2f0609564ca0"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__tls.html#gad6584cb7d21b979882fe2f0609564ca0">pn_tls_config_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#gad6584cb7d21b979882fe2f0609564ca0">pn_tls_config_t</a></td></tr>
<tr class="memdesc:gad6584cb7d21b979882fe2f0609564ca0"><td class="mdescLeft">&#160;</td><td class="mdescRight">API for using TLS separate from AMQP connections. <a href="group__tls.html#gad6584cb7d21b979882fe2f0609564ca0">More...</a><br /></td></tr>
<tr class="separator:gad6584cb7d21b979882fe2f0609564ca0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga77908e48ba47bccac6d5dc4f6d9e124c"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a></td></tr>
<tr class="separator:ga77908e48ba47bccac6d5dc4f6d9e124c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gaa4456b0553fb959152e4ad8312dbdf61"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#gaa4456b0553fb959152e4ad8312dbdf61">pn_tls_mode_t</a> { <a class="el" href="group__tls.html#ggaa4456b0553fb959152e4ad8312dbdf61a8d57d8379105fa4f305ed8749d16efd4">PN_TLS_MODE_CLIENT</a>
, <a class="el" href="group__tls.html#ggaa4456b0553fb959152e4ad8312dbdf61a5b26fee638189db84e40cb78861c0cd7">PN_TLS_MODE_SERVER</a>
}</td></tr>
<tr class="memdesc:gaa4456b0553fb959152e4ad8312dbdf61"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the type of TLS endpoint. <a href="group__tls.html#gaa4456b0553fb959152e4ad8312dbdf61">More...</a><br /></td></tr>
<tr class="separator:gaa4456b0553fb959152e4ad8312dbdf61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa47e196fc1bfa9ef9ffb348273b34255"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#gaa47e196fc1bfa9ef9ffb348273b34255">pn_tls_verify_mode_t</a> { <a class="el" href="group__tls.html#ggaa47e196fc1bfa9ef9ffb348273b34255a5684b537fc4a213a40dcd36bd3d110eb">PN_TLS_VERIFY_NULL</a>
, <a class="el" href="group__tls.html#ggaa47e196fc1bfa9ef9ffb348273b34255a9742f3578a1e2d0dddd92b2fbdf4e8aa">PN_TLS_VERIFY_PEER</a>
, <a class="el" href="group__tls.html#ggaa47e196fc1bfa9ef9ffb348273b34255a9c81c238855f6f58877f76fd32740a06">PN_TLS_ANONYMOUS_PEER</a>
, <a class="el" href="group__tls.html#ggaa47e196fc1bfa9ef9ffb348273b34255a6c4b9243883e674a8b2affc20316a0c1">PN_TLS_VERIFY_PEER_NAME</a>
}</td></tr>
<tr class="memdesc:gaa47e196fc1bfa9ef9ffb348273b34255"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the level of peer validation. <a href="group__tls.html#gaa47e196fc1bfa9ef9ffb348273b34255">More...</a><br /></td></tr>
<tr class="separator:gaa47e196fc1bfa9ef9ffb348273b34255"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad6017899aead7fe7f263e8daf710e30d"><td class="memItemLeft" align="right" valign="top"><a id="gad6017899aead7fe7f263e8daf710e30d"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#gad6017899aead7fe7f263e8daf710e30d">pn_tls_cert_subject_subfield</a> { <br />
&#160;&#160;<b>PN_TLS_CERT_SUBJECT_COUNTRY_NAME</b>
, <b>PN_TLS_CERT_SUBJECT_STATE_OR_PROVINCE</b>
, <b>PN_TLS_CERT_SUBJECT_CITY_OR_LOCALITY</b>
, <b>PN_TLS_CERT_SUBJECT_ORGANIZATION_NAME</b>
, <br />
&#160;&#160;<b>PN_TLS_CERT_SUBJECT_ORGANIZATION_UNIT</b>
, <b>PN_TLS_CERT_SUBJECT_COMMON_NAME</b>
<br />
}</td></tr>
<tr class="memdesc:gad6017899aead7fe7f263e8daf710e30d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration identifying the sub fields of the subject field in the tls certificate. <br /></td></tr>
<tr class="separator:gad6017899aead7fe7f263e8daf710e30d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5d225d336b8d26741f1ea8f55b9f6908"><td class="memItemLeft" align="right" valign="top"><a id="ga5d225d336b8d26741f1ea8f55b9f6908"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#ga5d225d336b8d26741f1ea8f55b9f6908">pn_tls_hash_alg</a> { <b>PN_TLS_SHA1</b>
, <b>PN_TLS_SHA256</b>
, <b>PN_TLS_SHA512</b>
, <b>PN_TLS_MD5</b>
}</td></tr>
<tr class="memdesc:ga5d225d336b8d26741f1ea8f55b9f6908"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration identifying hashing algorithm. <br /></td></tr>
<tr class="separator:ga5d225d336b8d26741f1ea8f55b9f6908"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gafe36f324ec33fa00cbfff1a166b3df91"><td class="memItemLeft" align="right" valign="top">PN_TLS_EXTERN <a class="el" href="group__tls.html#gad6584cb7d21b979882fe2f0609564ca0">pn_tls_config_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#gafe36f324ec33fa00cbfff1a166b3df91">pn_tls_config</a> (<a class="el" href="group__tls.html#gaa4456b0553fb959152e4ad8312dbdf61">pn_tls_mode_t</a> mode)</td></tr>
<tr class="memdesc:gafe36f324ec33fa00cbfff1a166b3df91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an TLS configuration domain. <a href="group__tls.html#gafe36f324ec33fa00cbfff1a166b3df91">More...</a><br /></td></tr>
<tr class="separator:gafe36f324ec33fa00cbfff1a166b3df91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga50a16a8c21a2086cea4ccac4a70c58ba"><td class="memItemLeft" align="right" valign="top">PN_TLS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#ga50a16a8c21a2086cea4ccac4a70c58ba">pn_tls_config_free</a> (<a class="el" href="group__tls.html#gad6584cb7d21b979882fe2f0609564ca0">pn_tls_config_t</a> *domain)</td></tr>
<tr class="memdesc:ga50a16a8c21a2086cea4ccac4a70c58ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release an TLS configuration domain. <a href="group__tls.html#ga50a16a8c21a2086cea4ccac4a70c58ba">More...</a><br /></td></tr>
<tr class="separator:ga50a16a8c21a2086cea4ccac4a70c58ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabae44685749268c0b87189d6c578d812"><td class="memItemLeft" align="right" valign="top">PN_TLS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#gabae44685749268c0b87189d6c578d812">pn_tls_config_set_credentials</a> (<a class="el" href="group__tls.html#gad6584cb7d21b979882fe2f0609564ca0">pn_tls_config_t</a> *domain, const char *credential_1, const char *credential_2, const char *password)</td></tr>
<tr class="memdesc:gabae44685749268c0b87189d6c578d812"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the certificate that identifies the local node to the remote. <a href="group__tls.html#gabae44685749268c0b87189d6c578d812">More...</a><br /></td></tr>
<tr class="separator:gabae44685749268c0b87189d6c578d812"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga73e921b7e6fb2c70893feeed1ab8ec93"><td class="memItemLeft" align="right" valign="top">PN_TLS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#ga73e921b7e6fb2c70893feeed1ab8ec93">pn_tls_config_set_trusted_certs</a> (<a class="el" href="group__tls.html#gad6584cb7d21b979882fe2f0609564ca0">pn_tls_config_t</a> *domain, const char *certificate_db)</td></tr>
<tr class="memdesc:ga73e921b7e6fb2c70893feeed1ab8ec93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure the set of trusted CA certificates used by this domain to verify peers. <a href="group__tls.html#ga73e921b7e6fb2c70893feeed1ab8ec93">More...</a><br /></td></tr>
<tr class="separator:ga73e921b7e6fb2c70893feeed1ab8ec93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab5b02a036a5361a8dd0acda83dcc2b01"><td class="memItemLeft" align="right" valign="top">PN_TLS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#gab5b02a036a5361a8dd0acda83dcc2b01">pn_tls_config_set_peer_authentication</a> (<a class="el" href="group__tls.html#gad6584cb7d21b979882fe2f0609564ca0">pn_tls_config_t</a> *domain, const <a class="el" href="group__tls.html#gaa47e196fc1bfa9ef9ffb348273b34255">pn_tls_verify_mode_t</a> mode, const char *trusted_CAs)</td></tr>
<tr class="memdesc:gab5b02a036a5361a8dd0acda83dcc2b01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure the level of verification used on the peer certificate. <a href="group__tls.html#gab5b02a036a5361a8dd0acda83dcc2b01">More...</a><br /></td></tr>
<tr class="separator:gab5b02a036a5361a8dd0acda83dcc2b01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac11aa764a01cd42982a1f89ae83cc008"><td class="memItemLeft" align="right" valign="top">PN_TLS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#gac11aa764a01cd42982a1f89ae83cc008">pn_tls_config_set_impl_ciphers</a> (<a class="el" href="group__tls.html#gad6584cb7d21b979882fe2f0609564ca0">pn_tls_config_t</a> *domain, const char *ciphers)</td></tr>
<tr class="memdesc:gac11aa764a01cd42982a1f89ae83cc008"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure the list of permitted ciphers. <a href="group__tls.html#gac11aa764a01cd42982a1f89ae83cc008">More...</a><br /></td></tr>
<tr class="separator:gac11aa764a01cd42982a1f89ae83cc008"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac545702d43c0c3ee2d8c0a165982338c"><td class="memItemLeft" align="right" valign="top">PN_TLS_EXTERN <a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#gac545702d43c0c3ee2d8c0a165982338c">pn_tls</a> (<a class="el" href="group__tls.html#gad6584cb7d21b979882fe2f0609564ca0">pn_tls_config_t</a> *domain)</td></tr>
<tr class="memdesc:gac545702d43c0c3ee2d8c0a165982338c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new TLS session object derived from a domain. <a href="group__tls.html#gac545702d43c0c3ee2d8c0a165982338c">More...</a><br /></td></tr>
<tr class="separator:gac545702d43c0c3ee2d8c0a165982338c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga35566109ab7e7b7ec94ab91d407eb932"><td class="memItemLeft" align="right" valign="top">PN_TLS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#ga35566109ab7e7b7ec94ab91d407eb932">pn_tls_start</a> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls)</td></tr>
<tr class="memdesc:ga35566109ab7e7b7ec94ab91d407eb932"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start a TLS session. <a href="group__tls.html#ga35566109ab7e7b7ec94ab91d407eb932">More...</a><br /></td></tr>
<tr class="separator:ga35566109ab7e7b7ec94ab91d407eb932"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga226fe10a55c44165ebc4922204abf66a"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_free</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls)</td></tr>
<tr class="separator:ga226fe10a55c44165ebc4922204abf66a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga11e66d6983c273d31640533719be2869"><td class="memItemLeft" align="right" valign="top">PN_TLS_EXTERN bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#ga11e66d6983c273d31640533719be2869">pn_tls_get_cipher</a> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls, const char **cipher, size_t *size)</td></tr>
<tr class="memdesc:ga11e66d6983c273d31640533719be2869"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of the Cipher that is currently in use. <a href="group__tls.html#ga11e66d6983c273d31640533719be2869">More...</a><br /></td></tr>
<tr class="separator:ga11e66d6983c273d31640533719be2869"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf2c94f9ce9695763410d27b230492e13"><td class="memItemLeft" align="right" valign="top">PN_TLS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#gaf2c94f9ce9695763410d27b230492e13">pn_tls_get_ssf</a> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls)</td></tr>
<tr class="memdesc:gaf2c94f9ce9695763410d27b230492e13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the SSF (security strength factor) of the Cipher that is currently in use. <a href="group__tls.html#gaf2c94f9ce9695763410d27b230492e13">More...</a><br /></td></tr>
<tr class="separator:gaf2c94f9ce9695763410d27b230492e13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab8754bd3124218a9cd099bce2d71b3e5"><td class="memItemLeft" align="right" valign="top">PN_TLS_EXTERN bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#gab8754bd3124218a9cd099bce2d71b3e5">pn_tls_get_protocol_version</a> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls, const char **version, size_t *size)</td></tr>
<tr class="memdesc:gab8754bd3124218a9cd099bce2d71b3e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of the TLS protocol that is currently in use. <a href="group__tls.html#gab8754bd3124218a9cd099bce2d71b3e5">More...</a><br /></td></tr>
<tr class="separator:gab8754bd3124218a9cd099bce2d71b3e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6378050fd130b7f38cd109dfc38f9c2e"><td class="memItemLeft" align="right" valign="top">PN_TLS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#ga6378050fd130b7f38cd109dfc38f9c2e">pn_tls_set_peer_hostname</a> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls, const char *hostname)</td></tr>
<tr class="memdesc:ga6378050fd130b7f38cd109dfc38f9c2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the expected identity of the remote peer. <a href="group__tls.html#ga6378050fd130b7f38cd109dfc38f9c2e">More...</a><br /></td></tr>
<tr class="separator:ga6378050fd130b7f38cd109dfc38f9c2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga22f52f343d9b4bcaf3e5e7d8d9cad0ee"><td class="memItemLeft" align="right" valign="top">PN_TLS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#ga22f52f343d9b4bcaf3e5e7d8d9cad0ee">pn_tls_get_peer_hostname</a> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls, char *hostname, size_t *bufsize)</td></tr>
<tr class="memdesc:ga22f52f343d9b4bcaf3e5e7d8d9cad0ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access the configured peer identity. <a href="group__tls.html#ga22f52f343d9b4bcaf3e5e7d8d9cad0ee">More...</a><br /></td></tr>
<tr class="separator:ga22f52f343d9b4bcaf3e5e7d8d9cad0ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa8ed037aa9e26c934804ce3b413f6778"><td class="memItemLeft" align="right" valign="top">PN_TLS_EXTERN const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#gaa8ed037aa9e26c934804ce3b413f6778">pn_tls_get_remote_subject</a> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls)</td></tr>
<tr class="memdesc:gaa8ed037aa9e26c934804ce3b413f6778"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the subject from the peers certificate. <a href="group__tls.html#gaa8ed037aa9e26c934804ce3b413f6778">More...</a><br /></td></tr>
<tr class="separator:gaa8ed037aa9e26c934804ce3b413f6778"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5409cdb9d447fc0f946befe989581a7e"><td class="memItemLeft" align="right" valign="top">PN_TLS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#ga5409cdb9d447fc0f946befe989581a7e">pn_tls_get_cert_fingerprint</a> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls0, char *fingerprint, size_t fingerprint_length, <a class="el" href="group__tls.html#ga5d225d336b8d26741f1ea8f55b9f6908">pn_tls_hash_alg</a> hash_alg)</td></tr>
<tr class="memdesc:ga5409cdb9d447fc0f946befe989581a7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the fingerprint of the certificate. <a href="group__tls.html#ga5409cdb9d447fc0f946befe989581a7e">More...</a><br /></td></tr>
<tr class="separator:ga5409cdb9d447fc0f946befe989581a7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1b04daca4d5f4c47557e3fbcf655692c"><td class="memItemLeft" align="right" valign="top">PN_TLS_EXTERN const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#ga1b04daca4d5f4c47557e3fbcf655692c">pn_tls_get_remote_subject_subfield</a> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls, <a class="el" href="group__tls.html#gad6017899aead7fe7f263e8daf710e30d">pn_tls_cert_subject_subfield</a> field)</td></tr>
<tr class="memdesc:ga1b04daca4d5f4c47557e3fbcf655692c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a char pointer that contains the value of the sub field of the subject field in the tls certificate. <a href="group__tls.html#ga1b04daca4d5f4c47557e3fbcf655692c">More...</a><br /></td></tr>
<tr class="separator:ga1b04daca4d5f4c47557e3fbcf655692c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaedc5dc310664a3219aeb3cbe70caa1b7"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN bool&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_is_encrypt_output_pending</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls)</td></tr>
<tr class="separator:gaedc5dc310664a3219aeb3cbe70caa1b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae38da35685fb95679b7ac0176f2a3b96"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN bool&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_is_decrypt_output_pending</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls)</td></tr>
<tr class="separator:gae38da35685fb95679b7ac0176f2a3b96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6985dc04b6c53628f284590010594fdf"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN bool&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_is_secure</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls)</td></tr>
<tr class="separator:ga6985dc04b6c53628f284590010594fdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga45178c3f7182e5ff43d9dc5ce44598bc"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN size_t&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_give_encrypt_output_buffers</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *, <a class="el" href="group__raw__connection.html#structpn__raw__buffer__t">pn_raw_buffer_t</a> const *, size_t count)</td></tr>
<tr class="separator:ga45178c3f7182e5ff43d9dc5ce44598bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga322940404babfa649cdff931e35a3399"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN size_t&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_give_decrypt_output_buffers</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *, <a class="el" href="group__raw__connection.html#structpn__raw__buffer__t">pn_raw_buffer_t</a> const *, size_t count)</td></tr>
<tr class="separator:ga322940404babfa649cdff931e35a3399"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacc7b1549a4f5e25788f99a535c56029f"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN size_t&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_take_decrypt_output_buffers</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *, <a class="el" href="group__raw__connection.html#structpn__raw__buffer__t">pn_raw_buffer_t</a> *, size_t count)</td></tr>
<tr class="separator:gacc7b1549a4f5e25788f99a535c56029f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7e96f7b2da630f59dfb0901d5959f3c2"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN size_t&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_take_encrypt_output_buffers</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *, <a class="el" href="group__raw__connection.html#structpn__raw__buffer__t">pn_raw_buffer_t</a> *, size_t count)</td></tr>
<tr class="separator:ga7e96f7b2da630f59dfb0901d5959f3c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac459713faec7765323a8325e9fa51389"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN size_t&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_give_encrypt_input_buffers</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *, <a class="el" href="group__raw__connection.html#structpn__raw__buffer__t">pn_raw_buffer_t</a> const *bufs, size_t count_bufs)</td></tr>
<tr class="separator:gac459713faec7765323a8325e9fa51389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26db3ffc17b02de889fa6236042230d9"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN size_t&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_give_decrypt_input_buffers</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *, <a class="el" href="group__raw__connection.html#structpn__raw__buffer__t">pn_raw_buffer_t</a> const *bufs, size_t count_bufs)</td></tr>
<tr class="separator:ga26db3ffc17b02de889fa6236042230d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c66f8276ceeefd8e06ec759eec3053f"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN size_t&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_take_encrypt_input_buffers</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *, <a class="el" href="group__raw__connection.html#structpn__raw__buffer__t">pn_raw_buffer_t</a> *, size_t count)</td></tr>
<tr class="separator:ga7c66f8276ceeefd8e06ec759eec3053f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac251bf798328d3749ef24c1339d75055"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN size_t&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_take_decrypt_input_buffers</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *, <a class="el" href="group__raw__connection.html#structpn__raw__buffer__t">pn_raw_buffer_t</a> *, size_t count)</td></tr>
<tr class="separator:gac251bf798328d3749ef24c1339d75055"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7f554959460db175b714e43cdc39da42"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN size_t&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_get_encrypt_input_buffer_capacity</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *)</td></tr>
<tr class="separator:ga7f554959460db175b714e43cdc39da42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga78f9c952512e91b629822abaeab78b87"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN size_t&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_get_decrypt_input_buffer_capacity</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *)</td></tr>
<tr class="separator:ga78f9c952512e91b629822abaeab78b87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga46ec327daafb016cb820cd9902ede9eb"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN bool&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_need_encrypt_output_buffers</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *)</td></tr>
<tr class="separator:ga46ec327daafb016cb820cd9902ede9eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade5026f66a5ad22546773d7160f8ec24"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN bool&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_need_decrypt_output_buffers</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *)</td></tr>
<tr class="separator:gade5026f66a5ad22546773d7160f8ec24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5f8066060cdeb4a153eb56d915bcba69"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN size_t&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_get_encrypt_output_buffer_capacity</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *)</td></tr>
<tr class="separator:ga5f8066060cdeb4a153eb56d915bcba69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga20be683f7f422d784682a3aa5fe1c9c8"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN size_t&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_get_decrypt_output_buffer_capacity</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *)</td></tr>
<tr class="separator:ga20be683f7f422d784682a3aa5fe1c9c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaedadde6c43d8722baf52d5a83914aeb4"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN size_t&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_get_decrypt_output_buffer_count</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *)</td></tr>
<tr class="separator:gaedadde6c43d8722baf52d5a83914aeb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4d6783cdf2565cd053b97bb1360ad37f"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN size_t&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_get_encrypt_output_buffer_count</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *)</td></tr>
<tr class="separator:ga4d6783cdf2565cd053b97bb1360ad37f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga44683b6a889a5198e7a4f2ac15aaf544"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_get_last_decrypt_output_buffer_size</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *)</td></tr>
<tr class="separator:ga44683b6a889a5198e7a4f2ac15aaf544"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga642085e70fa7c47bd45723d2058901fb"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_get_last_encrypt_output_buffer_size</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *)</td></tr>
<tr class="separator:ga642085e70fa7c47bd45723d2058901fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafafbad89e77061602bb52e5611cf65c3"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_set_encrypt_input_buffer_max_capacity</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *, size_t s)</td></tr>
<tr class="separator:gafafbad89e77061602bb52e5611cf65c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a80757c0555350cf374667330a5633b"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_set_decrypt_input_buffer_max_capacity</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *, size_t s)</td></tr>
<tr class="separator:ga8a80757c0555350cf374667330a5633b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaac0ebe0fc84beeed291319ce92b1496d"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_set_encrypt_output_buffer_max_capacity</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *, size_t s)</td></tr>
<tr class="separator:gaac0ebe0fc84beeed291319ce92b1496d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4425ed61c010622a32e38859ba84918b"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_set_decrypt_output_buffer_max_capacity</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *, size_t s)</td></tr>
<tr class="separator:ga4425ed61c010622a32e38859ba84918b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga639850b3842f052edd6faeb4f2c24fd3"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_process</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls)</td></tr>
<tr class="separator:ga639850b3842f052edd6faeb4f2c24fd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeac1209471a27ebcf2e619ea1670dde7"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_stop</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls)</td></tr>
<tr class="separator:gaeac1209471a27ebcf2e619ea1670dde7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4fb71df2cc4682b403a07e8169bd9c0d"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN bool&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_is_input_closed</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls)</td></tr>
<tr class="separator:ga4fb71df2cc4682b403a07e8169bd9c0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga78b820e7204068d4f3f223bcf8fc2c4f"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN void&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_close_output</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls)</td></tr>
<tr class="separator:ga78b820e7204068d4f3f223bcf8fc2c4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa17f85326f22f69dee114ce266aed9ae"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_get_session_error</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls)</td></tr>
<tr class="separator:gaa17f85326f22f69dee114ce266aed9ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa0a2e5b9bb6336247b70afb006ee16cc"><td class="memItemLeft" align="right" valign="top">
PN_TLS_EXTERN size_t&#160;</td><td class="memItemRight" valign="bottom"><b>pn_tls_get_session_error_string</b> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls, char *buf, size_t buf_len)</td></tr>
<tr class="separator:gaa0a2e5b9bb6336247b70afb006ee16cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf7c431a154eacac7d94da15117df52a2"><td class="memItemLeft" align="right" valign="top">PN_TLS_EXTERN int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#gaf7c431a154eacac7d94da15117df52a2">pn_tls_config_set_alpn_protocols</a> (<a class="el" href="group__tls.html#gad6584cb7d21b979882fe2f0609564ca0">pn_tls_config_t</a> *domain, const char **protocols, size_t protocol_count)</td></tr>
<tr class="memdesc:gaf7c431a154eacac7d94da15117df52a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide an ordered list of application protols for RFC 7301 negotiation. <a href="group__tls.html#gaf7c431a154eacac7d94da15117df52a2">More...</a><br /></td></tr>
<tr class="separator:gaf7c431a154eacac7d94da15117df52a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga113f3390d26037755236a0c597d01be6"><td class="memItemLeft" align="right" valign="top">PN_TLS_EXTERN bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tls.html#ga113f3390d26037755236a0c597d01be6">pn_tls_get_alpn_protocol</a> (<a class="el" href="group__tls.html#ga77908e48ba47bccac6d5dc4f6d9e124c">pn_tls_t</a> *tls, const char **protocol_name, size_t *size)</td></tr>
<tr class="memdesc:ga113f3390d26037755236a0c597d01be6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of the negotiated application protocol. <a href="group__tls.html#ga113f3390d26037755236a0c597d01be6">More...</a><br /></td></tr>
<tr class="separator:ga113f3390d26037755236a0c597d01be6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"></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_3a71568e5d046e5ed52679664c3002a5.html">proton</a></li><li class="navelem"><a class="el" href="tls_8h.html">tls.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>