<!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>NTLMResponses xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../../apidocs/org/apache/mina/proxy/handlers/http/ntlm/NTLMResponses.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.proxy.handlers.http.ntlm;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.UnsupportedEncodingException;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.security.Key;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.security.MessageDigest;
<a name="25" href="#25">25</a>  
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> javax.crypto.Cipher;
<a name="27" href="#27">27</a>  
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> javax.crypto.spec.SecretKeySpec;
<a name="29" href="#29">29</a>  
<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment">/**</em>
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * NTLMResponses.java - Calculates the various Type 3 responses. Needs an MD4, MD5 and DES</em>
<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * crypto provider (Please note that default provider doesn't provide MD4).</em>
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * </em>
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * Copyright (c) 2003 Eric Glass </em>
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * Permission to use, copy, modify, and distribute this document for any purpose and without </em>
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * any fee is hereby granted, provided that the above copyright notice and this list of </em>
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * conditions appear in all copies. </em>
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * @see <a href="http://curl.haxx.se/rfc/ntlm.html" target="alexandria_uri">http://curl.haxx.se/rfc/ntlm.html</a></em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * </em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * @since MINA 2.0.0-M3</em>
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> */</em>
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../../org/apache/mina/proxy/handlers/http/ntlm/NTLMResponses.html">NTLMResponses</a> {
<a name="44" href="#44">44</a>  
<a name="45" href="#45">45</a>      <em class="jxr_comment">// LAN Manager magic constant used in LM Response calculation</em>
<a name="46" href="#46">46</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] LM_HASH_MAGIC_CONSTANT = <strong class="jxr_keyword">null</strong>;
<a name="47" href="#47">47</a>  
<a name="48" href="#48">48</a>      <strong class="jxr_keyword">static</strong> {
<a name="49" href="#49">49</a>          <strong class="jxr_keyword">try</strong> {
<a name="50" href="#50">50</a>              LM_HASH_MAGIC_CONSTANT = <span class="jxr_string">"KGS!@#$%"</span>.getBytes(<span class="jxr_string">"US-ASCII"</span>);
<a name="51" href="#51">51</a>          } <strong class="jxr_keyword">catch</strong> (UnsupportedEncodingException e) {
<a name="52" href="#52">52</a>              e.printStackTrace();
<a name="53" href="#53">53</a>          }
<a name="54" href="#54">54</a>      }
<a name="55" href="#55">55</a>  
<a name="56" href="#56">56</a>      <em class="jxr_javadoccomment">/**</em>
<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * Calculates the LM Response for the given challenge, using the specified</em>
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     * password.</em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment">     *</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     * @param password The user's password.</em>
<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     * @param challenge The Type 2 challenge from the server.</em>
<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     *</em>
<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * @return The LM Response.</em>
<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     */</em>
<a name="65" href="#65">65</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] getLMResponse(String password, byte[] challenge)
<a name="66" href="#66">66</a>              <strong class="jxr_keyword">throws</strong> Exception {
<a name="67" href="#67">67</a>          byte[] lmHash = lmHash(password);
<a name="68" href="#68">68</a>          <strong class="jxr_keyword">return</strong> lmResponse(lmHash, challenge);
<a name="69" href="#69">69</a>      }
<a name="70" href="#70">70</a>  
<a name="71" href="#71">71</a>      <em class="jxr_javadoccomment">/**</em>
<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     * Calculates the NTLM Response for the given challenge, using the</em>
<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     * specified password.</em>
<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     *</em>
<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     * @param password The user's password.</em>
<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * @param challenge The Type 2 challenge from the server.</em>
<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     *</em>
<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     * @return The NTLM Response.</em>
<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     */</em>
<a name="80" href="#80">80</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] getNTLMResponse(String password, byte[] challenge)
<a name="81" href="#81">81</a>              <strong class="jxr_keyword">throws</strong> Exception {
<a name="82" href="#82">82</a>          byte[] ntlmHash = ntlmHash(password);
<a name="83" href="#83">83</a>          <strong class="jxr_keyword">return</strong> lmResponse(ntlmHash, challenge);
<a name="84" href="#84">84</a>      }
<a name="85" href="#85">85</a>  
<a name="86" href="#86">86</a>      <em class="jxr_javadoccomment">/**</em>
<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * Calculates the NTLMv2 Response for the given challenge, using the</em>
<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * specified authentication target, username, password, target information</em>
<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * block, and client nonce.</em>
<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     *</em>
<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     * @param target The authentication target (i.e., domain).</em>
<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     * @param user The username. </em>
<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     * @param password The user's password.</em>
<a name="94" href="#94">94</a>  <em class="jxr_javadoccomment">     * @param targetInformation The target information block from the Type 2</em>
<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     * message.</em>
<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     * @param challenge The Type 2 challenge from the server.</em>
<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * @param clientNonce The random 8-byte client nonce.</em>
<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     *</em>
<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * @return The NTLMv2 Response.</em>
<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     */</em>
<a name="101" href="#101">101</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] getNTLMv2Response(String target, String user,
<a name="102" href="#102">102</a>             String password, byte[] targetInformation, byte[] challenge,
<a name="103" href="#103">103</a>             byte[] clientNonce) <strong class="jxr_keyword">throws</strong> Exception {
<a name="104" href="#104">104</a> 
<a name="105" href="#105">105</a>         <strong class="jxr_keyword">return</strong> getNTLMv2Response(target, user, password, targetInformation,
<a name="106" href="#106">106</a>                 challenge, clientNonce, System.currentTimeMillis());
<a name="107" href="#107">107</a>     }
<a name="108" href="#108">108</a> 
<a name="109" href="#109">109</a>     <em class="jxr_javadoccomment">/**</em>
<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     * Calculates the NTLMv2 Response for the given challenge, using the</em>
<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     * specified authentication target, username, password, target information</em>
<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     * block, and client nonce.</em>
<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     *</em>
<a name="114" href="#114">114</a> <em class="jxr_javadoccomment">     * @param target The authentication target (i.e., domain).</em>
<a name="115" href="#115">115</a> <em class="jxr_javadoccomment">     * @param user The username. </em>
<a name="116" href="#116">116</a> <em class="jxr_javadoccomment">     * @param password The user's password.</em>
<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     * @param targetInformation The target information block from the Type 2</em>
<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     * message.</em>
<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     * @param challenge The Type 2 challenge from the server.</em>
<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     * @param clientNonce The random 8-byte client nonce.</em>
<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     * @param time The time stamp. </em>
<a name="122" href="#122">122</a> <em class="jxr_javadoccomment">     *</em>
<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">     * @return The NTLMv2 Response.</em>
<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">     */</em>
<a name="125" href="#125">125</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] getNTLMv2Response(String target, String user,
<a name="126" href="#126">126</a>             String password, byte[] targetInformation, byte[] challenge,
<a name="127" href="#127">127</a>             byte[] clientNonce, <strong class="jxr_keyword">long</strong> time) <strong class="jxr_keyword">throws</strong> Exception {
<a name="128" href="#128">128</a>         byte[] ntlmv2Hash = ntlmv2Hash(target, user, password);
<a name="129" href="#129">129</a>         byte[] blob = createBlob(targetInformation, clientNonce, time);
<a name="130" href="#130">130</a>         <strong class="jxr_keyword">return</strong> lmv2Response(ntlmv2Hash, blob, challenge);
<a name="131" href="#131">131</a>     }
<a name="132" href="#132">132</a> 
<a name="133" href="#133">133</a>     <em class="jxr_javadoccomment">/**</em>
<a name="134" href="#134">134</a> <em class="jxr_javadoccomment">     * Calculates the LMv2 Response for the given challenge, using the</em>
<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     * specified authentication target, username, password, and client</em>
<a name="136" href="#136">136</a> <em class="jxr_javadoccomment">     * challenge.</em>
<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">     *</em>
<a name="138" href="#138">138</a> <em class="jxr_javadoccomment">     * @param target The authentication target (i.e., domain).</em>
<a name="139" href="#139">139</a> <em class="jxr_javadoccomment">     * @param user The username.</em>
<a name="140" href="#140">140</a> <em class="jxr_javadoccomment">     * @param password The user's password.</em>
<a name="141" href="#141">141</a> <em class="jxr_javadoccomment">     * @param challenge The Type 2 challenge from the server.</em>
<a name="142" href="#142">142</a> <em class="jxr_javadoccomment">     * @param clientNonce The random 8-byte client nonce.</em>
<a name="143" href="#143">143</a> <em class="jxr_javadoccomment">     *</em>
<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     * @return The LMv2 Response. </em>
<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     */</em>
<a name="146" href="#146">146</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] getLMv2Response(String target, String user,
<a name="147" href="#147">147</a>             String password, byte[] challenge, byte[] clientNonce)
<a name="148" href="#148">148</a>             <strong class="jxr_keyword">throws</strong> Exception {
<a name="149" href="#149">149</a>         byte[] ntlmv2Hash = ntlmv2Hash(target, user, password);
<a name="150" href="#150">150</a>         <strong class="jxr_keyword">return</strong> lmv2Response(ntlmv2Hash, clientNonce, challenge);
<a name="151" href="#151">151</a>     }
<a name="152" href="#152">152</a> 
<a name="153" href="#153">153</a>     <em class="jxr_javadoccomment">/**</em>
<a name="154" href="#154">154</a> <em class="jxr_javadoccomment">     * Calculates the NTLM2 Session Response for the given challenge, using the</em>
<a name="155" href="#155">155</a> <em class="jxr_javadoccomment">     * specified password and client nonce.</em>
<a name="156" href="#156">156</a> <em class="jxr_javadoccomment">     *</em>
<a name="157" href="#157">157</a> <em class="jxr_javadoccomment">     * @param password The user's password.</em>
<a name="158" href="#158">158</a> <em class="jxr_javadoccomment">     * @param challenge The Type 2 challenge from the server.</em>
<a name="159" href="#159">159</a> <em class="jxr_javadoccomment">     * @param clientNonce The random 8-byte client nonce.</em>
<a name="160" href="#160">160</a> <em class="jxr_javadoccomment">     *</em>
<a name="161" href="#161">161</a> <em class="jxr_javadoccomment">     * @return The NTLM2 Session Response.  This is placed in the NTLM</em>
<a name="162" href="#162">162</a> <em class="jxr_javadoccomment">     * response field of the Type 3 message; the LM response field contains</em>
<a name="163" href="#163">163</a> <em class="jxr_javadoccomment">     * the client nonce, null-padded to 24 bytes.</em>
<a name="164" href="#164">164</a> <em class="jxr_javadoccomment">     */</em>
<a name="165" href="#165">165</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] getNTLM2SessionResponse(String password,
<a name="166" href="#166">166</a>             byte[] challenge, byte[] clientNonce) <strong class="jxr_keyword">throws</strong> Exception {
<a name="167" href="#167">167</a>         byte[] ntlmHash = ntlmHash(password);
<a name="168" href="#168">168</a>         MessageDigest md5 = MessageDigest.getInstance(<span class="jxr_string">"MD5"</span>);
<a name="169" href="#169">169</a>         md5.update(challenge);
<a name="170" href="#170">170</a>         md5.update(clientNonce);
<a name="171" href="#171">171</a>         byte[] sessionHash = <strong class="jxr_keyword">new</strong> byte[8];
<a name="172" href="#172">172</a>         System.arraycopy(md5.digest(), 0, sessionHash, 0, 8);
<a name="173" href="#173">173</a>         <strong class="jxr_keyword">return</strong> lmResponse(ntlmHash, sessionHash);
<a name="174" href="#174">174</a>     }
<a name="175" href="#175">175</a> 
<a name="176" href="#176">176</a>     <em class="jxr_javadoccomment">/**</em>
<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">     * Creates the LM Hash of the user's password.</em>
<a name="178" href="#178">178</a> <em class="jxr_javadoccomment">     *</em>
<a name="179" href="#179">179</a> <em class="jxr_javadoccomment">     * @param password The password.</em>
<a name="180" href="#180">180</a> <em class="jxr_javadoccomment">     *</em>
<a name="181" href="#181">181</a> <em class="jxr_javadoccomment">     * @return The LM Hash of the given password, used in the calculation</em>
<a name="182" href="#182">182</a> <em class="jxr_javadoccomment">     * of the LM Response.</em>
<a name="183" href="#183">183</a> <em class="jxr_javadoccomment">     */</em>
<a name="184" href="#184">184</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> byte[] lmHash(String password) <strong class="jxr_keyword">throws</strong> Exception {
<a name="185" href="#185">185</a>         byte[] oemPassword = password.toUpperCase().getBytes(<span class="jxr_string">"US-ASCII"</span>);
<a name="186" href="#186">186</a>         <strong class="jxr_keyword">int</strong> length = Math.min(oemPassword.length, 14);
<a name="187" href="#187">187</a>         byte[] keyBytes = <strong class="jxr_keyword">new</strong> byte[14];
<a name="188" href="#188">188</a>         System.arraycopy(oemPassword, 0, keyBytes, 0, length);
<a name="189" href="#189">189</a>         Key lowKey = createDESKey(keyBytes, 0);
<a name="190" href="#190">190</a>         Key highKey = createDESKey(keyBytes, 7);
<a name="191" href="#191">191</a>         Cipher des = Cipher.getInstance(<span class="jxr_string">"DES/ECB/NoPadding"</span>);
<a name="192" href="#192">192</a>         des.init(Cipher.ENCRYPT_MODE, lowKey);
<a name="193" href="#193">193</a>         byte[] lowHash = des.doFinal(LM_HASH_MAGIC_CONSTANT);
<a name="194" href="#194">194</a>         des.init(Cipher.ENCRYPT_MODE, highKey);
<a name="195" href="#195">195</a>         byte[] highHash = des.doFinal(LM_HASH_MAGIC_CONSTANT);
<a name="196" href="#196">196</a>         byte[] lmHash = <strong class="jxr_keyword">new</strong> byte[16];
<a name="197" href="#197">197</a>         System.arraycopy(lowHash, 0, lmHash, 0, 8);
<a name="198" href="#198">198</a>         System.arraycopy(highHash, 0, lmHash, 8, 8);
<a name="199" href="#199">199</a>         <strong class="jxr_keyword">return</strong> lmHash;
<a name="200" href="#200">200</a>     }
<a name="201" href="#201">201</a> 
<a name="202" href="#202">202</a>     <em class="jxr_javadoccomment">/**</em>
<a name="203" href="#203">203</a> <em class="jxr_javadoccomment">     * Creates the NTLM Hash of the user's password.</em>
<a name="204" href="#204">204</a> <em class="jxr_javadoccomment">     *</em>
<a name="205" href="#205">205</a> <em class="jxr_javadoccomment">     * @param password The password.</em>
<a name="206" href="#206">206</a> <em class="jxr_javadoccomment">     *</em>
<a name="207" href="#207">207</a> <em class="jxr_javadoccomment">     * @return The NTLM Hash of the given password, used in the calculation</em>
<a name="208" href="#208">208</a> <em class="jxr_javadoccomment">     * of the NTLM Response and the NTLMv2 and LMv2 Hashes.</em>
<a name="209" href="#209">209</a> <em class="jxr_javadoccomment">     */</em>
<a name="210" href="#210">210</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> byte[] ntlmHash(String password) <strong class="jxr_keyword">throws</strong> Exception {
<a name="211" href="#211">211</a>         byte[] unicodePassword = password.getBytes(<span class="jxr_string">"UnicodeLittleUnmarked"</span>);
<a name="212" href="#212">212</a>         MessageDigest md4 = MessageDigest.getInstance(<span class="jxr_string">"MD4"</span>);
<a name="213" href="#213">213</a>         <strong class="jxr_keyword">return</strong> md4.digest(unicodePassword);
<a name="214" href="#214">214</a>     }
<a name="215" href="#215">215</a> 
<a name="216" href="#216">216</a>     <em class="jxr_javadoccomment">/**</em>
<a name="217" href="#217">217</a> <em class="jxr_javadoccomment">     * Creates the NTLMv2 Hash of the user's password.</em>
<a name="218" href="#218">218</a> <em class="jxr_javadoccomment">     *</em>
<a name="219" href="#219">219</a> <em class="jxr_javadoccomment">     * @param target The authentication target (i.e., domain).</em>
<a name="220" href="#220">220</a> <em class="jxr_javadoccomment">     * @param user The username.</em>
<a name="221" href="#221">221</a> <em class="jxr_javadoccomment">     * @param password The password.</em>
<a name="222" href="#222">222</a> <em class="jxr_javadoccomment">     *</em>
<a name="223" href="#223">223</a> <em class="jxr_javadoccomment">     * @return The NTLMv2 Hash, used in the calculation of the NTLMv2</em>
<a name="224" href="#224">224</a> <em class="jxr_javadoccomment">     * and LMv2 Responses. </em>
<a name="225" href="#225">225</a> <em class="jxr_javadoccomment">     */</em>
<a name="226" href="#226">226</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> byte[] ntlmv2Hash(String target, String user, String password)
<a name="227" href="#227">227</a>             <strong class="jxr_keyword">throws</strong> Exception {
<a name="228" href="#228">228</a>         byte[] ntlmHash = ntlmHash(password);
<a name="229" href="#229">229</a>         String identity = user.toUpperCase() + target;
<a name="230" href="#230">230</a>         <strong class="jxr_keyword">return</strong> hmacMD5(identity.getBytes(<span class="jxr_string">"UnicodeLittleUnmarked"</span>), ntlmHash);
<a name="231" href="#231">231</a>     }
<a name="232" href="#232">232</a> 
<a name="233" href="#233">233</a>     <em class="jxr_javadoccomment">/**</em>
<a name="234" href="#234">234</a> <em class="jxr_javadoccomment">     * Creates the LM Response from the given hash and Type 2 challenge.</em>
<a name="235" href="#235">235</a> <em class="jxr_javadoccomment">     *</em>
<a name="236" href="#236">236</a> <em class="jxr_javadoccomment">     * @param hash The LM or NTLM Hash.</em>
<a name="237" href="#237">237</a> <em class="jxr_javadoccomment">     * @param challenge The server challenge from the Type 2 message.</em>
<a name="238" href="#238">238</a> <em class="jxr_javadoccomment">     *</em>
<a name="239" href="#239">239</a> <em class="jxr_javadoccomment">     * @return The response (either LM or NTLM, depending on the provided</em>
<a name="240" href="#240">240</a> <em class="jxr_javadoccomment">     * hash).</em>
<a name="241" href="#241">241</a> <em class="jxr_javadoccomment">     */</em>
<a name="242" href="#242">242</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> byte[] lmResponse(byte[] hash, byte[] challenge)
<a name="243" href="#243">243</a>             <strong class="jxr_keyword">throws</strong> Exception {
<a name="244" href="#244">244</a>         byte[] keyBytes = <strong class="jxr_keyword">new</strong> byte[21];
<a name="245" href="#245">245</a>         System.arraycopy(hash, 0, keyBytes, 0, 16);
<a name="246" href="#246">246</a>         Key lowKey = createDESKey(keyBytes, 0);
<a name="247" href="#247">247</a>         Key middleKey = createDESKey(keyBytes, 7);
<a name="248" href="#248">248</a>         Key highKey = createDESKey(keyBytes, 14);
<a name="249" href="#249">249</a>         Cipher des = Cipher.getInstance(<span class="jxr_string">"DES/ECB/NoPadding"</span>);
<a name="250" href="#250">250</a>         des.init(Cipher.ENCRYPT_MODE, lowKey);
<a name="251" href="#251">251</a>         byte[] lowResponse = des.doFinal(challenge);
<a name="252" href="#252">252</a>         des.init(Cipher.ENCRYPT_MODE, middleKey);
<a name="253" href="#253">253</a>         byte[] middleResponse = des.doFinal(challenge);
<a name="254" href="#254">254</a>         des.init(Cipher.ENCRYPT_MODE, highKey);
<a name="255" href="#255">255</a>         byte[] highResponse = des.doFinal(challenge);
<a name="256" href="#256">256</a>         byte[] lmResponse = <strong class="jxr_keyword">new</strong> byte[24];
<a name="257" href="#257">257</a>         System.arraycopy(lowResponse, 0, lmResponse, 0, 8);
<a name="258" href="#258">258</a>         System.arraycopy(middleResponse, 0, lmResponse, 8, 8);
<a name="259" href="#259">259</a>         System.arraycopy(highResponse, 0, lmResponse, 16, 8);
<a name="260" href="#260">260</a>         <strong class="jxr_keyword">return</strong> lmResponse;
<a name="261" href="#261">261</a>     }
<a name="262" href="#262">262</a> 
<a name="263" href="#263">263</a>     <em class="jxr_javadoccomment">/**</em>
<a name="264" href="#264">264</a> <em class="jxr_javadoccomment">     * Creates the LMv2 Response from the given hash, client data, and</em>
<a name="265" href="#265">265</a> <em class="jxr_javadoccomment">     * Type 2 challenge.</em>
<a name="266" href="#266">266</a> <em class="jxr_javadoccomment">     *</em>
<a name="267" href="#267">267</a> <em class="jxr_javadoccomment">     * @param hash The NTLMv2 Hash.</em>
<a name="268" href="#268">268</a> <em class="jxr_javadoccomment">     * @param clientData The client data (blob or client nonce).</em>
<a name="269" href="#269">269</a> <em class="jxr_javadoccomment">     * @param challenge The server challenge from the Type 2 message.</em>
<a name="270" href="#270">270</a> <em class="jxr_javadoccomment">     *</em>
<a name="271" href="#271">271</a> <em class="jxr_javadoccomment">     * @return The response (either NTLMv2 or LMv2, depending on the</em>
<a name="272" href="#272">272</a> <em class="jxr_javadoccomment">     * client data).</em>
<a name="273" href="#273">273</a> <em class="jxr_javadoccomment">     */</em>
<a name="274" href="#274">274</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> byte[] lmv2Response(byte[] hash, byte[] clientData,
<a name="275" href="#275">275</a>             byte[] challenge) <strong class="jxr_keyword">throws</strong> Exception {
<a name="276" href="#276">276</a>         byte[] data = <strong class="jxr_keyword">new</strong> byte[challenge.length + clientData.length];
<a name="277" href="#277">277</a>         System.arraycopy(challenge, 0, data, 0, challenge.length);
<a name="278" href="#278">278</a>         System.arraycopy(clientData, 0, data, challenge.length,
<a name="279" href="#279">279</a>                 clientData.length);
<a name="280" href="#280">280</a>         byte[] mac = hmacMD5(data, hash);
<a name="281" href="#281">281</a>         byte[] lmv2Response = <strong class="jxr_keyword">new</strong> byte[mac.length + clientData.length];
<a name="282" href="#282">282</a>         System.arraycopy(mac, 0, lmv2Response, 0, mac.length);
<a name="283" href="#283">283</a>         System.arraycopy(clientData, 0, lmv2Response, mac.length,
<a name="284" href="#284">284</a>                 clientData.length);
<a name="285" href="#285">285</a>         <strong class="jxr_keyword">return</strong> lmv2Response;
<a name="286" href="#286">286</a>     }
<a name="287" href="#287">287</a> 
<a name="288" href="#288">288</a>     <em class="jxr_javadoccomment">/**</em>
<a name="289" href="#289">289</a> <em class="jxr_javadoccomment">     * Creates the NTLMv2 blob from the given target information block and</em>
<a name="290" href="#290">290</a> <em class="jxr_javadoccomment">     * client nonce.</em>
<a name="291" href="#291">291</a> <em class="jxr_javadoccomment">     *</em>
<a name="292" href="#292">292</a> <em class="jxr_javadoccomment">     * @param targetInformation The target information block from the Type 2</em>
<a name="293" href="#293">293</a> <em class="jxr_javadoccomment">     * message.</em>
<a name="294" href="#294">294</a> <em class="jxr_javadoccomment">     * @param clientNonce The random 8-byte client nonce.</em>
<a name="295" href="#295">295</a> <em class="jxr_javadoccomment">     * @param time the time stamp.</em>
<a name="296" href="#296">296</a> <em class="jxr_javadoccomment">     *</em>
<a name="297" href="#297">297</a> <em class="jxr_javadoccomment">     * @return The blob, used in the calculation of the NTLMv2 Response.</em>
<a name="298" href="#298">298</a> <em class="jxr_javadoccomment">     */</em>
<a name="299" href="#299">299</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> byte[] createBlob(byte[] targetInformation,
<a name="300" href="#300">300</a>             byte[] clientNonce, <strong class="jxr_keyword">long</strong> time) {
<a name="301" href="#301">301</a>         byte[] blobSignature = <strong class="jxr_keyword">new</strong> byte[] { (byte) 0x01, (byte) 0x01,
<a name="302" href="#302">302</a>                 (byte) 0x00, (byte) 0x00 };
<a name="303" href="#303">303</a>         byte[] reserved = <strong class="jxr_keyword">new</strong> byte[] { (byte) 0x00, (byte) 0x00, (byte) 0x00,
<a name="304" href="#304">304</a>                 (byte) 0x00 };
<a name="305" href="#305">305</a>         byte[] unknown1 = <strong class="jxr_keyword">new</strong> byte[] { (byte) 0x00, (byte) 0x00, (byte) 0x00,
<a name="306" href="#306">306</a>                 (byte) 0x00 };
<a name="307" href="#307">307</a>         byte[] unknown2 = <strong class="jxr_keyword">new</strong> byte[] { (byte) 0x00, (byte) 0x00, (byte) 0x00,
<a name="308" href="#308">308</a>                 (byte) 0x00 };
<a name="309" href="#309">309</a>         time += 11644473600000l; <em class="jxr_comment">// milliseconds from January 1, 1601 -&gt; epoch.</em>
<a name="310" href="#310">310</a>         time *= 10000; <em class="jxr_comment">// tenths of a microsecond.</em>
<a name="311" href="#311">311</a>         <em class="jxr_comment">// convert to little-endian byte array.</em>
<a name="312" href="#312">312</a>         byte[] timestamp = <strong class="jxr_keyword">new</strong> byte[8];
<a name="313" href="#313">313</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 8; i++) {
<a name="314" href="#314">314</a>             timestamp[i] = (byte) time;
<a name="315" href="#315">315</a>             time &gt;&gt;&gt;= 8;
<a name="316" href="#316">316</a>         }
<a name="317" href="#317">317</a>         byte[] blob = <strong class="jxr_keyword">new</strong> byte[blobSignature.length + reserved.length
<a name="318" href="#318">318</a>                 + timestamp.length + clientNonce.length + unknown1.length
<a name="319" href="#319">319</a>                 + targetInformation.length + unknown2.length];
<a name="320" href="#320">320</a>         <strong class="jxr_keyword">int</strong> offset = 0;
<a name="321" href="#321">321</a>         System.arraycopy(blobSignature, 0, blob, offset, blobSignature.length);
<a name="322" href="#322">322</a>         offset += blobSignature.length;
<a name="323" href="#323">323</a>         System.arraycopy(reserved, 0, blob, offset, reserved.length);
<a name="324" href="#324">324</a>         offset += reserved.length;
<a name="325" href="#325">325</a>         System.arraycopy(timestamp, 0, blob, offset, timestamp.length);
<a name="326" href="#326">326</a>         offset += timestamp.length;
<a name="327" href="#327">327</a>         System.arraycopy(clientNonce, 0, blob, offset, clientNonce.length);
<a name="328" href="#328">328</a>         offset += clientNonce.length;
<a name="329" href="#329">329</a>         System.arraycopy(unknown1, 0, blob, offset, unknown1.length);
<a name="330" href="#330">330</a>         offset += unknown1.length;
<a name="331" href="#331">331</a>         System.arraycopy(targetInformation, 0, blob, offset,
<a name="332" href="#332">332</a>                 targetInformation.length);
<a name="333" href="#333">333</a>         offset += targetInformation.length;
<a name="334" href="#334">334</a>         System.arraycopy(unknown2, 0, blob, offset, unknown2.length);
<a name="335" href="#335">335</a>         <strong class="jxr_keyword">return</strong> blob;
<a name="336" href="#336">336</a>     }
<a name="337" href="#337">337</a> 
<a name="338" href="#338">338</a>     <em class="jxr_javadoccomment">/**</em>
<a name="339" href="#339">339</a> <em class="jxr_javadoccomment">     * Calculates the HMAC-MD5 hash of the given data using the specified</em>
<a name="340" href="#340">340</a> <em class="jxr_javadoccomment">     * hashing key.</em>
<a name="341" href="#341">341</a> <em class="jxr_javadoccomment">     *</em>
<a name="342" href="#342">342</a> <em class="jxr_javadoccomment">     * @param data The data for which the hash will be calculated. </em>
<a name="343" href="#343">343</a> <em class="jxr_javadoccomment">     * @param key The hashing key.</em>
<a name="344" href="#344">344</a> <em class="jxr_javadoccomment">     *</em>
<a name="345" href="#345">345</a> <em class="jxr_javadoccomment">     * @return The HMAC-MD5 hash of the given data.</em>
<a name="346" href="#346">346</a> <em class="jxr_javadoccomment">     */</em>
<a name="347" href="#347">347</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] hmacMD5(byte[] data, byte[] key) <strong class="jxr_keyword">throws</strong> Exception {
<a name="348" href="#348">348</a>         byte[] ipad = <strong class="jxr_keyword">new</strong> byte[64];
<a name="349" href="#349">349</a>         byte[] opad = <strong class="jxr_keyword">new</strong> byte[64];
<a name="350" href="#350">350</a> 
<a name="351" href="#351">351</a>         <em class="jxr_comment">// Stores key in pads and XOR it with ipad and opad values</em>
<a name="352" href="#352">352</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 64; i++) {
<a name="353" href="#353">353</a>             <strong class="jxr_keyword">if</strong> (i &lt; key.length) {
<a name="354" href="#354">354</a>                 ipad[i] = (byte) (key[i] ^ 0x36);
<a name="355" href="#355">355</a>                 opad[i] = (byte) (key[i] ^ 0x5c);
<a name="356" href="#356">356</a>             } <strong class="jxr_keyword">else</strong> {
<a name="357" href="#357">357</a>                 ipad[i] = 0x36;
<a name="358" href="#358">358</a>                 opad[i] = 0x5c;
<a name="359" href="#359">359</a>             }
<a name="360" href="#360">360</a>         }
<a name="361" href="#361">361</a> 
<a name="362" href="#362">362</a>         byte[] content = <strong class="jxr_keyword">new</strong> byte[data.length + 64];
<a name="363" href="#363">363</a>         System.arraycopy(ipad, 0, content, 0, 64);
<a name="364" href="#364">364</a>         System.arraycopy(data, 0, content, 64, data.length);
<a name="365" href="#365">365</a>         MessageDigest md5 = MessageDigest.getInstance(<span class="jxr_string">"MD5"</span>);
<a name="366" href="#366">366</a>         data = md5.digest(content);
<a name="367" href="#367">367</a>         content = <strong class="jxr_keyword">new</strong> byte[data.length + 64];
<a name="368" href="#368">368</a>         System.arraycopy(opad, 0, content, 0, 64);
<a name="369" href="#369">369</a>         System.arraycopy(data, 0, content, 64, data.length);
<a name="370" href="#370">370</a>         <strong class="jxr_keyword">return</strong> md5.digest(content);
<a name="371" href="#371">371</a>     }
<a name="372" href="#372">372</a> 
<a name="373" href="#373">373</a>     <em class="jxr_javadoccomment">/**</em>
<a name="374" href="#374">374</a> <em class="jxr_javadoccomment">     * Creates a DES encryption key from the given key material.</em>
<a name="375" href="#375">375</a> <em class="jxr_javadoccomment">     *</em>
<a name="376" href="#376">376</a> <em class="jxr_javadoccomment">     * @param bytes A byte array containing the DES key material.</em>
<a name="377" href="#377">377</a> <em class="jxr_javadoccomment">     * @param offset The offset in the given byte array at which</em>
<a name="378" href="#378">378</a> <em class="jxr_javadoccomment">     * the 7-byte key material starts.</em>
<a name="379" href="#379">379</a> <em class="jxr_javadoccomment">     *</em>
<a name="380" href="#380">380</a> <em class="jxr_javadoccomment">     * @return A DES encryption key created from the key material</em>
<a name="381" href="#381">381</a> <em class="jxr_javadoccomment">     * starting at the specified offset in the given byte array.</em>
<a name="382" href="#382">382</a> <em class="jxr_javadoccomment">     */</em>
<a name="383" href="#383">383</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Key createDESKey(byte[] bytes, <strong class="jxr_keyword">int</strong> offset) {
<a name="384" href="#384">384</a>         byte[] keyBytes = <strong class="jxr_keyword">new</strong> byte[7];
<a name="385" href="#385">385</a>         System.arraycopy(bytes, offset, keyBytes, 0, 7);
<a name="386" href="#386">386</a>         byte[] material = <strong class="jxr_keyword">new</strong> byte[8];
<a name="387" href="#387">387</a>         material[0] = keyBytes[0];
<a name="388" href="#388">388</a>         material[1] = (byte) (keyBytes[0] &lt;&lt; 7 | (keyBytes[1] &amp; 0xff) &gt;&gt;&gt; 1);
<a name="389" href="#389">389</a>         material[2] = (byte) (keyBytes[1] &lt;&lt; 6 | (keyBytes[2] &amp; 0xff) &gt;&gt;&gt; 2);
<a name="390" href="#390">390</a>         material[3] = (byte) (keyBytes[2] &lt;&lt; 5 | (keyBytes[3] &amp; 0xff) &gt;&gt;&gt; 3);
<a name="391" href="#391">391</a>         material[4] = (byte) (keyBytes[3] &lt;&lt; 4 | (keyBytes[4] &amp; 0xff) &gt;&gt;&gt; 4);
<a name="392" href="#392">392</a>         material[5] = (byte) (keyBytes[4] &lt;&lt; 3 | (keyBytes[5] &amp; 0xff) &gt;&gt;&gt; 5);
<a name="393" href="#393">393</a>         material[6] = (byte) (keyBytes[5] &lt;&lt; 2 | (keyBytes[6] &amp; 0xff) &gt;&gt;&gt; 6);
<a name="394" href="#394">394</a>         material[7] = (byte) (keyBytes[6] &lt;&lt; 1);
<a name="395" href="#395">395</a>         oddParity(material);
<a name="396" href="#396">396</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> SecretKeySpec(material, <span class="jxr_string">"DES"</span>);
<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">     * Applies odd parity to the given byte array.</em>
<a name="401" href="#401">401</a> <em class="jxr_javadoccomment">     *</em>
<a name="402" href="#402">402</a> <em class="jxr_javadoccomment">     * @param bytes The data whose parity bits are to be adjusted for</em>
<a name="403" href="#403">403</a> <em class="jxr_javadoccomment">     * odd parity.</em>
<a name="404" href="#404">404</a> <em class="jxr_javadoccomment">     */</em>
<a name="405" href="#405">405</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> oddParity(byte[] bytes) {
<a name="406" href="#406">406</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; bytes.length; i++) {
<a name="407" href="#407">407</a>             byte b = bytes[i];
<a name="408" href="#408">408</a>             <strong class="jxr_keyword">boolean</strong> needsParity = (((b &gt;&gt;&gt; 7) ^ (b &gt;&gt;&gt; 6) ^ (b &gt;&gt;&gt; 5)
<a name="409" href="#409">409</a>                     ^ (b &gt;&gt;&gt; 4) ^ (b &gt;&gt;&gt; 3) ^ (b &gt;&gt;&gt; 2) ^ (b &gt;&gt;&gt; 1)) &amp; 0x01) == 0;
<a name="410" href="#410">410</a>             <strong class="jxr_keyword">if</strong> (needsParity) {
<a name="411" href="#411">411</a>                 bytes[i] |= (byte) 0x01;
<a name="412" href="#412">412</a>             } <strong class="jxr_keyword">else</strong> {
<a name="413" href="#413">413</a>                 bytes[i] &amp;= (byte) 0xfe;
<a name="414" href="#414">414</a>             }
<a name="415" href="#415">415</a>         }
<a name="416" href="#416">416</a>     }
<a name="417" href="#417">417</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

