blob: c3511bb8ee256fe1bc90bb4efbd7aea907120590 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Class: Qpid::Proton::SSL
&mdash; Qpid Proton Ruby API
</title>
<link rel="stylesheet" href="../../css/style.css" type="text/css" />
<link rel="stylesheet" href="../../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "Qpid::Proton::SSL";
relpath = '../../';
</script>
<script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../../class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../../_index.html">Index (S)</a> &raquo;
<span class='title'><span class='object_link'><a href="../../Qpid.html" title="Qpid (module)">Qpid</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Proton.html" title="Qpid::Proton (module)">Proton</a></span></span>
&raquo;
<span class="title">SSL</span>
</div>
<div id="search">
<a class="full_list_link" id="class_list_link"
href="../../class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Class: Qpid::Proton::SSL
</h1>
<div class="box_info">
<dl>
<dt>Inherits:</dt>
<dd>
<span class="inheritName">Object</span>
<ul class="fullTree">
<li>Object</li>
<li class="next">Qpid::Proton::SSL</li>
</ul>
<a href="#" class="inheritanceTree">show all</a>
</dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>lib/core/ssl.rb</dd>
</dl>
</div>
<h2>Overview</h2><div class="docstring">
<div class="discussion">
<p>The SSL support for Transport.</p>
<p>A Transport may be configured ot use SLL for encryption and/or authentication. A Transport can be configured as either the SSL client or the server. An SSL client is the party that proctively establishes a connection to an SSL server. An SSL server is the party that accepts a connection request from the remote SSL client.</p>
<p>If either the client or the server needs to identify itself with the remote node, it must have its SSL certificate configured.</p>
<p>If either the client or the server needs to verify the identify of the remote node, it must have its database of trusted CAs configured.</p>
<p>An SSL server connection may allow the remote client to connect without SS (i.e., “in the clear”).</p>
<p>The level of verification required of the remote may be configured.</p>
<p>Support for SSL client session resume is provided as well.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">See Also:</p>
<ul class="see">
<li><span class='object_link'><a href="SSLDomain.html#credentials-instance_method" title="Qpid::Proton::SSLDomain#credentials (method)">For setting the SSL certificate.</a></span></li>
<li><span class='object_link'><a href="SSLDomain.html#trusted_ca_db-instance_method" title="Qpid::Proton::SSLDomain#trusted_ca_db (method)">Setting the CA database.</a></span></li>
<li><span class='object_link'><a href="SSLDomain.html#allow_unsecured_client-instance_method" title="Qpid::Proton::SSLDomain#allow_unsecured_client (method)">Allowing unsecured clients.</a></span></li>
<li><span class='object_link'><a href="SSLDomain.html#peer_authentication-instance_method" title="Qpid::Proton::SSLDomain#peer_authentication (method)">Setting peer authentication.</a></span></li>
<li><span class='object_link'><a href="SSLDomain.html" title="Qpid::Proton::SSLDomain (class)">SSLDomain</a></span></li>
<li><span class='object_link'><a href="#resume_status-instance_method" title="Qpid::Proton::SSL#resume_status (method)">#resume_status</a></span></li>
</ul>
</div>
<h2>
Constant Summary
<small><a href="#" class="constants_summary_toggle">collapse</a></small>
</h2>
<dl class="constants">
<dt id="RESUME_UNKNOWN-constant" class="">RESUME_UNKNOWN =
<div class="docstring">
<div class="discussion">
<p>Session resume state is unkonnwn or not supported.</p>
</div>
</div>
<div class="tags">
</div>
</dt>
<dd><pre class="code"><span class='const'>Cproton</span><span class='op'>::</span><span class='const'>PN_SSL_RESUME_UNKNOWN</span></pre></dd>
<dt id="RESUME_NEW-constant" class="">RESUME_NEW =
<div class="docstring">
<div class="discussion">
<p>Session renegotiated and not resumed.</p>
</div>
</div>
<div class="tags">
</div>
</dt>
<dd><pre class="code"><span class='const'>Cproton</span><span class='op'>::</span><span class='const'>PN_SSL_RESUME_NEW</span></pre></dd>
<dt id="RESUME_REUSED-constant" class="">RESUME_REUSED =
<div class="docstring">
<div class="discussion">
<p>Session resumed from the previous session.</p>
</div>
</div>
<div class="tags">
</div>
</dt>
<dd><pre class="code"><span class='const'>Cproton</span><span class='op'>::</span><span class='const'>PN_SSL_RESUME_REUSED</span></pre></dd>
</dl>
<h2>
Class Method Summary
<small><a href="#" class="summary_toggle">collapse</a></small>
</h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#present%3F-class_method" title="present? (class method)">.<strong>present?</strong> &#x21d2; Boolean </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns whether SSL is supported.</p>
</div></span>
</li>
</ul>
<h2>
Instance Method Summary
<small><a href="#" class="summary_toggle">collapse</a></small>
</h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#cipher_name-instance_method" title="#cipher_name (instance method)">#<strong>cipher_name</strong> &#x21d2; String<sup>?</sup> </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the cipher name that is currently in used.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#peer_hostname-instance_method" title="#peer_hostname (instance method)">#<strong>peer_hostname</strong> &#x21d2; String </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Gets the peer hostname.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#protocol_name-instance_method" title="#protocol_name (instance method)">#<strong>protocol_name</strong> &#x21d2; String<sup>?</sup> </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Returns the name of the SSL protocol that is currently active, or returns nil if SSL is nota ctive.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#resume_status-instance_method" title="#resume_status (instance method)">#<strong>resume_status</strong> </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Checks whether or not the state has resumed.</p>
</div></span>
</li>
</ul>
<div id="class_method_details" class="method_details_list">
<h2>Class Method Details</h2>
<div class="method_details first">
<h3 class="signature first" id="present?-class_method">
.<strong>present?</strong> &#x21d2; <tt>Boolean</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Returns whether SSL is supported.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Boolean</tt>)</span>
&mdash;
<div class='inline'>
<p>True if SSL support is available.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
73
74
75</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/ssl.rb', line 73</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
<span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_ssl_present'>pn_ssl_present</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
<div id="instance_method_details" class="method_details_list">
<h2>Instance Method Details</h2>
<div class="method_details first">
<h3 class="signature first" id="cipher_name-instance_method">
#<strong>cipher_name</strong> &#x21d2; <tt>String</tt><sup>?</sup>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the cipher name that is currently in used.</p>
<p>Gets the text description of the cipher that is currently active, or returns nil if SSL is not active. Note that the cipher in use my change over time due to renegotiation or other changes to the SSL layer.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>, <tt>nil</tt>)</span>
&mdash;
<div class='inline'>
<p>The cipher name.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
117
118
119
120
121</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/ssl.rb', line 117</span>
<span class='kw'>def</span> <span class='id identifier rubyid_cipher_name'>cipher_name</span>
<span class='id identifier rubyid_rc'>rc</span><span class='comma'>,</span> <span class='id identifier rubyid_name'>name</span> <span class='op'>=</span> <span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_ssl_get_cipher_name'>pn_ssl_get_cipher_name</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='comma'>,</span> <span class='int'>128</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='id identifier rubyid_name'>name</span> <span class='kw'>if</span> <span class='id identifier rubyid_rc'>rc</span>
<span class='kw'>nil</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="peer_hostname-instance_method">
#<strong>peer_hostname</strong> &#x21d2; <tt>String</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Gets the peer hostname.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>)</span>
&mdash;
<div class='inline'>
<p>The peer hostname.</p>
</div>
</li>
</ul>
<p class="tag_title">Raises:</p>
<ul class="raise">
<li>
<span class='type'>(<tt><span class='object_link'><a href="SSLError.html" title="Qpid::Proton::SSLError (class)">SSLError</a></span></tt>)</span>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
150
151
152
153
154</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/ssl.rb', line 150</span>
<span class='kw'>def</span> <span class='id identifier rubyid_peer_hostname'>peer_hostname</span>
<span class='lparen'>(</span><span class='id identifier rubyid_error'>error</span><span class='comma'>,</span> <span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span> <span class='op'>=</span> <span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_ssl_get_peer_hostname'>pn_ssl_get_peer_hostname</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='comma'>,</span> <span class='int'>1024</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="SSLError.html" title="Qpid::Proton::SSLError (class)">SSLError</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>if</span> <span class='id identifier rubyid_error'>error</span> <span class='op'>&lt;</span> <span class='int'>0</span>
<span class='kw'>return</span> <span class='id identifier rubyid_name'>name</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="protocol_name-instance_method">
#<strong>protocol_name</strong> &#x21d2; <tt>String</tt><sup>?</sup>
</h3><div class="docstring">
<div class="discussion">
<p>Returns the name of the SSL protocol that is currently active, or returns nil if SSL is nota ctive. Not that the protocol may change over time due to renegotation.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>String</tt>, <tt>nil</tt>)</span>
&mdash;
<div class='inline'>
<p>The protocol name.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
129
130
131
132</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/ssl.rb', line 129</span>
<span class='kw'>def</span> <span class='id identifier rubyid_protocol_name'>protocol_name</span>
<span class='id identifier rubyid_rc'>rc</span><span class='comma'>,</span> <span class='id identifier rubyid_name'>name</span> <span class='op'>=</span> <span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_ssl_get_protocol_name'>pn_ssl_get_protocol_name</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='comma'>,</span> <span class='int'>128</span><span class='rparen'>)</span>
<span class='id identifier rubyid_name'>name</span> <span class='kw'>if</span> <span class='id identifier rubyid_rc'>rc</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="resume_status-instance_method">
#<strong>resume_status</strong>
</h3><div class="docstring">
<div class="discussion">
<p>Checks whether or not the state has resumed.</p>
<p>Used for client session resume. When called on an active session, it indicates wehther the state has been resumed from a previous session.</p>
<p><strong>NOTE:</strong> This is a best-effort service - there is no guarantee that the remote server will accept the resumed parameters. The remote server may choose to ignore these parameters, and request a renegotation instead.</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
143
144
145</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/core/ssl.rb', line 143</span>
<span class='kw'>def</span> <span class='id identifier rubyid_resume_status'>resume_status</span>
<span class='const'>Cproton</span><span class='period'>.</span><span class='id identifier rubyid_pn_ssl_resume_status'>pn_ssl_resume_status</span><span class='lparen'>(</span><span class='ivar'>@impl</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="footer">
Generated on Wed Nov 11 12:57:54 2020 by
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
0.9.24 (ruby-2.7.2).
</div>
</div>
</body>
</html>