<!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=UTF-8" />
<title>SslHandler xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/filter/ssl/SslHandler.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> *  Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> *  or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> *  distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> *  regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> *  to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> *  "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> *  with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_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="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> *  Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> *  software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> *  KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> *  specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> *  under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> *</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment"> */</em>
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.mina.filter.ssl;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.net.InetSocketAddress;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.nio.ByteBuffer;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Queue;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ConcurrentLinkedQueue;
<a name="26" href="#26">26</a>  
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> javax.net.ssl.SSLContext;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> javax.net.ssl.SSLEngine;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> javax.net.ssl.SSLEngineResult;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> javax.net.ssl.SSLException;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> javax.net.ssl.SSLHandshakeException;
<a name="32" href="#32">32</a>  
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.DefaultWriteFuture;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.DefaultWriteRequest;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoBuffer;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoEventType;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoFilterEvent;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoSession;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.WriteFuture;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.WriteRequest;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoFilter.NextFilter;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.util.CircularQueue;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<a name="45" href="#45">45</a>  
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment">/**</em>
<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * A helper class using the SSLEngine API to decrypt/encrypt data.</em>
<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * &lt;p/&gt;</em>
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * Each connection has a SSLEngine that is used through the lifetime of the connection.</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> * We allocate buffers for use as the outbound and inbound network buffers.</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> * These buffers handle all of the intermediary data for the SSL connection. To make things easy,</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> * we'll require outNetBuffer be completely flushed before trying to wrap any more data.</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> *</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> * @version $Rev: 616100 $, $Date: 2008-01-28 15:58:32 -0700 (Mon, 28 Jan 2008) $</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment"> */</em>
<a name="57" href="#57">57</a>  <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslHandler.html">SslHandler</a> {
<a name="58" href="#58">58</a>      
<a name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Logger logger = LoggerFactory.getLogger(getClass());
<a name="60" href="#60">60</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslFilter.html">SslFilter</a> parent;
<a name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> SSLContext ctx;
<a name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> session;
<a name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Queue&lt;IoFilterEvent&gt; preHandshakeEventQueue = <strong class="jxr_keyword">new</strong> CircularQueue&lt;IoFilterEvent&gt;();
<a name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Queue&lt;IoFilterEvent&gt; filterWriteEventQueue = <strong class="jxr_keyword">new</strong> ConcurrentLinkedQueue&lt;IoFilterEvent&gt;();
<a name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Queue&lt;IoFilterEvent&gt; messageReceivedEventQueue = <strong class="jxr_keyword">new</strong> ConcurrentLinkedQueue&lt;IoFilterEvent&gt;();
<a name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> SSLEngine sslEngine;
<a name="67" href="#67">67</a>  
<a name="68" href="#68">68</a>      <em class="jxr_javadoccomment">/**</em>
<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     * Encrypted data from the net</em>
<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     */</em>
<a name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> inNetBuffer;
<a name="72" href="#72">72</a>  
<a name="73" href="#73">73</a>      <em class="jxr_javadoccomment">/**</em>
<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     * Encrypted data to be written to the net</em>
<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     */</em>
<a name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> outNetBuffer;
<a name="77" href="#77">77</a>  
<a name="78" href="#78">78</a>      <em class="jxr_javadoccomment">/**</em>
<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     * Applicaton cleartext data to be read by application</em>
<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     */</em>
<a name="81" href="#81">81</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> appBuffer;
<a name="82" href="#82">82</a>  
<a name="83" href="#83">83</a>      <em class="jxr_javadoccomment">/**</em>
<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">     * Empty buffer used during initial handshake and close operations</em>
<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment">     */</em>
<a name="86" href="#86">86</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> emptyBuffer = IoBuffer.allocate(0);
<a name="87" href="#87">87</a>  
<a name="88" href="#88">88</a>      <strong class="jxr_keyword">private</strong> SSLEngineResult.HandshakeStatus handshakeStatus;
<a name="89" href="#89">89</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> initialHandshakeComplete;
<a name="90" href="#90">90</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> handshakeComplete;
<a name="91" href="#91">91</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> writingEncryptedData;
<a name="92" href="#92">92</a>  
<a name="93" href="#93">93</a>      <em class="jxr_javadoccomment">/**</em>
<a name="94" href="#94">94</a>  <em class="jxr_javadoccomment">     * Constuctor.</em>
<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     *</em>
<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     * @param sslc</em>
<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * @throws SSLException</em>
<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     */</em>
<a name="99" href="#99">99</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslHandler.html">SslHandler</a>(<a href="../../../../../org/apache/mina/filter/ssl/SslFilter.html">SslFilter</a> parent, SSLContext sslc, <a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> session)
<a name="100" href="#100">100</a>             <strong class="jxr_keyword">throws</strong> SSLException {
<a name="101" href="#101">101</a>         <strong class="jxr_keyword">this</strong>.parent = parent;
<a name="102" href="#102">102</a>         <strong class="jxr_keyword">this</strong>.session = session;
<a name="103" href="#103">103</a>         <strong class="jxr_keyword">this</strong>.ctx = sslc;
<a name="104" href="#104">104</a>         init();
<a name="105" href="#105">105</a>     }
<a name="106" href="#106">106</a> 
<a name="107" href="#107">107</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> init() <strong class="jxr_keyword">throws</strong> SSLException {
<a name="108" href="#108">108</a>         <strong class="jxr_keyword">if</strong> (sslEngine != <strong class="jxr_keyword">null</strong>) {
<a name="109" href="#109">109</a>             <strong class="jxr_keyword">return</strong>;
<a name="110" href="#110">110</a>         }
<a name="111" href="#111">111</a> 
<a name="112" href="#112">112</a>         InetSocketAddress peer = (InetSocketAddress) session
<a name="113" href="#113">113</a>                 .getAttribute(SslFilter.PEER_ADDRESS);
<a name="114" href="#114">114</a>         <strong class="jxr_keyword">if</strong> (peer == <strong class="jxr_keyword">null</strong>) {
<a name="115" href="#115">115</a>             sslEngine = ctx.createSSLEngine();
<a name="116" href="#116">116</a>         } <strong class="jxr_keyword">else</strong> {
<a name="117" href="#117">117</a>             sslEngine = ctx.createSSLEngine(peer.getHostName(), peer.getPort());
<a name="118" href="#118">118</a>         }
<a name="119" href="#119">119</a>         sslEngine.setUseClientMode(parent.isUseClientMode());
<a name="120" href="#120">120</a> 
<a name="121" href="#121">121</a>         <strong class="jxr_keyword">if</strong> (parent.isWantClientAuth()) {
<a name="122" href="#122">122</a>             sslEngine.setWantClientAuth(<strong class="jxr_keyword">true</strong>);
<a name="123" href="#123">123</a>         }
<a name="124" href="#124">124</a> 
<a name="125" href="#125">125</a>         <strong class="jxr_keyword">if</strong> (parent.isNeedClientAuth()) {
<a name="126" href="#126">126</a>             sslEngine.setNeedClientAuth(<strong class="jxr_keyword">true</strong>);
<a name="127" href="#127">127</a>         }
<a name="128" href="#128">128</a> 
<a name="129" href="#129">129</a>         <strong class="jxr_keyword">if</strong> (parent.getEnabledCipherSuites() != <strong class="jxr_keyword">null</strong>) {
<a name="130" href="#130">130</a>             sslEngine.setEnabledCipherSuites(parent.getEnabledCipherSuites());
<a name="131" href="#131">131</a>         }
<a name="132" href="#132">132</a> 
<a name="133" href="#133">133</a>         <strong class="jxr_keyword">if</strong> (parent.getEnabledProtocols() != <strong class="jxr_keyword">null</strong>) {
<a name="134" href="#134">134</a>             sslEngine.setEnabledProtocols(parent.getEnabledProtocols());
<a name="135" href="#135">135</a>         }
<a name="136" href="#136">136</a> 
<a name="137" href="#137">137</a>         sslEngine.beginHandshake();
<a name="138" href="#138">138</a>         handshakeStatus = sslEngine.getHandshakeStatus();
<a name="139" href="#139">139</a>         
<a name="140" href="#140">140</a>         handshakeComplete = false;
<a name="141" href="#141">141</a>         initialHandshakeComplete = false;
<a name="142" href="#142">142</a>         writingEncryptedData = false;
<a name="143" href="#143">143</a>     }
<a name="144" href="#144">144</a> 
<a name="145" href="#145">145</a>     <em class="jxr_javadoccomment">/**</em>
<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     * Release allocated buffers.</em>
<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">     */</em>
<a name="148" href="#148">148</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> destroy() {
<a name="149" href="#149">149</a>         <strong class="jxr_keyword">if</strong> (sslEngine == <strong class="jxr_keyword">null</strong>) {
<a name="150" href="#150">150</a>             <strong class="jxr_keyword">return</strong>;
<a name="151" href="#151">151</a>         }
<a name="152" href="#152">152</a> 
<a name="153" href="#153">153</a>         <em class="jxr_comment">// Close inbound and flush all remaining data if available.</em>
<a name="154" href="#154">154</a>         <strong class="jxr_keyword">try</strong> {
<a name="155" href="#155">155</a>             sslEngine.closeInbound();
<a name="156" href="#156">156</a>         } <strong class="jxr_keyword">catch</strong> (SSLException e) {
<a name="157" href="#157">157</a>             logger.debug(
<a name="158" href="#158">158</a>                     <span class="jxr_string">"Unexpected exception from SSLEngine.closeInbound()."</span>, e);
<a name="159" href="#159">159</a>         }
<a name="160" href="#160">160</a> 
<a name="161" href="#161">161</a>         
<a name="162" href="#162">162</a>         <strong class="jxr_keyword">if</strong> (outNetBuffer != <strong class="jxr_keyword">null</strong>) {
<a name="163" href="#163">163</a>             outNetBuffer.capacity(sslEngine.getSession().getPacketBufferSize());
<a name="164" href="#164">164</a>         } <strong class="jxr_keyword">else</strong> {
<a name="165" href="#165">165</a>             createOutNetBuffer(0);
<a name="166" href="#166">166</a>         }
<a name="167" href="#167">167</a>         <strong class="jxr_keyword">try</strong> {
<a name="168" href="#168">168</a>             <strong class="jxr_keyword">do</strong> {
<a name="169" href="#169">169</a>                 outNetBuffer.clear();
<a name="170" href="#170">170</a>             } <strong class="jxr_keyword">while</strong> (sslEngine.wrap(emptyBuffer.buf(), outNetBuffer.buf()).bytesProduced() &gt; 0);
<a name="171" href="#171">171</a>         } <strong class="jxr_keyword">catch</strong> (SSLException e) {
<a name="172" href="#172">172</a>             <em class="jxr_comment">// Ignore.</em>
<a name="173" href="#173">173</a>         } <strong class="jxr_keyword">finally</strong> {
<a name="174" href="#174">174</a>             destroyOutNetBuffer();
<a name="175" href="#175">175</a>         }
<a name="176" href="#176">176</a> 
<a name="177" href="#177">177</a>         sslEngine.closeOutbound();
<a name="178" href="#178">178</a>         sslEngine = <strong class="jxr_keyword">null</strong>;
<a name="179" href="#179">179</a> 
<a name="180" href="#180">180</a>         preHandshakeEventQueue.clear();
<a name="181" href="#181">181</a>     }
<a name="182" href="#182">182</a> 
<a name="183" href="#183">183</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> destroyOutNetBuffer() {
<a name="184" href="#184">184</a>         outNetBuffer.free();
<a name="185" href="#185">185</a>         outNetBuffer = <strong class="jxr_keyword">null</strong>;
<a name="186" href="#186">186</a>     }
<a name="187" href="#187">187</a> 
<a name="188" href="#188">188</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslFilter.html">SslFilter</a> getParent() {
<a name="189" href="#189">189</a>         <strong class="jxr_keyword">return</strong> parent;
<a name="190" href="#190">190</a>     }
<a name="191" href="#191">191</a> 
<a name="192" href="#192">192</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> getSession() {
<a name="193" href="#193">193</a>         <strong class="jxr_keyword">return</strong> session;
<a name="194" href="#194">194</a>     }
<a name="195" href="#195">195</a> 
<a name="196" href="#196">196</a>     <em class="jxr_javadoccomment">/**</em>
<a name="197" href="#197">197</a> <em class="jxr_javadoccomment">     * Check we are writing encrypted data.</em>
<a name="198" href="#198">198</a> <em class="jxr_javadoccomment">     */</em>
<a name="199" href="#199">199</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isWritingEncryptedData() {
<a name="200" href="#200">200</a>         <strong class="jxr_keyword">return</strong> writingEncryptedData;
<a name="201" href="#201">201</a>     }
<a name="202" href="#202">202</a> 
<a name="203" href="#203">203</a>     <em class="jxr_javadoccomment">/**</em>
<a name="204" href="#204">204</a> <em class="jxr_javadoccomment">     * Check if handshake is completed.</em>
<a name="205" href="#205">205</a> <em class="jxr_javadoccomment">     */</em>
<a name="206" href="#206">206</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isHandshakeComplete() {
<a name="207" href="#207">207</a>         <strong class="jxr_keyword">return</strong> handshakeComplete;
<a name="208" href="#208">208</a>     }
<a name="209" href="#209">209</a> 
<a name="210" href="#210">210</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isInboundDone() {
<a name="211" href="#211">211</a>         <strong class="jxr_keyword">return</strong> sslEngine == <strong class="jxr_keyword">null</strong> || sslEngine.isInboundDone();
<a name="212" href="#212">212</a>     }
<a name="213" href="#213">213</a> 
<a name="214" href="#214">214</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isOutboundDone() {
<a name="215" href="#215">215</a>         <strong class="jxr_keyword">return</strong> sslEngine == <strong class="jxr_keyword">null</strong> || sslEngine.isOutboundDone();
<a name="216" href="#216">216</a>     }
<a name="217" href="#217">217</a> 
<a name="218" href="#218">218</a>     <em class="jxr_javadoccomment">/**</em>
<a name="219" href="#219">219</a> <em class="jxr_javadoccomment">     * Check if there is any need to complete handshake.</em>
<a name="220" href="#220">220</a> <em class="jxr_javadoccomment">     */</em>
<a name="221" href="#221">221</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> needToCompleteHandshake() {
<a name="222" href="#222">222</a>         <strong class="jxr_keyword">return</strong> handshakeStatus == SSLEngineResult.HandshakeStatus.NEED_WRAP &amp;&amp; !isInboundDone();
<a name="223" href="#223">223</a>     }
<a name="224" href="#224">224</a> 
<a name="225" href="#225">225</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> schedulePreHandshakeWriteRequest(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter,
<a name="226" href="#226">226</a>                                                  <a href="../../../../../org/apache/mina/common/WriteRequest.html">WriteRequest</a> writeRequest) {
<a name="227" href="#227">227</a>         preHandshakeEventQueue.add(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/common/IoFilterEvent.html">IoFilterEvent</a>(nextFilter,
<a name="228" href="#228">228</a>                 IoEventType.WRITE, session, writeRequest));
<a name="229" href="#229">229</a>     }
<a name="230" href="#230">230</a> 
<a name="231" href="#231">231</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> flushPreHandshakeEvents() <strong class="jxr_keyword">throws</strong> SSLException {
<a name="232" href="#232">232</a>         <a href="../../../../../org/apache/mina/common/IoFilterEvent.html">IoFilterEvent</a> scheduledWrite;
<a name="233" href="#233">233</a> 
<a name="234" href="#234">234</a>         <strong class="jxr_keyword">while</strong> ((scheduledWrite = preHandshakeEventQueue.poll()) != <strong class="jxr_keyword">null</strong>) {
<a name="235" href="#235">235</a>             parent.filterWrite(scheduledWrite.getNextFilter(), session,
<a name="236" href="#236">236</a>                     (<a href="../../../../../org/apache/mina/common/WriteRequest.html">WriteRequest</a>) scheduledWrite.getParameter());
<a name="237" href="#237">237</a>         }
<a name="238" href="#238">238</a>     }
<a name="239" href="#239">239</a> 
<a name="240" href="#240">240</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> scheduleFilterWrite(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter, <a href="../../../../../org/apache/mina/common/WriteRequest.html">WriteRequest</a> writeRequest) {
<a name="241" href="#241">241</a>         filterWriteEventQueue.add(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/common/IoFilterEvent.html">IoFilterEvent</a>(nextFilter, IoEventType.WRITE, session, writeRequest));
<a name="242" href="#242">242</a>     }
<a name="243" href="#243">243</a> 
<a name="244" href="#244">244</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> scheduleMessageReceived(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter, Object message) {
<a name="245" href="#245">245</a>         messageReceivedEventQueue.add(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/common/IoFilterEvent.html">IoFilterEvent</a>(nextFilter, IoEventType.MESSAGE_RECEIVED, session, message));
<a name="246" href="#246">246</a>     }
<a name="247" href="#247">247</a> 
<a name="248" href="#248">248</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> flushScheduledEvents() {
<a name="249" href="#249">249</a>         <em class="jxr_comment">// Fire events only when no lock is hold for this handler.</em>
<a name="250" href="#250">250</a>         <strong class="jxr_keyword">if</strong> (Thread.holdsLock(<strong class="jxr_keyword">this</strong>)) {
<a name="251" href="#251">251</a>             <strong class="jxr_keyword">return</strong>;
<a name="252" href="#252">252</a>         }
<a name="253" href="#253">253</a> 
<a name="254" href="#254">254</a>         <a href="../../../../../org/apache/mina/common/IoFilterEvent.html">IoFilterEvent</a> e;
<a name="255" href="#255">255</a> 
<a name="256" href="#256">256</a>         <em class="jxr_comment">// We need synchronization here inevitably because filterWrite can be</em>
<a name="257" href="#257">257</a>         <em class="jxr_comment">// called simultaneously and cause 'bad record MAC' integrity error.</em>
<a name="258" href="#258">258</a>         <strong class="jxr_keyword">synchronized</strong> (<strong class="jxr_keyword">this</strong>) {
<a name="259" href="#259">259</a>             <strong class="jxr_keyword">while</strong> ((e = filterWriteEventQueue.poll()) != <strong class="jxr_keyword">null</strong>) {
<a name="260" href="#260">260</a>                 e.getNextFilter().filterWrite(session, (WriteRequest) e.getParameter());
<a name="261" href="#261">261</a>             }
<a name="262" href="#262">262</a>         }
<a name="263" href="#263">263</a> 
<a name="264" href="#264">264</a>         <strong class="jxr_keyword">while</strong> ((e = messageReceivedEventQueue.poll()) != <strong class="jxr_keyword">null</strong>) {
<a name="265" href="#265">265</a>             e.getNextFilter().messageReceived(session, e.getParameter());
<a name="266" href="#266">266</a>         }
<a name="267" href="#267">267</a>     }
<a name="268" href="#268">268</a> 
<a name="269" href="#269">269</a>     <em class="jxr_javadoccomment">/**</em>
<a name="270" href="#270">270</a> <em class="jxr_javadoccomment">     * Call when data read from net. Will perform inial hanshake or decrypt provided</em>
<a name="271" href="#271">271</a> <em class="jxr_javadoccomment">     * Buffer.</em>
<a name="272" href="#272">272</a> <em class="jxr_javadoccomment">     * Decrytpted data reurned by getAppBuffer(), if any.</em>
<a name="273" href="#273">273</a> <em class="jxr_javadoccomment">     *</em>
<a name="274" href="#274">274</a> <em class="jxr_javadoccomment">     * @param buf        buffer to decrypt</em>
<a name="275" href="#275">275</a> <em class="jxr_javadoccomment">     * @param nextFilter Next filter in chain</em>
<a name="276" href="#276">276</a> <em class="jxr_javadoccomment">     * @throws SSLException on errors</em>
<a name="277" href="#277">277</a> <em class="jxr_javadoccomment">     */</em>
<a name="278" href="#278">278</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> messageReceived(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter, ByteBuffer buf) <strong class="jxr_keyword">throws</strong> SSLException {
<a name="279" href="#279">279</a>         <em class="jxr_comment">// append buf to inNetBuffer</em>
<a name="280" href="#280">280</a>         <strong class="jxr_keyword">if</strong> (inNetBuffer == <strong class="jxr_keyword">null</strong>) {
<a name="281" href="#281">281</a>             inNetBuffer = IoBuffer.allocate(buf.remaining()).setAutoExpand(<strong class="jxr_keyword">true</strong>);
<a name="282" href="#282">282</a>         }
<a name="283" href="#283">283</a>         
<a name="284" href="#284">284</a>         inNetBuffer.put(buf);
<a name="285" href="#285">285</a>         <strong class="jxr_keyword">if</strong> (!handshakeComplete) {
<a name="286" href="#286">286</a>             handshake(nextFilter);
<a name="287" href="#287">287</a>         } <strong class="jxr_keyword">else</strong> {
<a name="288" href="#288">288</a>             decrypt(nextFilter);
<a name="289" href="#289">289</a>         }
<a name="290" href="#290">290</a> 
<a name="291" href="#291">291</a>         <strong class="jxr_keyword">if</strong> (isInboundDone()) {
<a name="292" href="#292">292</a>             <em class="jxr_comment">// Rewind the MINA buffer if not all data is processed and inbound is finished.</em>
<a name="293" href="#293">293</a>             <strong class="jxr_keyword">int</strong> inNetBufferPosition = inNetBuffer == <strong class="jxr_keyword">null</strong>? 0 : inNetBuffer.position();
<a name="294" href="#294">294</a>             buf.position(buf.position() - inNetBufferPosition);
<a name="295" href="#295">295</a>             inNetBuffer = <strong class="jxr_keyword">null</strong>;
<a name="296" href="#296">296</a>         }
<a name="297" href="#297">297</a>     }
<a name="298" href="#298">298</a> 
<a name="299" href="#299">299</a>     <em class="jxr_javadoccomment">/**</em>
<a name="300" href="#300">300</a> <em class="jxr_javadoccomment">     * Get decrypted application data.</em>
<a name="301" href="#301">301</a> <em class="jxr_javadoccomment">     *</em>
<a name="302" href="#302">302</a> <em class="jxr_javadoccomment">     * @return buffer with data</em>
<a name="303" href="#303">303</a> <em class="jxr_javadoccomment">     */</em>
<a name="304" href="#304">304</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> fetchAppBuffer() {
<a name="305" href="#305">305</a>         <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> appBuffer = <strong class="jxr_keyword">this</strong>.appBuffer.flip();
<a name="306" href="#306">306</a>         <strong class="jxr_keyword">this</strong>.appBuffer = <strong class="jxr_keyword">null</strong>;
<a name="307" href="#307">307</a>         <strong class="jxr_keyword">return</strong> appBuffer;
<a name="308" href="#308">308</a>     }
<a name="309" href="#309">309</a> 
<a name="310" href="#310">310</a>     <em class="jxr_javadoccomment">/**</em>
<a name="311" href="#311">311</a> <em class="jxr_javadoccomment">     * Get encrypted data to be sent.</em>
<a name="312" href="#312">312</a> <em class="jxr_javadoccomment">     *</em>
<a name="313" href="#313">313</a> <em class="jxr_javadoccomment">     * @return buffer with data</em>
<a name="314" href="#314">314</a> <em class="jxr_javadoccomment">     */</em>
<a name="315" href="#315">315</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> fetchOutNetBuffer() {
<a name="316" href="#316">316</a>         <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> answer = outNetBuffer;
<a name="317" href="#317">317</a>         <strong class="jxr_keyword">if</strong> (answer == <strong class="jxr_keyword">null</strong>) {
<a name="318" href="#318">318</a>             <strong class="jxr_keyword">return</strong> emptyBuffer;
<a name="319" href="#319">319</a>         }
<a name="320" href="#320">320</a>         
<a name="321" href="#321">321</a>         outNetBuffer = <strong class="jxr_keyword">null</strong>;
<a name="322" href="#322">322</a>         <strong class="jxr_keyword">return</strong> answer.shrink();
<a name="323" href="#323">323</a>     }
<a name="324" href="#324">324</a> 
<a name="325" href="#325">325</a>     <em class="jxr_javadoccomment">/**</em>
<a name="326" href="#326">326</a> <em class="jxr_javadoccomment">     * Encrypt provided buffer. Encytpted data reurned by getOutNetBuffer().</em>
<a name="327" href="#327">327</a> <em class="jxr_javadoccomment">     *</em>
<a name="328" href="#328">328</a> <em class="jxr_javadoccomment">     * @param src data to encrypt</em>
<a name="329" href="#329">329</a> <em class="jxr_javadoccomment">     * @throws SSLException on errors</em>
<a name="330" href="#330">330</a> <em class="jxr_javadoccomment">     */</em>
<a name="331" href="#331">331</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> encrypt(ByteBuffer src) <strong class="jxr_keyword">throws</strong> SSLException {
<a name="332" href="#332">332</a>         <strong class="jxr_keyword">if</strong> (!handshakeComplete) {
<a name="333" href="#333">333</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException();
<a name="334" href="#334">334</a>         }
<a name="335" href="#335">335</a>         
<a name="336" href="#336">336</a>         <strong class="jxr_keyword">if</strong> (!src.hasRemaining()) {
<a name="337" href="#337">337</a>             <strong class="jxr_keyword">if</strong> (outNetBuffer == <strong class="jxr_keyword">null</strong>) {
<a name="338" href="#338">338</a>                 outNetBuffer = emptyBuffer;
<a name="339" href="#339">339</a>             }
<a name="340" href="#340">340</a>             <strong class="jxr_keyword">return</strong>;
<a name="341" href="#341">341</a>         }
<a name="342" href="#342">342</a> 
<a name="343" href="#343">343</a>         createOutNetBuffer(src.remaining());
<a name="344" href="#344">344</a> 
<a name="345" href="#345">345</a>         <em class="jxr_comment">// Loop until there is no more data in src</em>
<a name="346" href="#346">346</a>         <strong class="jxr_keyword">while</strong> (src.hasRemaining()) {
<a name="347" href="#347">347</a> 
<a name="348" href="#348">348</a>             SSLEngineResult result = sslEngine.wrap(src, outNetBuffer.buf());
<a name="349" href="#349">349</a>             <strong class="jxr_keyword">if</strong> (result.getStatus() == SSLEngineResult.Status.OK) {
<a name="350" href="#350">350</a>                 <strong class="jxr_keyword">if</strong> (result.getHandshakeStatus() == SSLEngineResult.HandshakeStatus.NEED_TASK) {
<a name="351" href="#351">351</a>                     doTasks();
<a name="352" href="#352">352</a>                 }
<a name="353" href="#353">353</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (result.getStatus() == SSLEngineResult.Status.BUFFER_OVERFLOW) {
<a name="354" href="#354">354</a>                 outNetBuffer.capacity(outNetBuffer.capacity() &lt;&lt; 1);
<a name="355" href="#355">355</a>                 outNetBuffer.limit(outNetBuffer.capacity());
<a name="356" href="#356">356</a>             } <strong class="jxr_keyword">else</strong> {
<a name="357" href="#357">357</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> SSLException(<span class="jxr_string">"SSLEngine error during encrypt: "</span>
<a name="358" href="#358">358</a>                         + result.getStatus() + <span class="jxr_string">" src: "</span> + src
<a name="359" href="#359">359</a>                         + <span class="jxr_string">"outNetBuffer: "</span> + outNetBuffer);
<a name="360" href="#360">360</a>             }
<a name="361" href="#361">361</a>         }
<a name="362" href="#362">362</a> 
<a name="363" href="#363">363</a>         outNetBuffer.flip();
<a name="364" href="#364">364</a>     }
<a name="365" href="#365">365</a> 
<a name="366" href="#366">366</a>     <em class="jxr_javadoccomment">/**</em>
<a name="367" href="#367">367</a> <em class="jxr_javadoccomment">     * Start SSL shutdown process.</em>
<a name="368" href="#368">368</a> <em class="jxr_javadoccomment">     *</em>
<a name="369" href="#369">369</a> <em class="jxr_javadoccomment">     * @return &lt;tt&gt;true&lt;/tt&gt; if shutdown process is started.</em>
<a name="370" href="#370">370</a> <em class="jxr_javadoccomment">     *         &lt;tt&gt;false&lt;/tt&gt; if shutdown process is already finished.</em>
<a name="371" href="#371">371</a> <em class="jxr_javadoccomment">     * @throws SSLException on errors</em>
<a name="372" href="#372">372</a> <em class="jxr_javadoccomment">     */</em>
<a name="373" href="#373">373</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> closeOutbound() <strong class="jxr_keyword">throws</strong> SSLException {
<a name="374" href="#374">374</a>         <strong class="jxr_keyword">if</strong> (sslEngine == <strong class="jxr_keyword">null</strong> || sslEngine.isOutboundDone()) {
<a name="375" href="#375">375</a>             <strong class="jxr_keyword">return</strong> false;
<a name="376" href="#376">376</a>         }
<a name="377" href="#377">377</a> 
<a name="378" href="#378">378</a>         sslEngine.closeOutbound();
<a name="379" href="#379">379</a> 
<a name="380" href="#380">380</a>         createOutNetBuffer(0);
<a name="381" href="#381">381</a>         SSLEngineResult result;
<a name="382" href="#382">382</a>         <strong class="jxr_keyword">for</strong> (;;) {
<a name="383" href="#383">383</a>             result = sslEngine.wrap(emptyBuffer.buf(), outNetBuffer.buf());
<a name="384" href="#384">384</a>             <strong class="jxr_keyword">if</strong> (result.getStatus() == SSLEngineResult.Status.BUFFER_OVERFLOW) {
<a name="385" href="#385">385</a>                 outNetBuffer.capacity(outNetBuffer.capacity() &lt;&lt; 1);
<a name="386" href="#386">386</a>                 outNetBuffer.limit(outNetBuffer.capacity());
<a name="387" href="#387">387</a>             } <strong class="jxr_keyword">else</strong> {
<a name="388" href="#388">388</a>                 <strong class="jxr_keyword">break</strong>;
<a name="389" href="#389">389</a>             }
<a name="390" href="#390">390</a>         }
<a name="391" href="#391">391</a> 
<a name="392" href="#392">392</a>         <strong class="jxr_keyword">if</strong> (result.getStatus() != SSLEngineResult.Status.CLOSED) {
<a name="393" href="#393">393</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> SSLException(<span class="jxr_string">"Improper close state: "</span> + result);
<a name="394" href="#394">394</a>         }
<a name="395" href="#395">395</a>         outNetBuffer.flip();
<a name="396" href="#396">396</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="397" href="#397">397</a>     }
<a name="398" href="#398">398</a> 
<a name="399" href="#399">399</a>     <em class="jxr_javadoccomment">/**</em>
<a name="400" href="#400">400</a> <em class="jxr_javadoccomment">     * Decrypt in net buffer. Result is stored in app buffer.</em>
<a name="401" href="#401">401</a> <em class="jxr_javadoccomment">     *</em>
<a name="402" href="#402">402</a> <em class="jxr_javadoccomment">     * @throws SSLException</em>
<a name="403" href="#403">403</a> <em class="jxr_javadoccomment">     */</em>
<a name="404" href="#404">404</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> decrypt(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter) <strong class="jxr_keyword">throws</strong> SSLException {
<a name="405" href="#405">405</a> 
<a name="406" href="#406">406</a>         <strong class="jxr_keyword">if</strong> (!handshakeComplete) {
<a name="407" href="#407">407</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException();
<a name="408" href="#408">408</a>         }
<a name="409" href="#409">409</a> 
<a name="410" href="#410">410</a>         unwrap(nextFilter);
<a name="411" href="#411">411</a>     }
<a name="412" href="#412">412</a> 
<a name="413" href="#413">413</a>     <em class="jxr_javadoccomment">/**</em>
<a name="414" href="#414">414</a> <em class="jxr_javadoccomment">     * @param res</em>
<a name="415" href="#415">415</a> <em class="jxr_javadoccomment">     * @throws SSLException</em>
<a name="416" href="#416">416</a> <em class="jxr_javadoccomment">     */</em>
<a name="417" href="#417">417</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkStatus(SSLEngineResult res)
<a name="418" href="#418">418</a>             <strong class="jxr_keyword">throws</strong> SSLException {
<a name="419" href="#419">419</a> 
<a name="420" href="#420">420</a>         SSLEngineResult.Status status = res.getStatus();
<a name="421" href="#421">421</a> 
<a name="422" href="#422">422</a>         <em class="jxr_comment">/*</em>
<a name="423" href="#423">423</a> <em class="jxr_comment">        * The status may be:</em>
<a name="424" href="#424">424</a> <em class="jxr_comment">        * OK - Normal operation</em>
<a name="425" href="#425">425</a> <em class="jxr_comment">        * OVERFLOW - Should never happen since the application buffer is</em>
<a name="426" href="#426">426</a> <em class="jxr_comment">        *      sized to hold the maximum packet size.</em>
<a name="427" href="#427">427</a> <em class="jxr_comment">        * UNDERFLOW - Need to read more data from the socket. It's normal.</em>
<a name="428" href="#428">428</a> <em class="jxr_comment">        * CLOSED - The other peer closed the socket. Also normal.</em>
<a name="429" href="#429">429</a> <em class="jxr_comment">        */</em>
<a name="430" href="#430">430</a>         <strong class="jxr_keyword">if</strong> (status != SSLEngineResult.Status.OK
<a name="431" href="#431">431</a>                 &amp;&amp; status != SSLEngineResult.Status.CLOSED
<a name="432" href="#432">432</a>                 &amp;&amp; status != SSLEngineResult.Status.BUFFER_UNDERFLOW) {
<a name="433" href="#433">433</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> SSLException(<span class="jxr_string">"SSLEngine error during decrypt: "</span> + status
<a name="434" href="#434">434</a>                     + <span class="jxr_string">" inNetBuffer: "</span> + inNetBuffer + <span class="jxr_string">"appBuffer: "</span>
<a name="435" href="#435">435</a>                     + appBuffer);
<a name="436" href="#436">436</a>         }
<a name="437" href="#437">437</a>     }
<a name="438" href="#438">438</a> 
<a name="439" href="#439">439</a>     <em class="jxr_javadoccomment">/**</em>
<a name="440" href="#440">440</a> <em class="jxr_javadoccomment">     * Perform any handshaking processing.</em>
<a name="441" href="#441">441</a> <em class="jxr_javadoccomment">     */</em>
<a name="442" href="#442">442</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> handshake(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter) <strong class="jxr_keyword">throws</strong> SSLException {
<a name="443" href="#443">443</a>         <strong class="jxr_keyword">for</strong> (; ;) {
<a name="444" href="#444">444</a>             <strong class="jxr_keyword">if</strong> (handshakeStatus == SSLEngineResult.HandshakeStatus.FINISHED) {
<a name="445" href="#445">445</a>                 session.setAttribute(
<a name="446" href="#446">446</a>                         SslFilter.SSL_SESSION, sslEngine.getSession());
<a name="447" href="#447">447</a>                 handshakeComplete = <strong class="jxr_keyword">true</strong>;
<a name="448" href="#448">448</a>                 <strong class="jxr_keyword">if</strong> (!initialHandshakeComplete
<a name="449" href="#449">449</a>                         &amp;&amp; session.containsAttribute(SslFilter.USE_NOTIFICATION)) {
<a name="450" href="#450">450</a>                     <em class="jxr_comment">// SESSION_SECURED is fired only when it's the first handshake.</em>
<a name="451" href="#451">451</a>                     <em class="jxr_comment">// (i.e. renegotiation shouldn't trigger SESSION_SECURED.)</em>
<a name="452" href="#452">452</a>                     initialHandshakeComplete = <strong class="jxr_keyword">true</strong>;
<a name="453" href="#453">453</a>                     scheduleMessageReceived(nextFilter,
<a name="454" href="#454">454</a>                             SslFilter.SESSION_SECURED);
<a name="455" href="#455">455</a>                 }
<a name="456" href="#456">456</a>                 <strong class="jxr_keyword">break</strong>;
<a name="457" href="#457">457</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (handshakeStatus == SSLEngineResult.HandshakeStatus.NEED_TASK) {
<a name="458" href="#458">458</a>                 handshakeStatus = doTasks();
<a name="459" href="#459">459</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (handshakeStatus == SSLEngineResult.HandshakeStatus.NEED_UNWRAP) {
<a name="460" href="#460">460</a>                 <em class="jxr_comment">// we need more data read</em>
<a name="461" href="#461">461</a>                 SSLEngineResult.Status status = unwrapHandshake(nextFilter);
<a name="462" href="#462">462</a>                 <strong class="jxr_keyword">if</strong> (status == SSLEngineResult.Status.BUFFER_UNDERFLOW
<a name="463" href="#463">463</a>                         || isInboundDone()) {
<a name="464" href="#464">464</a>                     <em class="jxr_comment">// We need more data or the session is closed</em>
<a name="465" href="#465">465</a>                     <strong class="jxr_keyword">break</strong>;
<a name="466" href="#466">466</a>                 }
<a name="467" href="#467">467</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (handshakeStatus == SSLEngineResult.HandshakeStatus.NEED_WRAP) {
<a name="468" href="#468">468</a>                 <em class="jxr_comment">// First make sure that the out buffer is completely empty. Since we</em>
<a name="469" href="#469">469</a>                 <em class="jxr_comment">// cannot call wrap with data left on the buffer</em>
<a name="470" href="#470">470</a>                 <strong class="jxr_keyword">if</strong> (outNetBuffer != <strong class="jxr_keyword">null</strong> &amp;&amp; outNetBuffer.hasRemaining()) {
<a name="471" href="#471">471</a>                     <strong class="jxr_keyword">break</strong>;
<a name="472" href="#472">472</a>                 }
<a name="473" href="#473">473</a>                 
<a name="474" href="#474">474</a>                 SSLEngineResult result;
<a name="475" href="#475">475</a>                 createOutNetBuffer(0);
<a name="476" href="#476">476</a>                 <strong class="jxr_keyword">for</strong> (;;) {
<a name="477" href="#477">477</a>                     result = sslEngine.wrap(emptyBuffer.buf(), outNetBuffer.buf());
<a name="478" href="#478">478</a>                     <strong class="jxr_keyword">if</strong> (result.getStatus() == SSLEngineResult.Status.BUFFER_OVERFLOW) {
<a name="479" href="#479">479</a>                         outNetBuffer.capacity(outNetBuffer.capacity() &lt;&lt; 1);
<a name="480" href="#480">480</a>                         outNetBuffer.limit(outNetBuffer.capacity());
<a name="481" href="#481">481</a>                     } <strong class="jxr_keyword">else</strong> {
<a name="482" href="#482">482</a>                         <strong class="jxr_keyword">break</strong>;
<a name="483" href="#483">483</a>                     }
<a name="484" href="#484">484</a>                 }
<a name="485" href="#485">485</a> 
<a name="486" href="#486">486</a>                 outNetBuffer.flip();
<a name="487" href="#487">487</a>                 handshakeStatus = result.getHandshakeStatus();
<a name="488" href="#488">488</a>                 writeNetBuffer(nextFilter);
<a name="489" href="#489">489</a>             } <strong class="jxr_keyword">else</strong> {
<a name="490" href="#490">490</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"Invalid Handshaking State"</span>
<a name="491" href="#491">491</a>                         + handshakeStatus);
<a name="492" href="#492">492</a>             }
<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>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createOutNetBuffer(<strong class="jxr_keyword">int</strong> expectedRemaining) {
<a name="497" href="#497">497</a>         <em class="jxr_comment">// SSLEngine requires us to allocate unnecessarily big buffer</em>
<a name="498" href="#498">498</a>         <em class="jxr_comment">// even for small data.  *Shrug*</em>
<a name="499" href="#499">499</a>         <strong class="jxr_keyword">int</strong> capacity = Math.max(
<a name="500" href="#500">500</a>                 expectedRemaining,
<a name="501" href="#501">501</a>                 sslEngine.getSession().getPacketBufferSize());
<a name="502" href="#502">502</a>         
<a name="503" href="#503">503</a>         <strong class="jxr_keyword">if</strong> (outNetBuffer != <strong class="jxr_keyword">null</strong>) {
<a name="504" href="#504">504</a>             outNetBuffer.capacity(capacity);
<a name="505" href="#505">505</a>         } <strong class="jxr_keyword">else</strong> {
<a name="506" href="#506">506</a>             outNetBuffer = IoBuffer.allocate(capacity).minimumCapacity(0);
<a name="507" href="#507">507</a>         }
<a name="508" href="#508">508</a>     }
<a name="509" href="#509">509</a> 
<a name="510" href="#510">510</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/common/WriteFuture.html">WriteFuture</a> writeNetBuffer(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter)
<a name="511" href="#511">511</a>             <strong class="jxr_keyword">throws</strong> SSLException {
<a name="512" href="#512">512</a>         <em class="jxr_comment">// Check if any net data needed to be writen</em>
<a name="513" href="#513">513</a>         <strong class="jxr_keyword">if</strong> (outNetBuffer == <strong class="jxr_keyword">null</strong> || !outNetBuffer.hasRemaining()) {
<a name="514" href="#514">514</a>             <em class="jxr_comment">// no; bail out</em>
<a name="515" href="#515">515</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="516" href="#516">516</a>         }
<a name="517" href="#517">517</a> 
<a name="518" href="#518">518</a>         <em class="jxr_comment">// set flag that we are writing encrypted data</em>
<a name="519" href="#519">519</a>         <em class="jxr_comment">// (used in SSLFilter.filterWrite())</em>
<a name="520" href="#520">520</a>         writingEncryptedData = <strong class="jxr_keyword">true</strong>;
<a name="521" href="#521">521</a> 
<a name="522" href="#522">522</a>         <em class="jxr_comment">// write net data</em>
<a name="523" href="#523">523</a>         <a href="../../../../../org/apache/mina/common/WriteFuture.html">WriteFuture</a> writeFuture = <strong class="jxr_keyword">null</strong>;
<a name="524" href="#524">524</a> 
<a name="525" href="#525">525</a>         <strong class="jxr_keyword">try</strong> {
<a name="526" href="#526">526</a>             <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> writeBuffer = fetchOutNetBuffer();
<a name="527" href="#527">527</a>             writeFuture = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/common/DefaultWriteFuture.html">DefaultWriteFuture</a>(session);
<a name="528" href="#528">528</a>             parent.filterWrite(nextFilter, session, <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/common/DefaultWriteRequest.html">DefaultWriteRequest</a>(
<a name="529" href="#529">529</a>                     writeBuffer, writeFuture));
<a name="530" href="#530">530</a> 
<a name="531" href="#531">531</a>             <em class="jxr_comment">// loop while more writes required to complete handshake</em>
<a name="532" href="#532">532</a>             <strong class="jxr_keyword">while</strong> (needToCompleteHandshake()) {
<a name="533" href="#533">533</a>                 <strong class="jxr_keyword">try</strong> {
<a name="534" href="#534">534</a>                     handshake(nextFilter);
<a name="535" href="#535">535</a>                 } <strong class="jxr_keyword">catch</strong> (SSLException ssle) {
<a name="536" href="#536">536</a>                     SSLException newSsle = <strong class="jxr_keyword">new</strong> SSLHandshakeException(
<a name="537" href="#537">537</a>                             <span class="jxr_string">"SSL handshake failed."</span>);
<a name="538" href="#538">538</a>                     newSsle.initCause(ssle);
<a name="539" href="#539">539</a>                     <strong class="jxr_keyword">throw</strong> newSsle;
<a name="540" href="#540">540</a>                 }
<a name="541" href="#541">541</a>                 
<a name="542" href="#542">542</a>                 <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> outNetBuffer = fetchOutNetBuffer();
<a name="543" href="#543">543</a>                 <strong class="jxr_keyword">if</strong> (outNetBuffer != <strong class="jxr_keyword">null</strong> &amp;&amp; outNetBuffer.hasRemaining()) {
<a name="544" href="#544">544</a>                     writeFuture = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/common/DefaultWriteFuture.html">DefaultWriteFuture</a>(session);
<a name="545" href="#545">545</a>                     parent.filterWrite(nextFilter, session,
<a name="546" href="#546">546</a>                             <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/common/DefaultWriteRequest.html">DefaultWriteRequest</a>(outNetBuffer, writeFuture));
<a name="547" href="#547">547</a>                 }
<a name="548" href="#548">548</a>             }
<a name="549" href="#549">549</a>         } <strong class="jxr_keyword">finally</strong> {
<a name="550" href="#550">550</a>             writingEncryptedData = false;
<a name="551" href="#551">551</a>         }
<a name="552" href="#552">552</a> 
<a name="553" href="#553">553</a>         <strong class="jxr_keyword">return</strong> writeFuture;
<a name="554" href="#554">554</a>     }
<a name="555" href="#555">555</a> 
<a name="556" href="#556">556</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> unwrap(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter) <strong class="jxr_keyword">throws</strong> SSLException {
<a name="557" href="#557">557</a>         <em class="jxr_comment">// Prepare the net data for reading.</em>
<a name="558" href="#558">558</a>         <strong class="jxr_keyword">if</strong> (inNetBuffer != <strong class="jxr_keyword">null</strong>) {
<a name="559" href="#559">559</a>             inNetBuffer.flip();
<a name="560" href="#560">560</a>         }
<a name="561" href="#561">561</a> 
<a name="562" href="#562">562</a>         <strong class="jxr_keyword">if</strong> (inNetBuffer == <strong class="jxr_keyword">null</strong> || !inNetBuffer.hasRemaining()) {
<a name="563" href="#563">563</a>             <strong class="jxr_keyword">return</strong>;
<a name="564" href="#564">564</a>         }
<a name="565" href="#565">565</a> 
<a name="566" href="#566">566</a>         SSLEngineResult res = unwrap0();
<a name="567" href="#567">567</a> 
<a name="568" href="#568">568</a>         <em class="jxr_comment">// prepare to be written again</em>
<a name="569" href="#569">569</a>         <strong class="jxr_keyword">if</strong> (inNetBuffer.hasRemaining()) {
<a name="570" href="#570">570</a>             inNetBuffer.compact();
<a name="571" href="#571">571</a>         } <strong class="jxr_keyword">else</strong> {
<a name="572" href="#572">572</a>             inNetBuffer = <strong class="jxr_keyword">null</strong>;
<a name="573" href="#573">573</a>         }
<a name="574" href="#574">574</a> 
<a name="575" href="#575">575</a>         checkStatus(res);
<a name="576" href="#576">576</a> 
<a name="577" href="#577">577</a>         renegotiateIfNeeded(nextFilter, res);
<a name="578" href="#578">578</a>     }
<a name="579" href="#579">579</a> 
<a name="580" href="#580">580</a>     <strong class="jxr_keyword">private</strong> SSLEngineResult.Status unwrapHandshake(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter) <strong class="jxr_keyword">throws</strong> SSLException {
<a name="581" href="#581">581</a>         <em class="jxr_comment">// Prepare the net data for reading.</em>
<a name="582" href="#582">582</a>         <strong class="jxr_keyword">if</strong> (inNetBuffer != <strong class="jxr_keyword">null</strong>) {
<a name="583" href="#583">583</a>             inNetBuffer.flip();
<a name="584" href="#584">584</a>         }
<a name="585" href="#585">585</a>         
<a name="586" href="#586">586</a>         <strong class="jxr_keyword">if</strong> (inNetBuffer == <strong class="jxr_keyword">null</strong> || !inNetBuffer.hasRemaining()) {
<a name="587" href="#587">587</a>             <em class="jxr_comment">// Need more data.</em>
<a name="588" href="#588">588</a>             <strong class="jxr_keyword">return</strong> SSLEngineResult.Status.BUFFER_UNDERFLOW;
<a name="589" href="#589">589</a>         }
<a name="590" href="#590">590</a> 
<a name="591" href="#591">591</a>         SSLEngineResult res = unwrap0();
<a name="592" href="#592">592</a>         handshakeStatus = res.getHandshakeStatus();
<a name="593" href="#593">593</a> 
<a name="594" href="#594">594</a>         checkStatus(res);
<a name="595" href="#595">595</a> 
<a name="596" href="#596">596</a>         <em class="jxr_comment">// If handshake finished, no data was produced, and the status is still ok,</em>
<a name="597" href="#597">597</a>         <em class="jxr_comment">// try to unwrap more</em>
<a name="598" href="#598">598</a>         <strong class="jxr_keyword">if</strong> (handshakeStatus == SSLEngineResult.HandshakeStatus.FINISHED
<a name="599" href="#599">599</a>                 &amp;&amp; res.getStatus() == SSLEngineResult.Status.OK
<a name="600" href="#600">600</a>                 &amp;&amp; inNetBuffer.hasRemaining()) {
<a name="601" href="#601">601</a>             res = unwrap0();
<a name="602" href="#602">602</a> 
<a name="603" href="#603">603</a>             <em class="jxr_comment">// prepare to be written again</em>
<a name="604" href="#604">604</a>             <strong class="jxr_keyword">if</strong> (inNetBuffer.hasRemaining()) {
<a name="605" href="#605">605</a>                 inNetBuffer.compact();
<a name="606" href="#606">606</a>             } <strong class="jxr_keyword">else</strong> {
<a name="607" href="#607">607</a>                 inNetBuffer = <strong class="jxr_keyword">null</strong>;
<a name="608" href="#608">608</a>             }
<a name="609" href="#609">609</a> 
<a name="610" href="#610">610</a>             renegotiateIfNeeded(nextFilter, res);
<a name="611" href="#611">611</a>         } <strong class="jxr_keyword">else</strong> {
<a name="612" href="#612">612</a>             <em class="jxr_comment">// prepare to be written again</em>
<a name="613" href="#613">613</a>             <strong class="jxr_keyword">if</strong> (inNetBuffer.hasRemaining()) {
<a name="614" href="#614">614</a>                 inNetBuffer.compact();
<a name="615" href="#615">615</a>             } <strong class="jxr_keyword">else</strong> {
<a name="616" href="#616">616</a>                 inNetBuffer = <strong class="jxr_keyword">null</strong>;
<a name="617" href="#617">617</a>             }
<a name="618" href="#618">618</a>         }
<a name="619" href="#619">619</a> 
<a name="620" href="#620">620</a>         <strong class="jxr_keyword">return</strong> res.getStatus();
<a name="621" href="#621">621</a>     }
<a name="622" href="#622">622</a> 
<a name="623" href="#623">623</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> renegotiateIfNeeded(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter, SSLEngineResult res)
<a name="624" href="#624">624</a>             <strong class="jxr_keyword">throws</strong> SSLException {
<a name="625" href="#625">625</a>         <strong class="jxr_keyword">if</strong> (res.getStatus() != SSLEngineResult.Status.CLOSED
<a name="626" href="#626">626</a>                 &amp;&amp; res.getStatus() != SSLEngineResult.Status.BUFFER_UNDERFLOW
<a name="627" href="#627">627</a>                 &amp;&amp; res.getHandshakeStatus() != SSLEngineResult.HandshakeStatus.NOT_HANDSHAKING) {
<a name="628" href="#628">628</a>             <em class="jxr_comment">// Renegotiation required.</em>
<a name="629" href="#629">629</a>             handshakeComplete = false;
<a name="630" href="#630">630</a>             handshakeStatus = res.getHandshakeStatus();
<a name="631" href="#631">631</a>             handshake(nextFilter);
<a name="632" href="#632">632</a>         }
<a name="633" href="#633">633</a>     }
<a name="634" href="#634">634</a> 
<a name="635" href="#635">635</a>     <strong class="jxr_keyword">private</strong> SSLEngineResult unwrap0() <strong class="jxr_keyword">throws</strong> SSLException {
<a name="636" href="#636">636</a>         <strong class="jxr_keyword">if</strong> (appBuffer == <strong class="jxr_keyword">null</strong>) {
<a name="637" href="#637">637</a>             appBuffer = IoBuffer.allocate(inNetBuffer.remaining());
<a name="638" href="#638">638</a>         } <strong class="jxr_keyword">else</strong> {
<a name="639" href="#639">639</a>             appBuffer.expand(inNetBuffer.remaining());
<a name="640" href="#640">640</a>         }
<a name="641" href="#641">641</a>         
<a name="642" href="#642">642</a>         SSLEngineResult res;
<a name="643" href="#643">643</a>         <strong class="jxr_keyword">do</strong> {
<a name="644" href="#644">644</a>             res = sslEngine.unwrap(inNetBuffer.buf(), appBuffer.buf());
<a name="645" href="#645">645</a>             <strong class="jxr_keyword">if</strong> (res.getStatus() == SSLEngineResult.Status.BUFFER_OVERFLOW) {
<a name="646" href="#646">646</a>                 appBuffer.capacity(appBuffer.capacity() &lt;&lt; 1);
<a name="647" href="#647">647</a>                 appBuffer.limit(appBuffer.capacity());
<a name="648" href="#648">648</a>                 <strong class="jxr_keyword">continue</strong>;
<a name="649" href="#649">649</a>             }
<a name="650" href="#650">650</a>         } <strong class="jxr_keyword">while</strong> ((res.getStatus() == SSLEngineResult.Status.OK || res.getStatus() == SSLEngineResult.Status.BUFFER_OVERFLOW) &amp;&amp;
<a name="651" href="#651">651</a>                  (handshakeComplete &amp;&amp; res.getHandshakeStatus() == SSLEngineResult.HandshakeStatus.NOT_HANDSHAKING ||
<a name="652" href="#652">652</a>                   res.getHandshakeStatus() == SSLEngineResult.HandshakeStatus.NEED_UNWRAP));
<a name="653" href="#653">653</a> 
<a name="654" href="#654">654</a>         <strong class="jxr_keyword">return</strong> res;
<a name="655" href="#655">655</a>     }
<a name="656" href="#656">656</a> 
<a name="657" href="#657">657</a>     <em class="jxr_javadoccomment">/**</em>
<a name="658" href="#658">658</a> <em class="jxr_javadoccomment">     * Do all the outstanding handshake tasks in the current Thread.</em>
<a name="659" href="#659">659</a> <em class="jxr_javadoccomment">     */</em>
<a name="660" href="#660">660</a>     <strong class="jxr_keyword">private</strong> SSLEngineResult.HandshakeStatus doTasks() {
<a name="661" href="#661">661</a>         <em class="jxr_comment">/*</em>
<a name="662" href="#662">662</a> <em class="jxr_comment">         * We could run this in a separate thread, but I don't see the need</em>
<a name="663" href="#663">663</a> <em class="jxr_comment">         * for this when used from SSLFilter. Use thread filters in MINA instead?</em>
<a name="664" href="#664">664</a> <em class="jxr_comment">         */</em>
<a name="665" href="#665">665</a>         Runnable runnable;
<a name="666" href="#666">666</a>         <strong class="jxr_keyword">while</strong> ((runnable = sslEngine.getDelegatedTask()) != <strong class="jxr_keyword">null</strong>) {
<a name="667" href="#667">667</a>             runnable.run();
<a name="668" href="#668">668</a>         }
<a name="669" href="#669">669</a>         <strong class="jxr_keyword">return</strong> sslEngine.getHandshakeStatus();
<a name="670" href="#670">670</a>     }
<a name="671" href="#671">671</a> 
<a name="672" href="#672">672</a>     <em class="jxr_javadoccomment">/**</em>
<a name="673" href="#673">673</a> <em class="jxr_javadoccomment">     * Creates a new MINA buffer that is a deep copy of the remaining bytes</em>
<a name="674" href="#674">674</a> <em class="jxr_javadoccomment">     * in the given buffer (between index buf.position() and buf.limit())</em>
<a name="675" href="#675">675</a> <em class="jxr_javadoccomment">     *</em>
<a name="676" href="#676">676</a> <em class="jxr_javadoccomment">     * @param src the buffer to copy</em>
<a name="677" href="#677">677</a> <em class="jxr_javadoccomment">     * @return the new buffer, ready to read from</em>
<a name="678" href="#678">678</a> <em class="jxr_javadoccomment">     */</em>
<a name="679" href="#679">679</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> copy(ByteBuffer src) {
<a name="680" href="#680">680</a>         <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> copy = IoBuffer.allocate(src.remaining());
<a name="681" href="#681">681</a>         copy.put(src);
<a name="682" href="#682">682</a>         copy.flip();
<a name="683" href="#683">683</a>         <strong class="jxr_keyword">return</strong> copy;
<a name="684" href="#684">684</a>     }
<a name="685" href="#685">685</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

