SSLClient/class_s_s_l_client_parameters.html
2020-11-29 05:34:38 +00:00

431 lines
25 KiB
HTML

<!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.8.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>SSLClient: SSLClientParameters Class 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>
<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">SSLClient
&#160;<span id="projectnumber">v1.6.9</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<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');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></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">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('class_s_s_l_client_parameters.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="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="class_s_s_l_client_parameters-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">SSLClientParameters Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>This class stores data required for <a class="el" href="class_s_s_l_client.html" title="The main SSLClient class. Check out README.md for more info.">SSLClient</a> to use mutual authentication.
<a href="class_s_s_l_client_parameters.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_s_s_l_client_parameters_8h_source.html">SSLClientParameters.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:af5686b2c601812f55477a7089b3b2c2d"><td class="memItemLeft" align="right" valign="top">const br_x509_certificate *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_parameters.html#af5686b2c601812f55477a7089b3b2c2d">getCertChain</a> () const</td></tr>
<tr class="separator:af5686b2c601812f55477a7089b3b2c2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90d581703308881714d64d1ada785ad2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_parameters.html#a90d581703308881714d64d1ada785ad2">getCertType</a> () const</td></tr>
<tr class="separator:a90d581703308881714d64d1ada785ad2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9beb80ce98ed9aa34db28783f0264c5"><td class="memItemLeft" align="right" valign="top">const br_ec_private_key *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_parameters.html#ad9beb80ce98ed9aa34db28783f0264c5">getECKey</a> () const</td></tr>
<tr class="separator:ad9beb80ce98ed9aa34db28783f0264c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82c21b0ae4690a6b7842a0d74b12f67f"><td class="memItemLeft" align="right" valign="top">const br_rsa_private_key *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_parameters.html#a82c21b0ae4690a6b7842a0d74b12f67f">getRSAKey</a> () const</td></tr>
<tr class="separator:a82c21b0ae4690a6b7842a0d74b12f67f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:ac5ddf993f7d560581297471593051ea6"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_s_s_l_client_parameters.html">SSLClientParameters</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_parameters.html#ac5ddf993f7d560581297471593051ea6">fromPEM</a> (const char *cert_pem, const size_t cert_len, const char *key_pem, const size_t key_len)</td></tr>
<tr class="memdesc:ac5ddf993f7d560581297471593051ea6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create mutual authentication parameters from a PEM certificate and private key. <a href="class_s_s_l_client_parameters.html#ac5ddf993f7d560581297471593051ea6">More...</a><br /></td></tr>
<tr class="separator:ac5ddf993f7d560581297471593051ea6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12e44f4b8340ef7f1dcbbed7649e4bef"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_s_s_l_client_parameters.html">SSLClientParameters</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_parameters.html#a12e44f4b8340ef7f1dcbbed7649e4bef">fromDER</a> (const char *cert_der, const size_t cert_len, const char *key_der, const size_t key_len)</td></tr>
<tr class="memdesc:a12e44f4b8340ef7f1dcbbed7649e4bef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create mutual authentication parameters from a DER certificate and private key. <a href="class_s_s_l_client_parameters.html#a12e44f4b8340ef7f1dcbbed7649e4bef">More...</a><br /></td></tr>
<tr class="separator:a12e44f4b8340ef7f1dcbbed7649e4bef"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a97213b5554e90908fbf284669b5f22f3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_s_l_client_parameters.html#a97213b5554e90908fbf284669b5f22f3">SSLClientParameters</a> (const char *cert, const size_t cert_len, const char *key, const size_t key_len, bool is_der)</td></tr>
<tr class="separator:a97213b5554e90908fbf284669b5f22f3"><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>This class stores data required for <a class="el" href="class_s_s_l_client.html" title="The main SSLClient class. Check out README.md for more info.">SSLClient</a> to use mutual authentication. </p>
<p><a class="el" href="_s_s_l_client_parameters_8h.html">SSLClientParameters.h</a></p>
<p>This file contains a simple utility class to store parameters about an SSL Session for reuse later.</p>
<p>TLS mutual authentication is a process in which both the server and client perform cryptographic operations to verify the authenticity of eachother, for more information check out this article: <a href="https://medium.com/sitewards/the-magic-of-tls-x509-and-mutual-authentication-explained-b2162dec4401">https://medium.com/sitewards/the-magic-of-tls-x509-and-mutual-authentication-explained-b2162dec4401</a> . If this struct is provided to <a class="el" href="class_s_s_l_client.html#a68f026a625ca1ccd1aba87bb6e670376" title="Initialize SSLClient with all of the prerequisites needed.">SSLClient::SSLClient</a> via <a class="el" href="class_s_s_l_client.html#aeee217b5558dfb0724f2319888a77256" title="Add a client certificate and enable support for mutual auth.">SSLClient::setMutualAuthParams</a>, <a class="el" href="class_s_s_l_client.html" title="The main SSLClient class. Check out README.md for more info.">SSLClient</a> will automatically send a client certificate if one is requested by the server. This will happen for all <a class="el" href="class_s_s_l_client.html" title="The main SSLClient class. Check out README.md for more info.">SSLClient</a> connections, and may cause issues for websites that do not need mutual authentication&mdash;as a result, please only turn on mutual authentication if you are sure it is neccesary.</p>
<p><a class="el" href="class_s_s_l_client_parameters.html" title="This class stores data required for SSLClient to use mutual authentication.">SSLClientParameters</a> supports both ECC and RSA client certificates. I recommend using ECC certificates if possible, as <a class="el" href="class_s_s_l_client_parameters.html" title="This class stores data required for SSLClient to use mutual authentication.">SSLClientParameters</a> will make a copy of both the certificate and the private key in memory, and ECC keys tend to be smaller than RSA ones. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a97213b5554e90908fbf284669b5f22f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97213b5554e90908fbf284669b5f22f3">&#9670;&nbsp;</a></span>SSLClientParameters()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">SSLClientParameters::SSLClientParameters </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>cert</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const size_t&#160;</td>
<td class="paramname"><em>cert_len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const size_t&#160;</td>
<td class="paramname"><em>key_len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>is_der</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a12e44f4b8340ef7f1dcbbed7649e4bef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a12e44f4b8340ef7f1dcbbed7649e4bef">&#9670;&nbsp;</a></span>fromDER()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_s_s_l_client_parameters.html">SSLClientParameters</a> SSLClientParameters::fromDER </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>cert_der</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const size_t&#160;</td>
<td class="paramname"><em>cert_len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>key_der</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const size_t&#160;</td>
<td class="paramname"><em>key_len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create mutual authentication parameters from a DER certificate and private key. </p>
<p>Use this function to create a mutual tls context from a DER client certificate and DER private key. This function will copy the certificate and private key, extract the needed information from the private key, and store both that information and the copied cert into a <a class="el" href="class_s_s_l_client_parameters.html" title="This class stores data required for SSLClient to use mutual authentication.">SSLClientParameters</a> object. Given the key parsed correctly, you can then use <a class="el" href="class_s_s_l_client.html#aeee217b5558dfb0724f2319888a77256" title="Add a client certificate and enable support for mutual auth.">SSLClient::setMutualAuthParams</a> at the begining of your sketch to enable mTLS with <a class="el" href="class_s_s_l_client.html" title="The main SSLClient class. Check out README.md for more info.">SSLClient</a>. This function supports both ECC and RSA certificate/private keys (use EC keys wherever possible, as they are signifigantly smaller and faster), however <a class="el" href="class_s_s_l_client.html" title="The main SSLClient class. Check out README.md for more info.">SSLClient</a> only supports the p256, p384, and p512 curves for ECC.</p>
<p>Because <a class="el" href="class_s_s_l_client_parameters.html" title="This class stores data required for SSLClient to use mutual authentication.">SSLClientParameters</a> creates a copy of both the certificate and key, you do not need to ensure that the data pointed to by cert_der or key_der is accessible after this function (i.e. you can free them afterwards).</p>
<p>Please note that if the private key is incorrect, this function will not report an error, and instead <a class="el" href="class_s_s_l_client.html" title="The main SSLClient class. Check out README.md for more info.">SSLClient</a> will fall back to regular TLS when making a connection.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cert_der</td><td>A DER encoded certificate, can be ECC or RSA. </td></tr>
<tr><td class="paramname">cert_len</td><td>The number of bytes in cert_der. </td></tr>
<tr><td class="paramname">key_der</td><td>A DER encoded private key, can be ECC or RSA. </td></tr>
<tr><td class="paramname">key_len</td><td>The number of bytes in key_ders </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An <a class="el" href="class_s_s_l_client_parameters.html" title="This class stores data required for SSLClient to use mutual authentication.">SSLClientParameters</a> context, to be used with <a class="el" href="class_s_s_l_client.html#aeee217b5558dfb0724f2319888a77256" title="Add a client certificate and enable support for mutual auth.">SSLClient::setMutualAuthParams</a>. </dd></dl>
</div>
</div>
<a id="ac5ddf993f7d560581297471593051ea6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac5ddf993f7d560581297471593051ea6">&#9670;&nbsp;</a></span>fromPEM()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_s_s_l_client_parameters.html">SSLClientParameters</a> SSLClientParameters::fromPEM </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>cert_pem</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const size_t&#160;</td>
<td class="paramname"><em>cert_len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>key_pem</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const size_t&#160;</td>
<td class="paramname"><em>key_len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create mutual authentication parameters from a PEM certificate and private key. </p>
<p>Use this function to create a mutual tls context from a PEM client certificate and PEM private key. This function will convert the PEM certificates into DER format (creating a copy in the process), extract the needed information from the private key, and store that information into a <a class="el" href="class_s_s_l_client_parameters.html" title="This class stores data required for SSLClient to use mutual authentication.">SSLClientParameters</a> object. Given the certifiate and key parsed correctly, you can then use <a class="el" href="class_s_s_l_client.html#aeee217b5558dfb0724f2319888a77256" title="Add a client certificate and enable support for mutual auth.">SSLClient::setMutualAuthParams</a> at the begining of your sketch to enable mTLS with <a class="el" href="class_s_s_l_client.html" title="The main SSLClient class. Check out README.md for more info.">SSLClient</a>. This function supports both ECC and RSA certificate/private keys (use EC keys wherever possible, as they are signifigantly smaller and faster), however <a class="el" href="class_s_s_l_client.html" title="The main SSLClient class. Check out README.md for more info.">SSLClient</a> only supports the p256, p384, and p512 curves for ECC.</p>
<p>Because <a class="el" href="class_s_s_l_client_parameters.html" title="This class stores data required for SSLClient to use mutual authentication.">SSLClientParameters</a> creates a copy of both the certificate and key, you do not need to ensure that the data pointed to by cert_pem or key_pem is accessible after this function (i.e. you can free them afterwards).</p>
<p>Please note that if the certificate or private key are incorrect, this function will not report an error, and instead <a class="el" href="class_s_s_l_client.html" title="The main SSLClient class. Check out README.md for more info.">SSLClient</a> will fall back to regular TLS when making a connection.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cert_pem</td><td>A PEM formatted certificate, including the "BEGIN" and "END" header/footers. Can be ECC or RSA. cert_pem supports both LF and CRLF for endlines, but all other constraints on a valid PEM file apply. </td></tr>
<tr><td class="paramname">cert_len</td><td>The number of bytes in cert_pem. </td></tr>
<tr><td class="paramname">key_pem</td><td>A PEM formatted private key, including the "BEGIN" and "END" header/footers. Can be ECC or RSA. key_pem supports both LF and CRLF for endlines, but all other constraints \ on a valid PEM file apply. </td></tr>
<tr><td class="paramname">key_len</td><td>The number of bytes in key_pem </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An <a class="el" href="class_s_s_l_client_parameters.html" title="This class stores data required for SSLClient to use mutual authentication.">SSLClientParameters</a> context, to be used with <a class="el" href="class_s_s_l_client.html#aeee217b5558dfb0724f2319888a77256" title="Add a client certificate and enable support for mutual auth.">SSLClient::setMutualAuthParams</a>. </dd></dl>
</div>
</div>
<a id="af5686b2c601812f55477a7089b3b2c2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5686b2c601812f55477a7089b3b2c2d">&#9670;&nbsp;</a></span>getCertChain()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const br_x509_certificate* SSLClientParameters::getCertChain </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>mTLS information used by <a class="el" href="class_s_s_l_client.html" title="The main SSLClient class. Check out README.md for more info.">SSLClient</a> during authentication </p>
</div>
</div>
<a id="a90d581703308881714d64d1ada785ad2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90d581703308881714d64d1ada785ad2">&#9670;&nbsp;</a></span>getCertType()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int SSLClientParameters::getCertType </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>mTLS information used by <a class="el" href="class_s_s_l_client.html" title="The main SSLClient class. Check out README.md for more info.">SSLClient</a> during authentication </p>
</div>
</div>
<a id="ad9beb80ce98ed9aa34db28783f0264c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad9beb80ce98ed9aa34db28783f0264c5">&#9670;&nbsp;</a></span>getECKey()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const br_ec_private_key* SSLClientParameters::getECKey </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>mTLS information used by <a class="el" href="class_s_s_l_client.html" title="The main SSLClient class. Check out README.md for more info.">SSLClient</a> during authentication </p>
</div>
</div>
<a id="a82c21b0ae4690a6b7842a0d74b12f67f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82c21b0ae4690a6b7842a0d74b12f67f">&#9670;&nbsp;</a></span>getRSAKey()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const br_rsa_private_key* SSLClientParameters::getRSAKey </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>mTLS information used by <a class="el" href="class_s_s_l_client.html" title="The main SSLClient class. Check out README.md for more info.">SSLClient</a> during authentication </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/<a class="el" href="_s_s_l_client_parameters_8h_source.html">SSLClientParameters.h</a></li>
<li>src/<a class="el" href="_s_s_l_client_parameters_8cpp.html">SSLClientParameters.cpp</a></li>
</ul>
</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="class_s_s_l_client_parameters.html">SSLClientParameters</a></li>
<li class="footer">Generated by <a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20 </li>
</ul>
</div>
</body>
</html>