blob: b3b2123bc4a59b3ff23cb41cbe7762f544868eee [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Fri Mar 15 09:53:55 CET 2019 -->
<title>SSLHandler (Apache MINA)</title>
<meta name="date" content="2019-03-15">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SSLHandler (Apache MINA)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SSLHandler.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/mina/filter/support/SSLHandler.html" target="_top">Frames</a></li>
<li><a href="SSLHandler.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.mina.filter.support</div>
<h2 title="Class SSLHandler" class="title">Class SSLHandler</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.mina.filter.support.SSLHandler</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">SSLHandler</span>
extends java.lang.Object</pre>
<div class="block">A helper class using the SSLEngine API to decrypt/encrypt data.
<p>
Each connection has a SSLEngine that is used through the lifetime of the connection.
We allocate byte buffers for use as the outbound and inbound network buffers.
These buffers handle all of the intermediary data for the SSL connection. To make things easy,
we'll require outNetBuffer be completely flushed before trying to wrap any more data.</div>
<dl>
<dt><span class="simpleTagLabel">Version:</span></dt>
<dd>$Rev: 359354 $, $Date: 2005-12-28 03:42:00 +0100 (Wed, 28 Dec 2005) $</dd>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>The Apache Directory Project (dev@directory.apache.org)</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#SSLHandler-org.apache.mina.filter.SSLFilter-javax.net.ssl.SSLContext-org.apache.mina.common.IoSession-">SSLHandler</a></span>(<a href="../../../../../org/apache/mina/filter/SSLFilter.html" title="class in org.apache.mina.filter">SSLFilter</a>&nbsp;parent,
javax.net.ssl.SSLContext&nbsp;sslc,
<a href="../../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</a>&nbsp;session)</code>
<div class="block">Constuctor.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#closeOutbound--">closeOutbound</a></span>()</code>
<div class="block">Start SSL shutdown process.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/mina/common/ByteBuffer.html" title="class in org.apache.mina.common">ByteBuffer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#copy-java.nio.ByteBuffer-">copy</a></span>(java.nio.ByteBuffer&nbsp;src)</code>
<div class="block">Creates a new Mina byte buffer that is a deep copy of the remaining bytes
in the given buffer (between index buf.position() and buf.limit())</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#destroy--">destroy</a></span>()</code>
<div class="block">Release allocated ByteBuffers.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#encrypt-java.nio.ByteBuffer-">encrypt</a></span>(java.nio.ByteBuffer&nbsp;src)</code>
<div class="block">Encrypt provided buffer.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#flushScheduledWrites--">flushScheduledWrites</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.nio.ByteBuffer</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#getAppBuffer--">getAppBuffer</a></span>()</code>
<div class="block">Get decrypted application data.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>java.nio.ByteBuffer</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#getOutNetBuffer--">getOutNetBuffer</a></span>()</code>
<div class="block">Get encrypted data to be sent.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/mina/filter/SSLFilter.html" title="class in org.apache.mina.filter">SSLFilter</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#getParent--">getParent</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#getSession--">getSession</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#handshake-org.apache.mina.common.IoFilter.NextFilter-">handshake</a></span>(<a href="../../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</a>&nbsp;nextFilter)</code>
<div class="block">Perform any handshaking processing.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#init--">init</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#isInboundDone--">isInboundDone</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#isInitialHandshakeComplete--">isInitialHandshakeComplete</a></span>()</code>
<div class="block">Check if initial handshake is completed.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#isOutboundDone--">isOutboundDone</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#isWritingEncryptedData--">isWritingEncryptedData</a></span>()</code>
<div class="block">Check we are writing encrypted data.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#messageReceived-org.apache.mina.common.IoFilter.NextFilter-java.nio.ByteBuffer-">messageReceived</a></span>(<a href="../../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</a>&nbsp;nextFilter,
java.nio.ByteBuffer&nbsp;buf)</code>
<div class="block">Call when data read from net.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#needToCompleteInitialHandshake--">needToCompleteInitialHandshake</a></span>()</code>
<div class="block">Check if there is any need to complete initial handshake.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#scheduleWrite-org.apache.mina.common.IoFilter.NextFilter-org.apache.mina.common.IoFilter.WriteRequest-">scheduleWrite</a></span>(<a href="../../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</a>&nbsp;nextFilter,
<a href="../../../../../org/apache/mina/common/IoFilter.WriteRequest.html" title="class in org.apache.mina.common">IoFilter.WriteRequest</a>&nbsp;writeRequest)</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/mina/common/WriteFuture.html" title="class in org.apache.mina.common">WriteFuture</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/filter/support/SSLHandler.html#writeNetBuffer-org.apache.mina.common.IoFilter.NextFilter-">writeNetBuffer</a></span>(<a href="../../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</a>&nbsp;nextFilter)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="SSLHandler-org.apache.mina.filter.SSLFilter-javax.net.ssl.SSLContext-org.apache.mina.common.IoSession-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SSLHandler</h4>
<pre>public&nbsp;SSLHandler(<a href="../../../../../org/apache/mina/filter/SSLFilter.html" title="class in org.apache.mina.filter">SSLFilter</a>&nbsp;parent,
javax.net.ssl.SSLContext&nbsp;sslc,
<a href="../../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</a>&nbsp;session)
throws javax.net.ssl.SSLException</pre>
<div class="block">Constuctor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sslc</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>javax.net.ssl.SSLException</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="init--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre>public&nbsp;void&nbsp;init()
throws javax.net.ssl.SSLException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>javax.net.ssl.SSLException</code></dd>
</dl>
</li>
</ul>
<a name="destroy--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>destroy</h4>
<pre>public&nbsp;void&nbsp;destroy()</pre>
<div class="block">Release allocated ByteBuffers.</div>
</li>
</ul>
<a name="getParent--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParent</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/mina/filter/SSLFilter.html" title="class in org.apache.mina.filter">SSLFilter</a>&nbsp;getParent()</pre>
</li>
</ul>
<a name="getSession--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSession</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</a>&nbsp;getSession()</pre>
</li>
</ul>
<a name="isWritingEncryptedData--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isWritingEncryptedData</h4>
<pre>public&nbsp;boolean&nbsp;isWritingEncryptedData()</pre>
<div class="block">Check we are writing encrypted data.</div>
</li>
</ul>
<a name="isInitialHandshakeComplete--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isInitialHandshakeComplete</h4>
<pre>public&nbsp;boolean&nbsp;isInitialHandshakeComplete()</pre>
<div class="block">Check if initial handshake is completed.</div>
</li>
</ul>
<a name="isInboundDone--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isInboundDone</h4>
<pre>public&nbsp;boolean&nbsp;isInboundDone()</pre>
</li>
</ul>
<a name="isOutboundDone--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOutboundDone</h4>
<pre>public&nbsp;boolean&nbsp;isOutboundDone()</pre>
</li>
</ul>
<a name="needToCompleteInitialHandshake--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>needToCompleteInitialHandshake</h4>
<pre>public&nbsp;boolean&nbsp;needToCompleteInitialHandshake()</pre>
<div class="block">Check if there is any need to complete initial handshake.</div>
</li>
</ul>
<a name="scheduleWrite-org.apache.mina.common.IoFilter.NextFilter-org.apache.mina.common.IoFilter.WriteRequest-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>scheduleWrite</h4>
<pre>public&nbsp;void&nbsp;scheduleWrite(<a href="../../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</a>&nbsp;nextFilter,
<a href="../../../../../org/apache/mina/common/IoFilter.WriteRequest.html" title="class in org.apache.mina.common">IoFilter.WriteRequest</a>&nbsp;writeRequest)</pre>
</li>
</ul>
<a name="flushScheduledWrites--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flushScheduledWrites</h4>
<pre>public&nbsp;void&nbsp;flushScheduledWrites()
throws javax.net.ssl.SSLException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>javax.net.ssl.SSLException</code></dd>
</dl>
</li>
</ul>
<a name="messageReceived-org.apache.mina.common.IoFilter.NextFilter-java.nio.ByteBuffer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>messageReceived</h4>
<pre>public&nbsp;void&nbsp;messageReceived(<a href="../../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</a>&nbsp;nextFilter,
java.nio.ByteBuffer&nbsp;buf)
throws javax.net.ssl.SSLException</pre>
<div class="block">Call when data read from net. Will perform inial hanshake or decrypt provided
Buffer.
Decrytpted data reurned by getAppBuffer(), if any.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buf</code> - buffer to decrypt</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>javax.net.ssl.SSLException</code> - on errors</dd>
</dl>
</li>
</ul>
<a name="getAppBuffer--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAppBuffer</h4>
<pre>public&nbsp;java.nio.ByteBuffer&nbsp;getAppBuffer()</pre>
<div class="block">Get decrypted application data.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>buffer with data</dd>
</dl>
</li>
</ul>
<a name="getOutNetBuffer--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOutNetBuffer</h4>
<pre>public&nbsp;java.nio.ByteBuffer&nbsp;getOutNetBuffer()</pre>
<div class="block">Get encrypted data to be sent.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>buffer with data</dd>
</dl>
</li>
</ul>
<a name="encrypt-java.nio.ByteBuffer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>encrypt</h4>
<pre>public&nbsp;void&nbsp;encrypt(java.nio.ByteBuffer&nbsp;src)
throws javax.net.ssl.SSLException</pre>
<div class="block">Encrypt provided buffer. Encytpted data reurned by getOutNetBuffer().</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>src</code> - data to encrypt</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>javax.net.ssl.SSLException</code> - on errors</dd>
</dl>
</li>
</ul>
<a name="closeOutbound--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closeOutbound</h4>
<pre>public&nbsp;boolean&nbsp;closeOutbound()
throws javax.net.ssl.SSLException</pre>
<div class="block">Start SSL shutdown process.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><tt>true</tt> if shutdown process is started.
<tt>false</tt> if shutdown process is already finished.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>javax.net.ssl.SSLException</code> - on errors</dd>
</dl>
</li>
</ul>
<a name="handshake-org.apache.mina.common.IoFilter.NextFilter-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handshake</h4>
<pre>public&nbsp;void&nbsp;handshake(<a href="../../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</a>&nbsp;nextFilter)
throws javax.net.ssl.SSLException</pre>
<div class="block">Perform any handshaking processing.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>javax.net.ssl.SSLException</code></dd>
</dl>
</li>
</ul>
<a name="writeNetBuffer-org.apache.mina.common.IoFilter.NextFilter-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeNetBuffer</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/mina/common/WriteFuture.html" title="class in org.apache.mina.common">WriteFuture</a>&nbsp;writeNetBuffer(<a href="../../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</a>&nbsp;nextFilter)
throws javax.net.ssl.SSLException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>javax.net.ssl.SSLException</code></dd>
</dl>
</li>
</ul>
<a name="copy-java.nio.ByteBuffer-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>copy</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/mina/common/ByteBuffer.html" title="class in org.apache.mina.common">ByteBuffer</a>&nbsp;copy(java.nio.ByteBuffer&nbsp;src)</pre>
<div class="block">Creates a new Mina byte buffer that is a deep copy of the remaining bytes
in the given buffer (between index buf.position() and buf.limit())</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>src</code> - the buffer to copy</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the new buffer, ready to read from</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SSLHandler.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/mina/filter/support/SSLHandler.html" target="_top">Frames</a></li>
<li><a href="SSLHandler.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>