<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /><title>SSLHandler xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/io/filter/SSLHandler.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> *   @(#) $Id: SSLHandler.java 210062 2005-07-11 03:52:38Z trustin $</em>
<a name="3" href="#3">3</a>   <em class="comment"> *</em>
<a name="4" href="#4">4</a>   <em class="comment"> *   Copyright 2004 The Apache Software Foundation</em>
<a name="5" href="#5">5</a>   <em class="comment"> *</em>
<a name="6" href="#6">6</a>   <em class="comment"> *   Licensed under the Apache License, Version 2.0 (the "License");</em>
<a name="7" href="#7">7</a>   <em class="comment"> *   you may not use this file except in compliance with the License.</em>
<a name="8" href="#8">8</a>   <em class="comment"> *   You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="comment"> *</em>
<a name="10" href="#10">10</a>  <em class="comment"> *       <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="comment"> *</em>
<a name="12" href="#12">12</a>  <em class="comment"> *   Unless required by applicable law or agreed to in writing, software</em>
<a name="13" href="#13">13</a>  <em class="comment"> *   distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="14" href="#14">14</a>  <em class="comment"> *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="15" href="#15">15</a>  <em class="comment"> *   See the License for the specific language governing permissions and</em>
<a name="16" href="#16">16</a>  <em class="comment"> *   limitations under the License.</em>
<a name="17" href="#17">17</a>  <em class="comment"> *</em>
<a name="18" href="#18">18</a>  <em class="comment"> */</em>
<a name="19" href="#19">19</a>  <strong>package</strong> <a href="../../../../../org/apache/mina/io/filter/package-summary.html">org.apache.mina.io.filter</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> java.nio.ByteBuffer;
<a name="22" href="#22">22</a>  <strong>import</strong> java.util.logging.Level;
<a name="23" href="#23">23</a>  <strong>import</strong> java.util.logging.Logger;
<a name="24" href="#24">24</a>  
<a name="25" href="#25">25</a>  <strong>import</strong> javax.net.ssl.SSLContext;
<a name="26" href="#26">26</a>  <strong>import</strong> javax.net.ssl.SSLEngine;
<a name="27" href="#27">27</a>  <strong>import</strong> javax.net.ssl.SSLEngineResult;
<a name="28" href="#28">28</a>  <strong>import</strong> javax.net.ssl.SSLException;
<a name="29" href="#29">29</a>  <strong>import</strong> javax.net.ssl.SSLSession;
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>  <strong>import</strong> org.apache.mina.io.IoSession;
<a name="32" href="#32">32</a>  <strong>import</strong> org.apache.mina.io.IoFilter.NextFilter;
<a name="33" href="#33">33</a>  <strong>import</strong> org.apache.mina.util.Queue;
<a name="34" href="#34">34</a>  
<a name="35" href="#35">35</a>  <em>/**<em>*</em></em>
<a name="36" href="#36">36</a>  <em> * A helper class using the SSLEngine API to decrypt/encrypt data.</em>
<a name="37" href="#37">37</a>  <em> * &lt;p></em>
<a name="38" href="#38">38</a>  <em> * Each connection has a SSLEngine that is used through the lifetime of the connection.</em>
<a name="39" href="#39">39</a>  <em> * We allocate byte buffers for use as the outbound and inbound network buffers.</em>
<a name="40" href="#40">40</a>  <em> * These buffers handle all of the intermediary data for the SSL connection. To make things easy,</em>
<a name="41" href="#41">41</a>  <em> * we'll require outNetBuffer be completely flushed before trying to wrap any more data.</em>
<a name="42" href="#42">42</a>  <em> *</em>
<a name="43" href="#43">43</a>  <em> * @author Jan Andersson (janne@minq.se)</em>
<a name="44" href="#44">44</a>  <em> * @version $Rev: 210062 $, $Date: 2005-07-11 12:52:38 +0900 $</em>
<a name="45" href="#45">45</a>  <em> */</em>
<a name="46" href="#46">46</a>  <strong>class</strong> <a href="../../../../../org/apache/mina/io/filter/SSLHandler.html">SSLHandler</a>
<a name="47" href="#47">47</a>  {
<a name="48" href="#48">48</a>      <strong>private</strong> <strong>static</strong> <strong>final</strong> Logger log = Logger.getLogger( SSLFilter.<strong>class</strong>.getName() );
<a name="49" href="#49">49</a>  
<a name="50" href="#50">50</a>      <strong>private</strong> <strong>final</strong> <a href="../../../../../org/apache/mina/io/filter/SSLFilter.html">SSLFilter</a> parent;
<a name="51" href="#51">51</a>  
<a name="52" href="#52">52</a>      <strong>private</strong> <strong>final</strong> <a href="../../../../../org/apache/mina/io/IoSession.html">IoSession</a> session;
<a name="53" href="#53">53</a>      
<a name="54" href="#54">54</a>      <strong>private</strong> <strong>final</strong> <a href="../../../../../org/apache/mina/util/Queue.html">Queue</a> nextFilterQueue = <strong>new</strong> <a href="../../../../../org/apache/mina/util/Queue.html">Queue</a>();
<a name="55" href="#55">55</a>      
<a name="56" href="#56">56</a>      <strong>private</strong> <strong>final</strong> <a href="../../../../../org/apache/mina/util/Queue.html">Queue</a> writeBufferQueue = <strong>new</strong> <a href="../../../../../org/apache/mina/util/Queue.html">Queue</a>();
<a name="57" href="#57">57</a>      
<a name="58" href="#58">58</a>      <strong>private</strong> <strong>final</strong> <a href="../../../../../org/apache/mina/util/Queue.html">Queue</a> writeMarkerQueue = <strong>new</strong> <a href="../../../../../org/apache/mina/util/Queue.html">Queue</a>();
<a name="59" href="#59">59</a>  
<a name="60" href="#60">60</a>      <strong>private</strong> <strong>final</strong> SSLEngine sslEngine;
<a name="61" href="#61">61</a>  
<a name="62" href="#62">62</a>      <em>/**<em>*</em></em>
<a name="63" href="#63">63</a>  <em>     * Encrypted data from the net</em>
<a name="64" href="#64">64</a>  <em>     */</em>
<a name="65" href="#65">65</a>      <strong>private</strong> ByteBuffer inNetBuffer;
<a name="66" href="#66">66</a>  
<a name="67" href="#67">67</a>      <em>/**<em>*</em></em>
<a name="68" href="#68">68</a>  <em>     * Encrypted data to be written to the net</em>
<a name="69" href="#69">69</a>  <em>     */</em>
<a name="70" href="#70">70</a>      <strong>private</strong> ByteBuffer outNetBuffer;
<a name="71" href="#71">71</a>  
<a name="72" href="#72">72</a>      <em>/**<em>*</em></em>
<a name="73" href="#73">73</a>  <em>     * Applicaton cleartext data to be read by application</em>
<a name="74" href="#74">74</a>  <em>     */</em>
<a name="75" href="#75">75</a>      <strong>private</strong> ByteBuffer appBuffer;
<a name="76" href="#76">76</a>  
<a name="77" href="#77">77</a>      <em>/**<em>*</em></em>
<a name="78" href="#78">78</a>  <em>     * Empty buffer used during initial handshake and close operations</em>
<a name="79" href="#79">79</a>  <em>     */</em>
<a name="80" href="#80">80</a>      <strong>private</strong> ByteBuffer hsBB = ByteBuffer.allocate( 0 );
<a name="81" href="#81">81</a>  
<a name="82" href="#82">82</a>      <em>/**<em>*</em></em>
<a name="83" href="#83">83</a>  <em>     * Handshake status</em>
<a name="84" href="#84">84</a>  <em>     */</em>
<a name="85" href="#85">85</a>      <strong>private</strong> SSLEngineResult.HandshakeStatus initialHandshakeStatus;
<a name="86" href="#86">86</a>  
<a name="87" href="#87">87</a>      <em>/**<em>*</em></em>
<a name="88" href="#88">88</a>  <em>     * Initial handshake complete?</em>
<a name="89" href="#89">89</a>  <em>     */</em>
<a name="90" href="#90">90</a>      <strong>private</strong> <strong>boolean</strong> initialHandshakeComplete;
<a name="91" href="#91">91</a>  
<a name="92" href="#92">92</a>      <em>/**<em>*</em></em>
<a name="93" href="#93">93</a>  <em>     * We have received the shutdown request by our caller, and have</em>
<a name="94" href="#94">94</a>  <em>     * closed our outbound side.</em>
<a name="95" href="#95">95</a>  <em>     */</em>
<a name="96" href="#96">96</a>      <strong>private</strong> <strong>boolean</strong> shutdown = false;
<a name="97" href="#97">97</a>  
<a name="98" href="#98">98</a>      <strong>private</strong> <strong>boolean</strong> closed = false;
<a name="99" href="#99">99</a>  
<a name="100" href="#100">100</a>     <strong>private</strong> <strong>boolean</strong> isWritingEncryptedData = false;
<a name="101" href="#101">101</a>     
<a name="102" href="#102">102</a>     <em>/**<em>*</em></em>
<a name="103" href="#103">103</a> <em>     * Constuctor.</em>
<a name="104" href="#104">104</a> <em>     *</em>
<a name="105" href="#105">105</a> <em>     * @param sslc</em>
<a name="106" href="#106">106</a> <em>     * @throws SSLException </em>
<a name="107" href="#107">107</a> <em>     */</em>
<a name="108" href="#108">108</a>     <a href="../../../../../org/apache/mina/io/filter/SSLHandler.html">SSLHandler</a>( SSLFilter parent, SSLContext sslc, IoSession session ) throws SSLException
<a name="109" href="#109">109</a>     {
<a name="110" href="#110">110</a>         <strong>this</strong>.parent = parent;
<a name="111" href="#111">111</a>         <strong>this</strong>.session = session;
<a name="112" href="#112">112</a>         sslEngine = sslc.createSSLEngine();
<a name="113" href="#113">113</a>         sslEngine.setUseClientMode( parent.isUseClientMode() );
<a name="114" href="#114">114</a> 
<a name="115" href="#115">115</a>         <strong>if</strong> ( parent.isWantClientAuth() )
<a name="116" href="#116">116</a>         {
<a name="117" href="#117">117</a>             sslEngine.setWantClientAuth( <strong>true</strong> );
<a name="118" href="#118">118</a>         }
<a name="119" href="#119">119</a> 
<a name="120" href="#120">120</a>         <strong>if</strong> ( parent.isNeedClientAuth() )
<a name="121" href="#121">121</a>         {
<a name="122" href="#122">122</a>             sslEngine.setNeedClientAuth( <strong>true</strong> );
<a name="123" href="#123">123</a>         }
<a name="124" href="#124">124</a>   
<a name="125" href="#125">125</a>         <strong>if</strong>( parent.getEnabledCipherSuites() != <strong>null</strong> )
<a name="126" href="#126">126</a>         {
<a name="127" href="#127">127</a>             sslEngine.setEnabledCipherSuites( parent.getEnabledCipherSuites() );
<a name="128" href="#128">128</a>         }
<a name="129" href="#129">129</a>         
<a name="130" href="#130">130</a>         <strong>if</strong>( parent.getEnabledProtocols() != <strong>null</strong> )
<a name="131" href="#131">131</a>         {
<a name="132" href="#132">132</a>             sslEngine.setEnabledProtocols( parent.getEnabledProtocols() );
<a name="133" href="#133">133</a>         }
<a name="134" href="#134">134</a> 
<a name="135" href="#135">135</a>         sslEngine.beginHandshake();   
<a name="136" href="#136">136</a>         initialHandshakeStatus = sslEngine.getHandshakeStatus();<em class="comment">//SSLEngineResult.HandshakeStatus.NEED_UNWRAP;</em>
<a name="137" href="#137">137</a>         initialHandshakeComplete = false;
<a name="138" href="#138">138</a>         
<a name="139" href="#139">139</a>         SSLByteBufferPool.initiate( sslEngine );
<a name="140" href="#140">140</a> 
<a name="141" href="#141">141</a>         appBuffer = SSLByteBufferPool.getApplicationBuffer();
<a name="142" href="#142">142</a> 
<a name="143" href="#143">143</a>         inNetBuffer = SSLByteBufferPool.getPacketBuffer();
<a name="144" href="#144">144</a>         outNetBuffer = SSLByteBufferPool.getPacketBuffer();
<a name="145" href="#145">145</a>         outNetBuffer.position( 0 );
<a name="146" href="#146">146</a>         outNetBuffer.limit( 0 );
<a name="147" href="#147">147</a>     }
<a name="148" href="#148">148</a> 
<a name="149" href="#149">149</a>     <em>/**<em>*</em></em>
<a name="150" href="#150">150</a> <em>     * Indicate that we are writing encrypted data.</em>
<a name="151" href="#151">151</a> <em>     * Only used as a flag by IoSSLFiler</em>
<a name="152" href="#152">152</a> <em>     */</em>
<a name="153" href="#153">153</a>     <strong>public</strong> <strong>void</strong> setWritingEncryptedData( <strong>boolean</strong> flag )
<a name="154" href="#154">154</a>     {
<a name="155" href="#155">155</a>         isWritingEncryptedData = flag;
<a name="156" href="#156">156</a>     }
<a name="157" href="#157">157</a> 
<a name="158" href="#158">158</a>     <em>/**<em>*</em></em>
<a name="159" href="#159">159</a> <em>     * Check we are writing encrypted data.</em>
<a name="160" href="#160">160</a> <em>     */</em>
<a name="161" href="#161">161</a>     <strong>public</strong> <strong>boolean</strong> isWritingEncryptedData()
<a name="162" href="#162">162</a>     {
<a name="163" href="#163">163</a>         <strong>return</strong> isWritingEncryptedData;
<a name="164" href="#164">164</a>     }
<a name="165" href="#165">165</a> 
<a name="166" href="#166">166</a>     <em>/**<em>*</em></em>
<a name="167" href="#167">167</a> <em>     * Check if initial handshake is completed.</em>
<a name="168" href="#168">168</a> <em>     */</em>
<a name="169" href="#169">169</a>     <strong>public</strong> <strong>boolean</strong> isInitialHandshakeComplete()
<a name="170" href="#170">170</a>     {
<a name="171" href="#171">171</a>         <strong>return</strong> initialHandshakeComplete;
<a name="172" href="#172">172</a>     }
<a name="173" href="#173">173</a> 
<a name="174" href="#174">174</a>     <em>/**<em>*</em></em>
<a name="175" href="#175">175</a> <em>     * Check if SSL sesssion closed</em>
<a name="176" href="#176">176</a> <em>     */</em>
<a name="177" href="#177">177</a>     <strong>public</strong> <strong>boolean</strong> isClosed()
<a name="178" href="#178">178</a>     {
<a name="179" href="#179">179</a>         <strong>return</strong> closed;
<a name="180" href="#180">180</a>     }
<a name="181" href="#181">181</a> 
<a name="182" href="#182">182</a>     <em>/**<em>*</em></em>
<a name="183" href="#183">183</a> <em>     * Check if there is any need to complete initial handshake.</em>
<a name="184" href="#184">184</a> <em>     */</em>
<a name="185" href="#185">185</a>     <strong>public</strong> <strong>boolean</strong> needToCompleteInitialHandshake()
<a name="186" href="#186">186</a>     {
<a name="187" href="#187">187</a>         <strong>return</strong> ( initialHandshakeStatus == SSLEngineResult.HandshakeStatus.NEED_WRAP &amp;&amp; !closed );
<a name="188" href="#188">188</a>     }
<a name="189" href="#189">189</a>     
<a name="190" href="#190">190</a>     <strong>public</strong> <strong>synchronized</strong> <strong>void</strong> scheduleWrite( NextFilter nextFilter, org.apache.mina.common.ByteBuffer buf, Object marker )
<a name="191" href="#191">191</a>     {
<a name="192" href="#192">192</a>         nextFilterQueue.push( nextFilter );
<a name="193" href="#193">193</a>         writeBufferQueue.push( buf );
<a name="194" href="#194">194</a>         writeMarkerQueue.push( marker );
<a name="195" href="#195">195</a>     }
<a name="196" href="#196">196</a>     
<a name="197" href="#197">197</a>     <strong>public</strong> <strong>synchronized</strong> <strong>void</strong> flushScheduledWrites() throws SSLException
<a name="198" href="#198">198</a>     {
<a name="199" href="#199">199</a>         NextFilter nextFilter;
<a name="200" href="#200">200</a>         org.apache.mina.common.ByteBuffer scheduledBuf;
<a name="201" href="#201">201</a>         Object scheduledMarker;
<a name="202" href="#202">202</a>         
<a name="203" href="#203">203</a>         <strong>while</strong>( ( scheduledBuf = ( org.apache.mina.common.ByteBuffer ) writeBufferQueue.pop() ) != <strong>null</strong> )
<a name="204" href="#204">204</a>         {
<a name="205" href="#205">205</a>             <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="206" href="#206">206</a>             {
<a name="207" href="#207">207</a>                 log.log( Level.FINEST, session + <span class="string">" Flushing buffered write request: "</span> + scheduledBuf );
<a name="208" href="#208">208</a>             }
<a name="209" href="#209">209</a>             nextFilter = ( NextFilter ) nextFilterQueue.pop();
<a name="210" href="#210">210</a>             scheduledMarker = writeMarkerQueue.pop();
<a name="211" href="#211">211</a>             parent.filterWrite( nextFilter, session, scheduledBuf, scheduledMarker );
<a name="212" href="#212">212</a>         }
<a name="213" href="#213">213</a>     }
<a name="214" href="#214">214</a> 
<a name="215" href="#215">215</a>     <em>/**<em>*</em></em>
<a name="216" href="#216">216</a> <em>     * Call when data read from net. Will perform inial hanshake or decrypt provided</em>
<a name="217" href="#217">217</a> <em>     * Buffer.</em>
<a name="218" href="#218">218</a> <em>     * Decrytpted data reurned by getAppBuffer(), if any.</em>
<a name="219" href="#219">219</a> <em>     *</em>
<a name="220" href="#220">220</a> <em>     * @param buf buffer to decrypt</em>
<a name="221" href="#221">221</a> <em>     * @throws SSLException on errors</em>
<a name="222" href="#222">222</a> <em>     */</em>
<a name="223" href="#223">223</a>     <strong>public</strong> <strong>void</strong> dataRead( NextFilter nextFilter, ByteBuffer buf ) throws SSLException
<a name="224" href="#224">224</a>     {
<a name="225" href="#225">225</a>         <strong>if</strong> ( buf.limit() > inNetBuffer.remaining() ) {
<a name="226" href="#226">226</a>             <em class="comment">// We have to expand inNetBuffer</em>
<a name="227" href="#227">227</a>             inNetBuffer = SSLByteBufferPool.expandBuffer( inNetBuffer,
<a name="228" href="#228">228</a>                 inNetBuffer.capacity() + ( buf.limit() * 2 ) );
<a name="229" href="#229">229</a>             <em class="comment">// We also expand app. buffer (twice the size of in net. buffer)</em>
<a name="230" href="#230">230</a>             appBuffer = SSLByteBufferPool.expandBuffer( appBuffer, inNetBuffer.capacity() * 2);
<a name="231" href="#231">231</a>             appBuffer.position( 0 );
<a name="232" href="#232">232</a>             appBuffer.limit( 0 );
<a name="233" href="#233">233</a>             <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="234" href="#234">234</a>             {
<a name="235" href="#235">235</a>                 log.log( Level.FINEST, session + 
<a name="236" href="#236">236</a>                                     <span class="string">" expanded inNetBuffer:"</span> + inNetBuffer );
<a name="237" href="#237">237</a>                 log.log( Level.FINEST, session + 
<a name="238" href="#238">238</a>                                     <span class="string">" expanded appBuffer:"</span> + appBuffer );
<a name="239" href="#239">239</a>             }
<a name="240" href="#240">240</a>         }
<a name="241" href="#241">241</a> 
<a name="242" href="#242">242</a>         <em class="comment">// append buf to inNetBuffer</em>
<a name="243" href="#243">243</a>         inNetBuffer.put( buf );
<a name="244" href="#244">244</a>         <strong>if</strong>( !initialHandshakeComplete )
<a name="245" href="#245">245</a>         {
<a name="246" href="#246">246</a>             doHandshake( nextFilter );
<a name="247" href="#247">247</a>         }
<a name="248" href="#248">248</a>         <strong>else</strong>
<a name="249" href="#249">249</a>         {
<a name="250" href="#250">250</a>             doDecrypt();
<a name="251" href="#251">251</a>         }
<a name="252" href="#252">252</a>     }
<a name="253" href="#253">253</a> 
<a name="254" href="#254">254</a>     <em>/**<em>*</em></em>
<a name="255" href="#255">255</a> <em>     * Continue initial SSL handshake.</em>
<a name="256" href="#256">256</a> <em>     *</em>
<a name="257" href="#257">257</a> <em>     * @throws SSLException on errors</em>
<a name="258" href="#258">258</a> <em>     */</em>
<a name="259" href="#259">259</a>     <strong>public</strong> <strong>void</strong> continueHandshake( NextFilter nextFilter ) throws SSLException
<a name="260" href="#260">260</a>     {
<a name="261" href="#261">261</a>         <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="262" href="#262">262</a>         {
<a name="263" href="#263">263</a>             log.log( Level.FINEST, session + <span class="string">" continueHandshake()"</span> );
<a name="264" href="#264">264</a>         }
<a name="265" href="#265">265</a>         doHandshake( nextFilter );
<a name="266" href="#266">266</a>     }
<a name="267" href="#267">267</a> 
<a name="268" href="#268">268</a>     <em>/**<em>*</em></em>
<a name="269" href="#269">269</a> <em>     * Get decrypted application data.</em>
<a name="270" href="#270">270</a> <em>     *</em>
<a name="271" href="#271">271</a> <em>     * @return buffer with data</em>
<a name="272" href="#272">272</a> <em>     */</em>
<a name="273" href="#273">273</a>     <strong>public</strong> ByteBuffer getAppBuffer()
<a name="274" href="#274">274</a>     {
<a name="275" href="#275">275</a>         <strong>return</strong> appBuffer;
<a name="276" href="#276">276</a>     }
<a name="277" href="#277">277</a> 
<a name="278" href="#278">278</a>     <em>/**<em>*</em></em>
<a name="279" href="#279">279</a> <em>     * Get encrypted data to be sent.</em>
<a name="280" href="#280">280</a> <em>     *</em>
<a name="281" href="#281">281</a> <em>     * @return buffer with data</em>
<a name="282" href="#282">282</a> <em>     */</em>
<a name="283" href="#283">283</a>     <strong>public</strong> ByteBuffer getOutNetBuffer()
<a name="284" href="#284">284</a>     {
<a name="285" href="#285">285</a>         <strong>return</strong> outNetBuffer;
<a name="286" href="#286">286</a>     }
<a name="287" href="#287">287</a> 
<a name="288" href="#288">288</a>     <em>/**<em>*</em></em>
<a name="289" href="#289">289</a> <em>     * Encrypt provided buffer. Encytpted data reurned by getOutNetBuffer().</em>
<a name="290" href="#290">290</a> <em>     *</em>
<a name="291" href="#291">291</a> <em>     * @param buf data to encrypt</em>
<a name="292" href="#292">292</a> <em>     * @throws SSLException on errors</em>
<a name="293" href="#293">293</a> <em>     */</em>
<a name="294" href="#294">294</a>     <strong>public</strong> <strong>void</strong> encrypt( ByteBuffer buf ) throws SSLException
<a name="295" href="#295">295</a>     {
<a name="296" href="#296">296</a>         doEncrypt( buf );
<a name="297" href="#297">297</a>     }
<a name="298" href="#298">298</a> 
<a name="299" href="#299">299</a>     <em>/**<em>*</em></em>
<a name="300" href="#300">300</a> <em>     * Start SSL shutdown process</em>
<a name="301" href="#301">301</a> <em>     *</em>
<a name="302" href="#302">302</a> <em>     * @throws SSLException on errors</em>
<a name="303" href="#303">303</a> <em>     */</em>
<a name="304" href="#304">304</a>     <strong>public</strong> <strong>void</strong> shutdown() throws SSLException
<a name="305" href="#305">305</a>     {
<a name="306" href="#306">306</a>         <strong>if</strong>( !shutdown )
<a name="307" href="#307">307</a>         {
<a name="308" href="#308">308</a>             doShutdown();
<a name="309" href="#309">309</a>         }
<a name="310" href="#310">310</a>     }
<a name="311" href="#311">311</a> 
<a name="312" href="#312">312</a>     <em>/**<em>*</em></em>
<a name="313" href="#313">313</a> <em>     * Release allocated ByteBuffers.</em>
<a name="314" href="#314">314</a> <em>     */</em>
<a name="315" href="#315">315</a>     <strong>public</strong> <strong>void</strong> release()
<a name="316" href="#316">316</a>     {
<a name="317" href="#317">317</a>         SSLByteBufferPool.release( appBuffer );
<a name="318" href="#318">318</a>         SSLByteBufferPool.release( inNetBuffer );
<a name="319" href="#319">319</a>         SSLByteBufferPool.release( outNetBuffer );
<a name="320" href="#320">320</a>     }
<a name="321" href="#321">321</a> 
<a name="322" href="#322">322</a>     <em>/**<em>*</em></em>
<a name="323" href="#323">323</a> <em>     * Decrypt in net buffer. Result is stored in app buffer.</em>
<a name="324" href="#324">324</a> <em>     *</em>
<a name="325" href="#325">325</a> <em>     * @throws SSLException</em>
<a name="326" href="#326">326</a> <em>     */</em>
<a name="327" href="#327">327</a>     <strong>private</strong> <strong>void</strong> doDecrypt() throws SSLException
<a name="328" href="#328">328</a>     {
<a name="329" href="#329">329</a> 
<a name="330" href="#330">330</a>         <strong>if</strong>( !initialHandshakeComplete )
<a name="331" href="#331">331</a>         {
<a name="332" href="#332">332</a>             <strong>throw</strong> <strong>new</strong> IllegalStateException();
<a name="333" href="#333">333</a>         }
<a name="334" href="#334">334</a> 
<a name="335" href="#335">335</a>         <strong>if</strong>( appBuffer.hasRemaining() )
<a name="336" href="#336">336</a>         {
<a name="337" href="#337">337</a>              <strong>if</strong> ( log.isLoggable( Level.FINEST ) ) {
<a name="338" href="#338">338</a>                  log.log( Level.FINEST, session + <span class="string">" Error: appBuffer not empty!"</span> );
<a name="339" href="#339">339</a>              }
<a name="340" href="#340">340</a>             <em class="comment">//still app data in buffer!?</em>
<a name="341" href="#341">341</a>             <strong>throw</strong> <strong>new</strong> IllegalStateException();
<a name="342" href="#342">342</a>         }
<a name="343" href="#343">343</a> 
<a name="344" href="#344">344</a>         unwrap();
<a name="345" href="#345">345</a>     }
<a name="346" href="#346">346</a> 
<a name="347" href="#347">347</a>     <em>/**<em>*</em></em>
<a name="348" href="#348">348</a> <em>     * @param status</em>
<a name="349" href="#349">349</a> <em>     * @throws SSLException</em>
<a name="350" href="#350">350</a> <em>     */</em>
<a name="351" href="#351">351</a>     <strong>private</strong> SSLEngineResult.Status checkStatus( SSLEngineResult.Status status ) throws SSLException
<a name="352" href="#352">352</a>     {
<a name="353" href="#353">353</a>         <strong>if</strong>( status != SSLEngineResult.Status.OK &amp;&amp;
<a name="354" href="#354">354</a>             status != SSLEngineResult.Status.CLOSED &amp;&amp;
<a name="355" href="#355">355</a>             status != SSLEngineResult.Status.BUFFER_UNDERFLOW )
<a name="356" href="#356">356</a>         {
<a name="357" href="#357">357</a>             <strong>throw</strong> <strong>new</strong> SSLException( <span class="string">"SSLEngine error during decrypt: "</span> +
<a name="358" href="#358">358</a>                                     status +
<a name="359" href="#359">359</a>                                     <span class="string">" inNetBuffer: "</span> + inNetBuffer + <span class="string">"appBuffer: "</span> + appBuffer);
<a name="360" href="#360">360</a>         }
<a name="361" href="#361">361</a>         
<a name="362" href="#362">362</a>         <strong>return</strong> status;
<a name="363" href="#363">363</a>     }
<a name="364" href="#364">364</a>     
<a name="365" href="#365">365</a>     <strong>private</strong> <strong>void</strong> doEncrypt( ByteBuffer src ) throws SSLException
<a name="366" href="#366">366</a>     {
<a name="367" href="#367">367</a>         <strong>if</strong>( !initialHandshakeComplete )
<a name="368" href="#368">368</a>         {
<a name="369" href="#369">369</a>             <strong>throw</strong> <strong>new</strong> IllegalStateException();
<a name="370" href="#370">370</a>         }
<a name="371" href="#371">371</a> 
<a name="372" href="#372">372</a>         <em class="comment">// The data buffer is (must be) empty, we can reuse the entire</em>
<a name="373" href="#373">373</a>         <em class="comment">// buffer.</em>
<a name="374" href="#374">374</a>         outNetBuffer.clear();
<a name="375" href="#375">375</a> 
<a name="376" href="#376">376</a>         SSLEngineResult result;
<a name="377" href="#377">377</a> 
<a name="378" href="#378">378</a>         <em class="comment">// Loop until there is no more data in src</em>
<a name="379" href="#379">379</a>         <strong>while</strong> ( src.hasRemaining() ) {
<a name="380" href="#380">380</a> 
<a name="381" href="#381">381</a>             <strong>if</strong> ( src.remaining() > ( ( outNetBuffer.capacity() - outNetBuffer.position() ) / 2 ) ) {
<a name="382" href="#382">382</a>                 <em class="comment">// We have to expand outNetBuffer</em>
<a name="383" href="#383">383</a>                 <em class="comment">// Note: there is no way to know the exact size required, but enrypted data</em>
<a name="384" href="#384">384</a>                 <em class="comment">// shouln't need to be larger than twice the source data size?</em>
<a name="385" href="#385">385</a>                 outNetBuffer = SSLByteBufferPool.expandBuffer( outNetBuffer, src.capacity() * 2 );
<a name="386" href="#386">386</a>                 <strong>if</strong> ( log.isLoggable( Level.FINEST ) ) {
<a name="387" href="#387">387</a>                     log.log( Level.FINEST, session + <span class="string">" expanded outNetBuffer:"</span> + outNetBuffer );
<a name="388" href="#388">388</a>                 }
<a name="389" href="#389">389</a>             }
<a name="390" href="#390">390</a> 
<a name="391" href="#391">391</a>             result = sslEngine.wrap( src, outNetBuffer );
<a name="392" href="#392">392</a>             <strong>if</strong> ( log.isLoggable( Level.FINEST ) ) {
<a name="393" href="#393">393</a>                 log.log( Level.FINEST, session + <span class="string">" Wrap res:"</span> + result );
<a name="394" href="#394">394</a>             }
<a name="395" href="#395">395</a> 
<a name="396" href="#396">396</a>             <strong>if</strong> ( result.getStatus() == SSLEngineResult.Status.OK ) {
<a name="397" href="#397">397</a>                 <strong>if</strong> ( result.getHandshakeStatus() == SSLEngineResult.HandshakeStatus.NEED_TASK ) {
<a name="398" href="#398">398</a>                     doTasks();
<a name="399" href="#399">399</a>                 }
<a name="400" href="#400">400</a>             } <strong>else</strong> {
<a name="401" href="#401">401</a>                 <strong>throw</strong> <strong>new</strong> SSLException( <span class="string">"SSLEngine error during encrypt: "</span>
<a name="402" href="#402">402</a>                         + result.getStatus() +
<a name="403" href="#403">403</a>                         <span class="string">" src: "</span> + src + <span class="string">"outNetBuffer: "</span> + outNetBuffer);
<a name="404" href="#404">404</a>             }
<a name="405" href="#405">405</a>         }
<a name="406" href="#406">406</a> 
<a name="407" href="#407">407</a>         outNetBuffer.flip();
<a name="408" href="#408">408</a>     }
<a name="409" href="#409">409</a> 
<a name="410" href="#410">410</a>     <em>/**<em>*</em></em>
<a name="411" href="#411">411</a> <em>     * Perform any handshaking processing.</em>
<a name="412" href="#412">412</a> <em>     */</em>
<a name="413" href="#413">413</a>     <strong>synchronized</strong> <strong>void</strong> doHandshake( NextFilter nextFilter ) throws SSLException
<a name="414" href="#414">414</a>     {
<a name="415" href="#415">415</a> 
<a name="416" href="#416">416</a>         <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="417" href="#417">417</a>         {
<a name="418" href="#418">418</a>             log.log( Level.FINEST, session + <span class="string">" doHandshake()"</span> );
<a name="419" href="#419">419</a>         }
<a name="420" href="#420">420</a> 
<a name="421" href="#421">421</a>         <strong>while</strong>( !initialHandshakeComplete )
<a name="422" href="#422">422</a>         {
<a name="423" href="#423">423</a>             <strong>if</strong>( initialHandshakeStatus == SSLEngineResult.HandshakeStatus.FINISHED )
<a name="424" href="#424">424</a>             {
<a name="425" href="#425">425</a>                 session.setAttribute( SSLFilter.SSL_SESSION, sslEngine.getSession() );
<a name="426" href="#426">426</a>                 <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="427" href="#427">427</a>                 {
<a name="428" href="#428">428</a>                     SSLSession sslSession = sslEngine.getSession();
<a name="429" href="#429">429</a>                     log.log( Level.FINEST, session + <span class="string">"  initialHandshakeStatus=FINISHED"</span> );
<a name="430" href="#430">430</a>                     log.log( Level.FINEST, session + <span class="string">"  sslSession CipherSuite used "</span> + sslSession.getCipherSuite() );
<a name="431" href="#431">431</a>                 }
<a name="432" href="#432">432</a>                 initialHandshakeComplete = <strong>true</strong>;
<a name="433" href="#433">433</a>                 <strong>return</strong>;
<a name="434" href="#434">434</a>             }
<a name="435" href="#435">435</a>             <strong>else</strong> <strong>if</strong>( initialHandshakeStatus == SSLEngineResult.HandshakeStatus.NEED_TASK )
<a name="436" href="#436">436</a>             {
<a name="437" href="#437">437</a>                 <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="438" href="#438">438</a>                 {
<a name="439" href="#439">439</a>                     log.log( Level.FINEST, session + <span class="string">"  initialHandshakeStatus=NEED_TASK"</span> );
<a name="440" href="#440">440</a>                 }
<a name="441" href="#441">441</a>                 initialHandshakeStatus = doTasks();
<a name="442" href="#442">442</a>             }
<a name="443" href="#443">443</a>             <strong>else</strong> <strong>if</strong>( initialHandshakeStatus == SSLEngineResult.HandshakeStatus.NEED_UNWRAP )
<a name="444" href="#444">444</a>             {
<a name="445" href="#445">445</a>                 <em class="comment">// we need more data read</em>
<a name="446" href="#446">446</a>                 <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="447" href="#447">447</a>                 {
<a name="448" href="#448">448</a>                     log.log( Level.FINEST, session +
<a name="449" href="#449">449</a>                              <span class="string">"  initialHandshakeStatus=NEED_UNWRAP"</span> );
<a name="450" href="#450">450</a>                 }
<a name="451" href="#451">451</a>                 SSLEngineResult.Status status = unwrapHandshake();
<a name="452" href="#452">452</a>                 <strong>if</strong>( ( initialHandshakeStatus != SSLEngineResult.HandshakeStatus.FINISHED 
<a name="453" href="#453">453</a>                 		&amp;&amp;  status == SSLEngineResult.Status.BUFFER_UNDERFLOW )
<a name="454" href="#454">454</a>                         || closed )
<a name="455" href="#455">455</a>                 {
<a name="456" href="#456">456</a>                     <em class="comment">// We need more data or the session is closed</em>
<a name="457" href="#457">457</a>                     <strong>return</strong>;
<a name="458" href="#458">458</a>                 }
<a name="459" href="#459">459</a>             }
<a name="460" href="#460">460</a>             <strong>else</strong> <strong>if</strong>( initialHandshakeStatus == SSLEngineResult.HandshakeStatus.NEED_WRAP )
<a name="461" href="#461">461</a>             {
<a name="462" href="#462">462</a>                 <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="463" href="#463">463</a>                 {
<a name="464" href="#464">464</a>                     log.log( Level.FINEST, session + <span class="string">"  initialHandshakeStatus=NEED_WRAP"</span> );
<a name="465" href="#465">465</a>                 }
<a name="466" href="#466">466</a>                 <em class="comment">// First make sure that the out buffer is completely empty. Since we</em>
<a name="467" href="#467">467</a>                 <em class="comment">// cannot call wrap with data left on the buffer</em>
<a name="468" href="#468">468</a>                 <strong>if</strong>( outNetBuffer.hasRemaining() )
<a name="469" href="#469">469</a>                 {
<a name="470" href="#470">470</a>                     <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="471" href="#471">471</a>                     {
<a name="472" href="#472">472</a>                         log.log( Level.FINEST, session + <span class="string">"  Still data in out buffer!"</span> );
<a name="473" href="#473">473</a>                     }
<a name="474" href="#474">474</a>                     <strong>return</strong>;
<a name="475" href="#475">475</a>                 }
<a name="476" href="#476">476</a>                 outNetBuffer.clear();
<a name="477" href="#477">477</a>                 SSLEngineResult result = sslEngine.wrap( hsBB, outNetBuffer );
<a name="478" href="#478">478</a>                 <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="479" href="#479">479</a>                 {
<a name="480" href="#480">480</a>                     log.log( Level.FINEST, session + <span class="string">" Wrap res:"</span> + result );
<a name="481" href="#481">481</a>                 }
<a name="482" href="#482">482</a> 
<a name="483" href="#483">483</a>                 outNetBuffer.flip();
<a name="484" href="#484">484</a>                 initialHandshakeStatus = result.getHandshakeStatus();
<a name="485" href="#485">485</a>                 parent.writeNetBuffer( nextFilter, session, <strong>this</strong> );
<a name="486" href="#486">486</a>                 <em class="comment">// return to allow data on out buffer being sent</em>
<a name="487" href="#487">487</a>                 <em class="comment">// TODO: We might want to send more data immidiatley?</em>
<a name="488" href="#488">488</a>             }
<a name="489" href="#489">489</a>             <strong>else</strong>
<a name="490" href="#490">490</a>             {
<a name="491" href="#491">491</a>                 <strong>throw</strong> <strong>new</strong> IllegalStateException( <span class="string">"Invalid Handshaking State"</span>
<a name="492" href="#492">492</a>                         + initialHandshakeStatus );
<a name="493" href="#493">493</a>             }
<a name="494" href="#494">494</a>         }
<a name="495" href="#495">495</a>     }
<a name="496" href="#496">496</a> 
<a name="497" href="#497">497</a>     SSLEngineResult.Status unwrap() throws SSLException
<a name="498" href="#498">498</a>     {
<a name="499" href="#499">499</a>         <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="500" href="#500">500</a>         {
<a name="501" href="#501">501</a>             log.log( Level.FINEST, session + <span class="string">" unwrap()"</span> );
<a name="502" href="#502">502</a>         }
<a name="503" href="#503">503</a>         <em class="comment">// Prepare the application buffer to receive decrypted data</em>
<a name="504" href="#504">504</a>         appBuffer.clear();
<a name="505" href="#505">505</a> 
<a name="506" href="#506">506</a>         <em class="comment">// Prepare the net data for reading.</em>
<a name="507" href="#507">507</a>         inNetBuffer.flip();
<a name="508" href="#508">508</a> 
<a name="509" href="#509">509</a>         SSLEngineResult res;
<a name="510" href="#510">510</a>         <strong>do</strong>
<a name="511" href="#511">511</a>         {
<a name="512" href="#512">512</a>             <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="513" href="#513">513</a>             {
<a name="514" href="#514">514</a>                 log.log( Level.FINEST, session + <span class="string">"   inNetBuffer: "</span> + inNetBuffer );
<a name="515" href="#515">515</a>                 log.log( Level.FINEST, session + <span class="string">"   appBuffer: "</span> + appBuffer );
<a name="516" href="#516">516</a>             }
<a name="517" href="#517">517</a>             res = sslEngine.unwrap( inNetBuffer, appBuffer );
<a name="518" href="#518">518</a>             <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="519" href="#519">519</a>             {
<a name="520" href="#520">520</a>                 log.log( Level.FINEST, session + <span class="string">" Unwrap res:"</span> + res );
<a name="521" href="#521">521</a>             }
<a name="522" href="#522">522</a>         }
<a name="523" href="#523">523</a>         <strong>while</strong>( res.getStatus() == SSLEngineResult.Status.OK );
<a name="524" href="#524">524</a> 
<a name="525" href="#525">525</a>         <em class="comment">// If we are CLOSED, set flag</em>
<a name="526" href="#526">526</a>         <strong>if</strong>( res.getStatus() == SSLEngineResult.Status.CLOSED )
<a name="527" href="#527">527</a>         {
<a name="528" href="#528">528</a>             closed = <strong>true</strong>;
<a name="529" href="#529">529</a>         }
<a name="530" href="#530">530</a> 
<a name="531" href="#531">531</a>         <em class="comment">// prepare to be written again</em>
<a name="532" href="#532">532</a>         inNetBuffer.compact();
<a name="533" href="#533">533</a>         <em class="comment">// prepare app data to be read</em>
<a name="534" href="#534">534</a>         appBuffer.flip();
<a name="535" href="#535">535</a> 
<a name="536" href="#536">536</a>         <em class="comment">/*</em>
<a name="537" href="#537">537</a> <em class="comment">         * The status may be:</em>
<a name="538" href="#538">538</a> <em class="comment">         * OK - Normal operation</em>
<a name="539" href="#539">539</a> <em class="comment">         * OVERFLOW - Should never happen since the application buffer is</em>
<a name="540" href="#540">540</a> <em class="comment">         *      sized to hold the maximum packet size.</em>
<a name="541" href="#541">541</a> <em class="comment">         * UNDERFLOW - Need to read more data from the socket. It's normal.</em>
<a name="542" href="#542">542</a> <em class="comment">         * CLOSED - The other peer closed the socket. Also normal.</em>
<a name="543" href="#543">543</a> <em class="comment">         */</em>
<a name="544" href="#544">544</a>         <strong>return</strong> checkStatus( res.getStatus() );
<a name="545" href="#545">545</a>     }
<a name="546" href="#546">546</a> 
<a name="547" href="#547">547</a>     <strong>private</strong> SSLEngineResult.Status unwrapHandshake() throws SSLException
<a name="548" href="#548">548</a>     {
<a name="549" href="#549">549</a>         <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="550" href="#550">550</a>         {
<a name="551" href="#551">551</a>             log.log( Level.FINEST, session + <span class="string">" unwrapHandshake()"</span> );
<a name="552" href="#552">552</a>         }
<a name="553" href="#553">553</a>         <em class="comment">// Prepare the application buffer to receive decrypted data</em>
<a name="554" href="#554">554</a>         appBuffer.clear();
<a name="555" href="#555">555</a> 
<a name="556" href="#556">556</a>         <em class="comment">// Prepare the net data for reading.</em>
<a name="557" href="#557">557</a>         inNetBuffer.flip();
<a name="558" href="#558">558</a> 
<a name="559" href="#559">559</a>         SSLEngineResult res;
<a name="560" href="#560">560</a>         <strong>do</strong>
<a name="561" href="#561">561</a>         {
<a name="562" href="#562">562</a>             <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="563" href="#563">563</a>             {
<a name="564" href="#564">564</a>                 log.log( Level.FINEST, session + <span class="string">"   inNetBuffer: "</span> + inNetBuffer );
<a name="565" href="#565">565</a>                 log.log( Level.FINEST, session + <span class="string">"   appBuffer: "</span> + appBuffer );
<a name="566" href="#566">566</a>             }
<a name="567" href="#567">567</a>             res = sslEngine.unwrap( inNetBuffer, appBuffer );
<a name="568" href="#568">568</a>             <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="569" href="#569">569</a>             {
<a name="570" href="#570">570</a>                 log.log( Level.FINEST, session + <span class="string">" Unwrap res:"</span> + res );
<a name="571" href="#571">571</a>             }
<a name="572" href="#572">572</a> 
<a name="573" href="#573">573</a>         }
<a name="574" href="#574">574</a>         <strong>while</strong>( res.getStatus() == SSLEngineResult.Status.OK &amp;&amp;
<a name="575" href="#575">575</a>                res.getHandshakeStatus() == SSLEngineResult.HandshakeStatus.NEED_UNWRAP );
<a name="576" href="#576">576</a> 
<a name="577" href="#577">577</a>         initialHandshakeStatus = res.getHandshakeStatus();
<a name="578" href="#578">578</a> 	
<a name="579" href="#579">579</a> 	<em class="comment">// If handshake finished, no data was produced, and the status is still ok,</em>
<a name="580" href="#580">580</a> 		<em class="comment">// try to unwrap more</em>
<a name="581" href="#581">581</a> 		<strong>if</strong> (initialHandshakeStatus == SSLEngineResult.HandshakeStatus.FINISHED
<a name="582" href="#582">582</a> 				&amp;&amp; appBuffer.position() == 0
<a name="583" href="#583">583</a> 				&amp;&amp; res.getStatus() == SSLEngineResult.Status.OK
<a name="584" href="#584">584</a> 				&amp;&amp; inNetBuffer.hasRemaining()) {
<a name="585" href="#585">585</a> 			<strong>do</strong> {
<a name="586" href="#586">586</a> 				<strong>if</strong> (log.isLoggable( Level.FINEST )) {
<a name="587" href="#587">587</a> 					log.log( Level.FINEST, session + <span class="string">"  extra handshake unwrap"</span> );
<a name="588" href="#588">588</a>                     log.log( Level.FINEST, session + <span class="string">"   inNetBuffer: "</span> + inNetBuffer );
<a name="589" href="#589">589</a>                     log.log( Level.FINEST, session + <span class="string">"   appBuffer: "</span> + appBuffer );
<a name="590" href="#590">590</a> 				}
<a name="591" href="#591">591</a> 				res = sslEngine.unwrap(inNetBuffer, appBuffer);
<a name="592" href="#592">592</a> 				<strong>if</strong> (log.isLoggable( Level.FINEST )) {
<a name="593" href="#593">593</a>                     log.log( Level.FINEST, session + <span class="string">" Unwrap res:"</span> + res );
<a name="594" href="#594">594</a> 				}
<a name="595" href="#595">595</a> 			} <strong>while</strong> (res.getStatus() == SSLEngineResult.Status.OK);
<a name="596" href="#596">596</a> 		}
<a name="597" href="#597">597</a> 
<a name="598" href="#598">598</a>         <em class="comment">// If we are CLOSED, set flag</em>
<a name="599" href="#599">599</a>         <strong>if</strong>( res.getStatus() == SSLEngineResult.Status.CLOSED )
<a name="600" href="#600">600</a>         {
<a name="601" href="#601">601</a>             closed = <strong>true</strong>;
<a name="602" href="#602">602</a>         }
<a name="603" href="#603">603</a>         
<a name="604" href="#604">604</a>         <em class="comment">// prepare to be written again</em>
<a name="605" href="#605">605</a>         inNetBuffer.compact();
<a name="606" href="#606">606</a> 
<a name="607" href="#607">607</a>         <em class="comment">// prepare app data to be read</em>
<a name="608" href="#608">608</a>         appBuffer.flip();
<a name="609" href="#609">609</a> 
<a name="610" href="#610">610</a>         <em class="comment">/*</em>
<a name="611" href="#611">611</a> <em class="comment">         * The status may be:</em>
<a name="612" href="#612">612</a> <em class="comment">         * OK - Normal operation</em>
<a name="613" href="#613">613</a> <em class="comment">         * OVERFLOW - Should never happen since the application buffer is</em>
<a name="614" href="#614">614</a> <em class="comment">         *      sized to hold the maximum packet size.</em>
<a name="615" href="#615">615</a> <em class="comment">         * UNDERFLOW - Need to read more data from the socket. It's normal.</em>
<a name="616" href="#616">616</a> <em class="comment">         * CLOSED - The other peer closed the socket. Also normal.</em>
<a name="617" href="#617">617</a> <em class="comment">         */</em>
<a name="618" href="#618">618</a>         <em class="comment">//initialHandshakeStatus = res.getHandshakeStatus();</em>
<a name="619" href="#619">619</a>         <strong>return</strong> checkStatus( res.getStatus() );
<a name="620" href="#620">620</a>     }
<a name="621" href="#621">621</a> 
<a name="622" href="#622">622</a>     <em>/**<em>*</em></em>
<a name="623" href="#623">623</a> <em>     * Do all the outstanding handshake tasks in the current Thread.</em>
<a name="624" href="#624">624</a> <em>     */</em>
<a name="625" href="#625">625</a>     <strong>private</strong> SSLEngineResult.HandshakeStatus doTasks()
<a name="626" href="#626">626</a>     {
<a name="627" href="#627">627</a>         <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="628" href="#628">628</a>         {
<a name="629" href="#629">629</a>             log.log( Level.FINEST, session + <span class="string">"   doTasks()"</span> );
<a name="630" href="#630">630</a>         }
<a name="631" href="#631">631</a> 
<a name="632" href="#632">632</a>         <em class="comment">/*</em>
<a name="633" href="#633">633</a> <em class="comment">         * We could run this in a separate thread, but I don't see the need</em>
<a name="634" href="#634">634</a> <em class="comment">         * for this when used from IoSSLFilter.Use thread filters in Mina instead?</em>
<a name="635" href="#635">635</a> <em class="comment">         */</em>
<a name="636" href="#636">636</a>         Runnable runnable;
<a name="637" href="#637">637</a>         <strong>while</strong>( ( runnable = sslEngine.getDelegatedTask() ) != <strong>null</strong> )
<a name="638" href="#638">638</a>         {
<a name="639" href="#639">639</a>             <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="640" href="#640">640</a>             {
<a name="641" href="#641">641</a>                 log.log( Level.FINEST, session + <span class="string">"    doTask: "</span> + runnable );
<a name="642" href="#642">642</a>             }
<a name="643" href="#643">643</a>             runnable.run();
<a name="644" href="#644">644</a>         }
<a name="645" href="#645">645</a>         <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="646" href="#646">646</a>         {
<a name="647" href="#647">647</a>             log.log( Level.FINEST, session + <span class="string">"   doTasks(): "</span>
<a name="648" href="#648">648</a>                     + sslEngine.getHandshakeStatus() );
<a name="649" href="#649">649</a>         }
<a name="650" href="#650">650</a>         <strong>return</strong> sslEngine.getHandshakeStatus();
<a name="651" href="#651">651</a>     }
<a name="652" href="#652">652</a> 
<a name="653" href="#653">653</a>     <em>/**<em>*</em></em>
<a name="654" href="#654">654</a> <em>     * Begin the shutdown process.</em>
<a name="655" href="#655">655</a> <em>     */</em>
<a name="656" href="#656">656</a>     <strong>void</strong> doShutdown() throws SSLException
<a name="657" href="#657">657</a>     {
<a name="658" href="#658">658</a> 
<a name="659" href="#659">659</a>         <strong>if</strong>( !shutdown )
<a name="660" href="#660">660</a>         {
<a name="661" href="#661">661</a>             sslEngine.closeOutbound();
<a name="662" href="#662">662</a>             shutdown = <strong>true</strong>;
<a name="663" href="#663">663</a>         }
<a name="664" href="#664">664</a> 
<a name="665" href="#665">665</a>         <em class="comment">// By RFC 2616, we can "fire and forget" our close_notify</em>
<a name="666" href="#666">666</a>         <em class="comment">// message, so that's what we'll do here.</em>
<a name="667" href="#667">667</a> 
<a name="668" href="#668">668</a>         outNetBuffer.clear();
<a name="669" href="#669">669</a>         SSLEngineResult result = sslEngine.wrap( hsBB, outNetBuffer );
<a name="670" href="#670">670</a>         <strong>if</strong>( result.getStatus() != SSLEngineResult.Status.CLOSED )
<a name="671" href="#671">671</a>         {
<a name="672" href="#672">672</a>             <strong>throw</strong> <strong>new</strong> SSLException( <span class="string">"Improper close state: "</span> + result );
<a name="673" href="#673">673</a>         }
<a name="674" href="#674">674</a>         outNetBuffer.flip();
<a name="675" href="#675">675</a>     }
<a name="676" href="#676">676</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

