]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - crypto/heimdal/doc/doxyout/ntlm/html/group__ntlm__core.html
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / crypto / heimdal / doc / doxyout / ntlm / html / group__ntlm__core.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3 <title>Heimdalntlmlibrary: Heimdal NTLM library</title>
4 <link href="doxygen.css" rel="stylesheet" type="text/css">
5 <link href="tabs.css" rel="stylesheet" type="text/css">
6 </head><body>
7 <p>
8 <a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
9 </p>
10 <!-- end of header marker -->
11 <!-- Generated by Doxygen 1.5.6 -->
12 <div class="navigation" id="top">
13   <div class="tabs">
14     <ul>
15       <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
16       <li><a href="modules.html"><span>Modules</span></a></li>
17       <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
18       <li><a href="examples.html"><span>Examples</span></a></li>
19     </ul>
20   </div>
21 </div>
22 <div class="contents">
23 <h1>Heimdal NTLM library</h1><table border="0" cellpadding="0" cellspacing="0">
24 <tr><td></td></tr>
25 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
26 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#g5f6c313a3a7258cda5f09bb44f8d1776">heim_ntlm_free_buf</a> (struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *p)</td></tr>
27
28 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#g704ec8c5dba05ef57186d242ff165565">heim_ntlm_free_targetinfo</a> (struct ntlm_targetinfo *ti)</td></tr>
29
30 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#g2881747fad2ac2979a28d3bd050b0fa8">heim_ntlm_encode_targetinfo</a> (const struct ntlm_targetinfo *ti, int ucs2, struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *data)</td></tr>
31
32 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#gf1d4de2faec8b1c1070a55fd2e6e630f">heim_ntlm_decode_targetinfo</a> (const struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *data, int ucs2, struct ntlm_targetinfo *ti)</td></tr>
33
34 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#g76fa6caf3f539e24008e31613f5eb663">heim_ntlm_free_type1</a> (struct <a class="el" href="structntlm__type1.html">ntlm_type1</a> *data)</td></tr>
35
36 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#g0107727234287ac61a8801b0faff9dff">heim_ntlm_encode_type1</a> (const struct <a class="el" href="structntlm__type1.html">ntlm_type1</a> *type1, struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *data)</td></tr>
37
38 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#g8fde84c86f1c7c9f730f7fb4acedcb43">heim_ntlm_free_type2</a> (struct <a class="el" href="structntlm__type2.html">ntlm_type2</a> *data)</td></tr>
39
40 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#g2860c6f6d497255eb433adc8cacc49dd">heim_ntlm_encode_type2</a> (const struct <a class="el" href="structntlm__type2.html">ntlm_type2</a> *type2, struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *data)</td></tr>
41
42 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#gc4e6d01e5247b8540d41ccbbf1031319">heim_ntlm_free_type3</a> (struct <a class="el" href="structntlm__type3.html">ntlm_type3</a> *data)</td></tr>
43
44 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#g9cf026be6e602c22d62aa9e47e85c7c2">heim_ntlm_encode_type3</a> (const struct <a class="el" href="structntlm__type3.html">ntlm_type3</a> *type3, struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *data)</td></tr>
45
46 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#g254ee0a4d5a2594833e36697ad575d7e">heim_ntlm_nt_key</a> (const char *password, struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *key)</td></tr>
47
48 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#ge3b634802ef94233a175291abd2ea14d">heim_ntlm_calculate_ntlm1</a> (void *key, size_t len, unsigned char challenge[8], struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *answer)</td></tr>
49
50 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#gd09935f9ccecb9fb2917d68fb82ec3d6">heim_ntlm_build_ntlm1_master</a> (void *key, size_t len, struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *session, struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *master)</td></tr>
51
52 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#gd189a009fcac6cba44678b6a0aef81e0">heim_ntlm_build_ntlm2_master</a> (void *key, size_t len, struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *blob, struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *session, struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *master)</td></tr>
53
54 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#g6ef0049af05a83d73b7a3d962e679c2a">heim_ntlm_keyex_unwrap</a> (struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *baseKey, struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *encryptedSession, struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *session)</td></tr>
55
56 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#g4c4c32652527acead6848052615ae284">heim_ntlm_ntlmv2_key</a> (const void *key, size_t len, const char *username, const char *target, unsigned char ntlmv2[16])</td></tr>
57
58 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#g9bc09732da698d0f2d8c9d41e60d764d">heim_ntlm_calculate_lm2</a> (const void *key, size_t len, const char *username, const char *target, const unsigned char serverchallenge[8], unsigned char ntlmv2[16], struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *answer)</td></tr>
59
60 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#ga8f07fb71a0d5f095cde3fb9fb40d10c">heim_ntlm_calculate_ntlm2</a> (const void *key, size_t len, const char *username, const char *target, const unsigned char serverchallenge[8], const struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *infotarget, unsigned char ntlmv2[16], struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *answer)</td></tr>
61
62 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ntlm__core.html#g3b3d6a5187cab6bfe656afa7a8273ca6">heim_ntlm_verify_ntlm2</a> (const void *key, size_t len, const char *username, const char *target, time_t now, const unsigned char serverchallenge[8], const struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *answer, struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *infotarget, unsigned char ntlmv2[16])</td></tr>
63
64 </table>
65 <hr><a name="_details"></a><h2>Detailed Description</h2>
66 The NTLM core functions implement the string2key generation function, message encode and decode function, and the hash function functions. <hr><h2>Function Documentation</h2>
67 <a class="anchor" name="gd09935f9ccecb9fb2917d68fb82ec3d6"></a><!-- doxytag: member="ntlm.c::heim_ntlm_build_ntlm1_master" ref="gd09935f9ccecb9fb2917d68fb82ec3d6" args="(void *key, size_t len, struct ntlm_buf *session, struct ntlm_buf *master)" -->
68 <div class="memitem">
69 <div class="memproto">
70       <table class="memname">
71         <tr>
72           <td class="memname">int heim_ntlm_build_ntlm1_master           </td>
73           <td>(</td>
74           <td class="paramtype">void *&nbsp;</td>
75           <td class="paramname"> <em>key</em>, </td>
76         </tr>
77         <tr>
78           <td class="paramkey"></td>
79           <td></td>
80           <td class="paramtype">size_t&nbsp;</td>
81           <td class="paramname"> <em>len</em>, </td>
82         </tr>
83         <tr>
84           <td class="paramkey"></td>
85           <td></td>
86           <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
87           <td class="paramname"> <em>session</em>, </td>
88         </tr>
89         <tr>
90           <td class="paramkey"></td>
91           <td></td>
92           <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
93           <td class="paramname"> <em>master</em></td><td>&nbsp;</td>
94         </tr>
95         <tr>
96           <td></td>
97           <td>)</td>
98           <td></td><td></td><td></td>
99         </tr>
100       </table>
101 </div>
102 <div class="memdoc">
103
104 <p>
105 Generates an NTLMv1 session random with assosited session master key.<p>
106 <dl compact><dt><b>Parameters:</b></dt><dd>
107   <table border="0" cellspacing="2" cellpadding="0">
108     <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>the ntlm v1 key </td></tr>
109     <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>length of key </td></tr>
110     <tr><td valign="top"></td><td valign="top"><em>session</em>&nbsp;</td><td>generated session nonce, should be freed with <a class="el" href="group__ntlm__core.html#g5f6c313a3a7258cda5f09bb44f8d1776">heim_ntlm_free_buf()</a>. </td></tr>
111     <tr><td valign="top"></td><td valign="top"><em>master</em>&nbsp;</td><td>calculated session master key, should be freed with <a class="el" href="group__ntlm__core.html#g5f6c313a3a7258cda5f09bb44f8d1776">heim_ntlm_free_buf()</a>.</td></tr>
112   </table>
113 </dl>
114 <dl class="return" compact><dt><b>Returns:</b></dt><dd>In case of success 0 is return, an errors, a errno in what went wrong. </dd></dl>
115
116 </div>
117 </div><p>
118 <a class="anchor" name="gd189a009fcac6cba44678b6a0aef81e0"></a><!-- doxytag: member="ntlm.c::heim_ntlm_build_ntlm2_master" ref="gd189a009fcac6cba44678b6a0aef81e0" args="(void *key, size_t len, struct ntlm_buf *blob, struct ntlm_buf *session, struct ntlm_buf *master)" -->
119 <div class="memitem">
120 <div class="memproto">
121       <table class="memname">
122         <tr>
123           <td class="memname">int heim_ntlm_build_ntlm2_master           </td>
124           <td>(</td>
125           <td class="paramtype">void *&nbsp;</td>
126           <td class="paramname"> <em>key</em>, </td>
127         </tr>
128         <tr>
129           <td class="paramkey"></td>
130           <td></td>
131           <td class="paramtype">size_t&nbsp;</td>
132           <td class="paramname"> <em>len</em>, </td>
133         </tr>
134         <tr>
135           <td class="paramkey"></td>
136           <td></td>
137           <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
138           <td class="paramname"> <em>blob</em>, </td>
139         </tr>
140         <tr>
141           <td class="paramkey"></td>
142           <td></td>
143           <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
144           <td class="paramname"> <em>session</em>, </td>
145         </tr>
146         <tr>
147           <td class="paramkey"></td>
148           <td></td>
149           <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
150           <td class="paramname"> <em>master</em></td><td>&nbsp;</td>
151         </tr>
152         <tr>
153           <td></td>
154           <td>)</td>
155           <td></td><td></td><td></td>
156         </tr>
157       </table>
158 </div>
159 <div class="memdoc">
160
161 <p>
162 Generates an NTLMv2 session random with associated session master key.<p>
163 <dl compact><dt><b>Parameters:</b></dt><dd>
164   <table border="0" cellspacing="2" cellpadding="0">
165     <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>the NTLMv2 key </td></tr>
166     <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>length of key </td></tr>
167     <tr><td valign="top"></td><td valign="top"><em>blob</em>&nbsp;</td><td>the NTLMv2 "blob" </td></tr>
168     <tr><td valign="top"></td><td valign="top"><em>session</em>&nbsp;</td><td>generated session nonce, should be freed with <a class="el" href="group__ntlm__core.html#g5f6c313a3a7258cda5f09bb44f8d1776">heim_ntlm_free_buf()</a>. </td></tr>
169     <tr><td valign="top"></td><td valign="top"><em>master</em>&nbsp;</td><td>calculated session master key, should be freed with <a class="el" href="group__ntlm__core.html#g5f6c313a3a7258cda5f09bb44f8d1776">heim_ntlm_free_buf()</a>.</td></tr>
170   </table>
171 </dl>
172 <dl class="return" compact><dt><b>Returns:</b></dt><dd>In case of success 0 is return, an errors, a errno in what went wrong. </dd></dl>
173
174 </div>
175 </div><p>
176 <a class="anchor" name="g9bc09732da698d0f2d8c9d41e60d764d"></a><!-- doxytag: member="ntlm.c::heim_ntlm_calculate_lm2" ref="g9bc09732da698d0f2d8c9d41e60d764d" args="(const void *key, size_t len, const char *username, const char *target, const unsigned char serverchallenge[8], unsigned char ntlmv2[16], struct ntlm_buf *answer)" -->
177 <div class="memitem">
178 <div class="memproto">
179       <table class="memname">
180         <tr>
181           <td class="memname">int heim_ntlm_calculate_lm2           </td>
182           <td>(</td>
183           <td class="paramtype">const void *&nbsp;</td>
184           <td class="paramname"> <em>key</em>, </td>
185         </tr>
186         <tr>
187           <td class="paramkey"></td>
188           <td></td>
189           <td class="paramtype">size_t&nbsp;</td>
190           <td class="paramname"> <em>len</em>, </td>
191         </tr>
192         <tr>
193           <td class="paramkey"></td>
194           <td></td>
195           <td class="paramtype">const char *&nbsp;</td>
196           <td class="paramname"> <em>username</em>, </td>
197         </tr>
198         <tr>
199           <td class="paramkey"></td>
200           <td></td>
201           <td class="paramtype">const char *&nbsp;</td>
202           <td class="paramname"> <em>target</em>, </td>
203         </tr>
204         <tr>
205           <td class="paramkey"></td>
206           <td></td>
207           <td class="paramtype">const unsigned char&nbsp;</td>
208           <td class="paramname"> <em>serverchallenge</em>[8], </td>
209         </tr>
210         <tr>
211           <td class="paramkey"></td>
212           <td></td>
213           <td class="paramtype">unsigned char&nbsp;</td>
214           <td class="paramname"> <em>ntlmv2</em>[16], </td>
215         </tr>
216         <tr>
217           <td class="paramkey"></td>
218           <td></td>
219           <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
220           <td class="paramname"> <em>answer</em></td><td>&nbsp;</td>
221         </tr>
222         <tr>
223           <td></td>
224           <td>)</td>
225           <td></td><td></td><td></td>
226         </tr>
227       </table>
228 </div>
229 <div class="memdoc">
230
231 <p>
232 Calculate LMv2 response<p>
233 <dl compact><dt><b>Parameters:</b></dt><dd>
234   <table border="0" cellspacing="2" cellpadding="0">
235     <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>the ntlm key </td></tr>
236     <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>length of key </td></tr>
237     <tr><td valign="top"></td><td valign="top"><em>username</em>&nbsp;</td><td>name of the user, as sent in the message, assumed to be in UTF8. </td></tr>
238     <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>the name of the target, assumed to be in UTF8. </td></tr>
239     <tr><td valign="top"></td><td valign="top"><em>serverchallenge</em>&nbsp;</td><td>challenge as sent by the server in the type2 message. </td></tr>
240     <tr><td valign="top"></td><td valign="top"><em>ntlmv2</em>&nbsp;</td><td>calculated session key </td></tr>
241     <tr><td valign="top"></td><td valign="top"><em>answer</em>&nbsp;</td><td>ntlm response answer, should be freed with <a class="el" href="group__ntlm__core.html#g5f6c313a3a7258cda5f09bb44f8d1776">heim_ntlm_free_buf()</a>.</td></tr>
242   </table>
243 </dl>
244 <dl class="return" compact><dt><b>Returns:</b></dt><dd>In case of success 0 is return, an errors, a errno in what went wrong. </dd></dl>
245
246 </div>
247 </div><p>
248 <a class="anchor" name="ge3b634802ef94233a175291abd2ea14d"></a><!-- doxytag: member="ntlm.c::heim_ntlm_calculate_ntlm1" ref="ge3b634802ef94233a175291abd2ea14d" args="(void *key, size_t len, unsigned char challenge[8], struct ntlm_buf *answer)" -->
249 <div class="memitem">
250 <div class="memproto">
251       <table class="memname">
252         <tr>
253           <td class="memname">int heim_ntlm_calculate_ntlm1           </td>
254           <td>(</td>
255           <td class="paramtype">void *&nbsp;</td>
256           <td class="paramname"> <em>key</em>, </td>
257         </tr>
258         <tr>
259           <td class="paramkey"></td>
260           <td></td>
261           <td class="paramtype">size_t&nbsp;</td>
262           <td class="paramname"> <em>len</em>, </td>
263         </tr>
264         <tr>
265           <td class="paramkey"></td>
266           <td></td>
267           <td class="paramtype">unsigned char&nbsp;</td>
268           <td class="paramname"> <em>challenge</em>[8], </td>
269         </tr>
270         <tr>
271           <td class="paramkey"></td>
272           <td></td>
273           <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
274           <td class="paramname"> <em>answer</em></td><td>&nbsp;</td>
275         </tr>
276         <tr>
277           <td></td>
278           <td>)</td>
279           <td></td><td></td><td></td>
280         </tr>
281       </table>
282 </div>
283 <div class="memdoc">
284
285 <p>
286 Calculate NTLMv1 response hash<p>
287 <dl compact><dt><b>Parameters:</b></dt><dd>
288   <table border="0" cellspacing="2" cellpadding="0">
289     <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>the ntlm v1 key </td></tr>
290     <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>length of key </td></tr>
291     <tr><td valign="top"></td><td valign="top"><em>challenge</em>&nbsp;</td><td>sent by the server </td></tr>
292     <tr><td valign="top"></td><td valign="top"><em>answer</em>&nbsp;</td><td>calculated answer, should be freed with <a class="el" href="group__ntlm__core.html#g5f6c313a3a7258cda5f09bb44f8d1776">heim_ntlm_free_buf()</a>.</td></tr>
293   </table>
294 </dl>
295 <dl class="return" compact><dt><b>Returns:</b></dt><dd>In case of success 0 is return, an errors, a errno in what went wrong. </dd></dl>
296
297 </div>
298 </div><p>
299 <a class="anchor" name="ga8f07fb71a0d5f095cde3fb9fb40d10c"></a><!-- doxytag: member="ntlm.c::heim_ntlm_calculate_ntlm2" ref="ga8f07fb71a0d5f095cde3fb9fb40d10c" args="(const void *key, size_t len, const char *username, const char *target, const unsigned char serverchallenge[8], const struct ntlm_buf *infotarget, unsigned char ntlmv2[16], struct ntlm_buf *answer)" -->
300 <div class="memitem">
301 <div class="memproto">
302       <table class="memname">
303         <tr>
304           <td class="memname">int heim_ntlm_calculate_ntlm2           </td>
305           <td>(</td>
306           <td class="paramtype">const void *&nbsp;</td>
307           <td class="paramname"> <em>key</em>, </td>
308         </tr>
309         <tr>
310           <td class="paramkey"></td>
311           <td></td>
312           <td class="paramtype">size_t&nbsp;</td>
313           <td class="paramname"> <em>len</em>, </td>
314         </tr>
315         <tr>
316           <td class="paramkey"></td>
317           <td></td>
318           <td class="paramtype">const char *&nbsp;</td>
319           <td class="paramname"> <em>username</em>, </td>
320         </tr>
321         <tr>
322           <td class="paramkey"></td>
323           <td></td>
324           <td class="paramtype">const char *&nbsp;</td>
325           <td class="paramname"> <em>target</em>, </td>
326         </tr>
327         <tr>
328           <td class="paramkey"></td>
329           <td></td>
330           <td class="paramtype">const unsigned char&nbsp;</td>
331           <td class="paramname"> <em>serverchallenge</em>[8], </td>
332         </tr>
333         <tr>
334           <td class="paramkey"></td>
335           <td></td>
336           <td class="paramtype">const struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
337           <td class="paramname"> <em>infotarget</em>, </td>
338         </tr>
339         <tr>
340           <td class="paramkey"></td>
341           <td></td>
342           <td class="paramtype">unsigned char&nbsp;</td>
343           <td class="paramname"> <em>ntlmv2</em>[16], </td>
344         </tr>
345         <tr>
346           <td class="paramkey"></td>
347           <td></td>
348           <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
349           <td class="paramname"> <em>answer</em></td><td>&nbsp;</td>
350         </tr>
351         <tr>
352           <td></td>
353           <td>)</td>
354           <td></td><td></td><td></td>
355         </tr>
356       </table>
357 </div>
358 <div class="memdoc">
359
360 <p>
361 Calculate NTLMv2 response<p>
362 <dl compact><dt><b>Parameters:</b></dt><dd>
363   <table border="0" cellspacing="2" cellpadding="0">
364     <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>the ntlm key </td></tr>
365     <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>length of key </td></tr>
366     <tr><td valign="top"></td><td valign="top"><em>username</em>&nbsp;</td><td>name of the user, as sent in the message, assumed to be in UTF8. </td></tr>
367     <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>the name of the target, assumed to be in UTF8. </td></tr>
368     <tr><td valign="top"></td><td valign="top"><em>serverchallenge</em>&nbsp;</td><td>challenge as sent by the server in the type2 message. </td></tr>
369     <tr><td valign="top"></td><td valign="top"><em>infotarget</em>&nbsp;</td><td>infotarget as sent by the server in the type2 message. </td></tr>
370     <tr><td valign="top"></td><td valign="top"><em>ntlmv2</em>&nbsp;</td><td>calculated session key </td></tr>
371     <tr><td valign="top"></td><td valign="top"><em>answer</em>&nbsp;</td><td>ntlm response answer, should be freed with <a class="el" href="group__ntlm__core.html#g5f6c313a3a7258cda5f09bb44f8d1776">heim_ntlm_free_buf()</a>.</td></tr>
372   </table>
373 </dl>
374 <dl class="return" compact><dt><b>Returns:</b></dt><dd>In case of success 0 is return, an errors, a errno in what went wrong. </dd></dl>
375
376 </div>
377 </div><p>
378 <a class="anchor" name="gf1d4de2faec8b1c1070a55fd2e6e630f"></a><!-- doxytag: member="ntlm.c::heim_ntlm_decode_targetinfo" ref="gf1d4de2faec8b1c1070a55fd2e6e630f" args="(const struct ntlm_buf *data, int ucs2, struct ntlm_targetinfo *ti)" -->
379 <div class="memitem">
380 <div class="memproto">
381       <table class="memname">
382         <tr>
383           <td class="memname">int heim_ntlm_decode_targetinfo           </td>
384           <td>(</td>
385           <td class="paramtype">const struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
386           <td class="paramname"> <em>data</em>, </td>
387         </tr>
388         <tr>
389           <td class="paramkey"></td>
390           <td></td>
391           <td class="paramtype">int&nbsp;</td>
392           <td class="paramname"> <em>ucs2</em>, </td>
393         </tr>
394         <tr>
395           <td class="paramkey"></td>
396           <td></td>
397           <td class="paramtype">struct ntlm_targetinfo *&nbsp;</td>
398           <td class="paramname"> <em>ti</em></td><td>&nbsp;</td>
399         </tr>
400         <tr>
401           <td></td>
402           <td>)</td>
403           <td></td><td></td><td></td>
404         </tr>
405       </table>
406 </div>
407 <div class="memdoc">
408
409 <p>
410 Decodes an NTLM targetinfo message<p>
411 <dl compact><dt><b>Parameters:</b></dt><dd>
412   <table border="0" cellspacing="2" cellpadding="0">
413     <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>input data buffer with the encode NTLM targetinfo message </td></tr>
414     <tr><td valign="top"></td><td valign="top"><em>ucs2</em>&nbsp;</td><td>if the strings should be encoded with ucs2 (selected by flag in message). </td></tr>
415     <tr><td valign="top"></td><td valign="top"><em>ti</em>&nbsp;</td><td>the decoded target info, should be freed with <a class="el" href="group__ntlm__core.html#g704ec8c5dba05ef57186d242ff165565">heim_ntlm_free_targetinfo()</a>.</td></tr>
416   </table>
417 </dl>
418 <dl class="return" compact><dt><b>Returns:</b></dt><dd>In case of success 0 is return, an errors, a errno in what went wrong. </dd></dl>
419
420 </div>
421 </div><p>
422 <a class="anchor" name="g2881747fad2ac2979a28d3bd050b0fa8"></a><!-- doxytag: member="ntlm.c::heim_ntlm_encode_targetinfo" ref="g2881747fad2ac2979a28d3bd050b0fa8" args="(const struct ntlm_targetinfo *ti, int ucs2, struct ntlm_buf *data)" -->
423 <div class="memitem">
424 <div class="memproto">
425       <table class="memname">
426         <tr>
427           <td class="memname">int heim_ntlm_encode_targetinfo           </td>
428           <td>(</td>
429           <td class="paramtype">const struct ntlm_targetinfo *&nbsp;</td>
430           <td class="paramname"> <em>ti</em>, </td>
431         </tr>
432         <tr>
433           <td class="paramkey"></td>
434           <td></td>
435           <td class="paramtype">int&nbsp;</td>
436           <td class="paramname"> <em>ucs2</em>, </td>
437         </tr>
438         <tr>
439           <td class="paramkey"></td>
440           <td></td>
441           <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
442           <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
443         </tr>
444         <tr>
445           <td></td>
446           <td>)</td>
447           <td></td><td></td><td></td>
448         </tr>
449       </table>
450 </div>
451 <div class="memdoc">
452
453 <p>
454 Encodes a ntlm_targetinfo message.<p>
455 <dl compact><dt><b>Parameters:</b></dt><dd>
456   <table border="0" cellspacing="2" cellpadding="0">
457     <tr><td valign="top"></td><td valign="top"><em>ti</em>&nbsp;</td><td>the ntlm_targetinfo message to encode. </td></tr>
458     <tr><td valign="top"></td><td valign="top"><em>ucs2</em>&nbsp;</td><td>ignored </td></tr>
459     <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>is the return buffer with the encoded message, should be freed with <a class="el" href="group__ntlm__core.html#g5f6c313a3a7258cda5f09bb44f8d1776">heim_ntlm_free_buf()</a>.</td></tr>
460   </table>
461 </dl>
462 <dl class="return" compact><dt><b>Returns:</b></dt><dd>In case of success 0 is return, an errors, a errno in what went wrong. </dd></dl>
463
464 </div>
465 </div><p>
466 <a class="anchor" name="g0107727234287ac61a8801b0faff9dff"></a><!-- doxytag: member="ntlm.c::heim_ntlm_encode_type1" ref="g0107727234287ac61a8801b0faff9dff" args="(const struct ntlm_type1 *type1, struct ntlm_buf *data)" -->
467 <div class="memitem">
468 <div class="memproto">
469       <table class="memname">
470         <tr>
471           <td class="memname">int heim_ntlm_encode_type1           </td>
472           <td>(</td>
473           <td class="paramtype">const struct <a class="el" href="structntlm__type1.html">ntlm_type1</a> *&nbsp;</td>
474           <td class="paramname"> <em>type1</em>, </td>
475         </tr>
476         <tr>
477           <td class="paramkey"></td>
478           <td></td>
479           <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
480           <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
481         </tr>
482         <tr>
483           <td></td>
484           <td>)</td>
485           <td></td><td></td><td></td>
486         </tr>
487       </table>
488 </div>
489 <div class="memdoc">
490
491 <p>
492 Encodes an <a class="el" href="structntlm__type1.html">ntlm_type1</a> message.<p>
493 <dl compact><dt><b>Parameters:</b></dt><dd>
494   <table border="0" cellspacing="2" cellpadding="0">
495     <tr><td valign="top"></td><td valign="top"><em>type1</em>&nbsp;</td><td>the <a class="el" href="structntlm__type1.html">ntlm_type1</a> message to encode. </td></tr>
496     <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>is the return buffer with the encoded message, should be freed with <a class="el" href="group__ntlm__core.html#g5f6c313a3a7258cda5f09bb44f8d1776">heim_ntlm_free_buf()</a>.</td></tr>
497   </table>
498 </dl>
499 <dl class="return" compact><dt><b>Returns:</b></dt><dd>In case of success 0 is return, an errors, a errno in what went wrong. </dd></dl>
500
501 </div>
502 </div><p>
503 <a class="anchor" name="g2860c6f6d497255eb433adc8cacc49dd"></a><!-- doxytag: member="ntlm.c::heim_ntlm_encode_type2" ref="g2860c6f6d497255eb433adc8cacc49dd" args="(const struct ntlm_type2 *type2, struct ntlm_buf *data)" -->
504 <div class="memitem">
505 <div class="memproto">
506       <table class="memname">
507         <tr>
508           <td class="memname">int heim_ntlm_encode_type2           </td>
509           <td>(</td>
510           <td class="paramtype">const struct <a class="el" href="structntlm__type2.html">ntlm_type2</a> *&nbsp;</td>
511           <td class="paramname"> <em>type2</em>, </td>
512         </tr>
513         <tr>
514           <td class="paramkey"></td>
515           <td></td>
516           <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
517           <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
518         </tr>
519         <tr>
520           <td></td>
521           <td>)</td>
522           <td></td><td></td><td></td>
523         </tr>
524       </table>
525 </div>
526 <div class="memdoc">
527
528 <p>
529 Encodes an <a class="el" href="structntlm__type2.html">ntlm_type2</a> message.<p>
530 <dl compact><dt><b>Parameters:</b></dt><dd>
531   <table border="0" cellspacing="2" cellpadding="0">
532     <tr><td valign="top"></td><td valign="top"><em>type2</em>&nbsp;</td><td>the <a class="el" href="structntlm__type2.html">ntlm_type2</a> message to encode. </td></tr>
533     <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>is the return buffer with the encoded message, should be freed with <a class="el" href="group__ntlm__core.html#g5f6c313a3a7258cda5f09bb44f8d1776">heim_ntlm_free_buf()</a>.</td></tr>
534   </table>
535 </dl>
536 <dl class="return" compact><dt><b>Returns:</b></dt><dd>In case of success 0 is return, an errors, a errno in what went wrong. </dd></dl>
537
538 </div>
539 </div><p>
540 <a class="anchor" name="g9cf026be6e602c22d62aa9e47e85c7c2"></a><!-- doxytag: member="ntlm.c::heim_ntlm_encode_type3" ref="g9cf026be6e602c22d62aa9e47e85c7c2" args="(const struct ntlm_type3 *type3, struct ntlm_buf *data)" -->
541 <div class="memitem">
542 <div class="memproto">
543       <table class="memname">
544         <tr>
545           <td class="memname">int heim_ntlm_encode_type3           </td>
546           <td>(</td>
547           <td class="paramtype">const struct <a class="el" href="structntlm__type3.html">ntlm_type3</a> *&nbsp;</td>
548           <td class="paramname"> <em>type3</em>, </td>
549         </tr>
550         <tr>
551           <td class="paramkey"></td>
552           <td></td>
553           <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
554           <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
555         </tr>
556         <tr>
557           <td></td>
558           <td>)</td>
559           <td></td><td></td><td></td>
560         </tr>
561       </table>
562 </div>
563 <div class="memdoc">
564
565 <p>
566 Encodes an <a class="el" href="structntlm__type3.html">ntlm_type3</a> message.<p>
567 <dl compact><dt><b>Parameters:</b></dt><dd>
568   <table border="0" cellspacing="2" cellpadding="0">
569     <tr><td valign="top"></td><td valign="top"><em>type3</em>&nbsp;</td><td>the <a class="el" href="structntlm__type3.html">ntlm_type3</a> message to encode. </td></tr>
570     <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>is the return buffer with the encoded message, should be freed with <a class="el" href="group__ntlm__core.html#g5f6c313a3a7258cda5f09bb44f8d1776">heim_ntlm_free_buf()</a>.</td></tr>
571   </table>
572 </dl>
573 <dl class="return" compact><dt><b>Returns:</b></dt><dd>In case of success 0 is return, an errors, a errno in what went wrong. </dd></dl>
574
575 </div>
576 </div><p>
577 <a class="anchor" name="g5f6c313a3a7258cda5f09bb44f8d1776"></a><!-- doxytag: member="ntlm.c::heim_ntlm_free_buf" ref="g5f6c313a3a7258cda5f09bb44f8d1776" args="(struct ntlm_buf *p)" -->
578 <div class="memitem">
579 <div class="memproto">
580       <table class="memname">
581         <tr>
582           <td class="memname">void heim_ntlm_free_buf           </td>
583           <td>(</td>
584           <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
585           <td class="paramname"> <em>p</em>          </td>
586           <td>&nbsp;)&nbsp;</td>
587           <td></td>
588         </tr>
589       </table>
590 </div>
591 <div class="memdoc">
592
593 <p>
594 heim_ntlm_free_buf frees the ntlm buffer<p>
595 <dl compact><dt><b>Parameters:</b></dt><dd>
596   <table border="0" cellspacing="2" cellpadding="0">
597     <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>buffer to be freed </td></tr>
598   </table>
599 </dl>
600
601 </div>
602 </div><p>
603 <a class="anchor" name="g704ec8c5dba05ef57186d242ff165565"></a><!-- doxytag: member="ntlm.c::heim_ntlm_free_targetinfo" ref="g704ec8c5dba05ef57186d242ff165565" args="(struct ntlm_targetinfo *ti)" -->
604 <div class="memitem">
605 <div class="memproto">
606       <table class="memname">
607         <tr>
608           <td class="memname">void heim_ntlm_free_targetinfo           </td>
609           <td>(</td>
610           <td class="paramtype">struct ntlm_targetinfo *&nbsp;</td>
611           <td class="paramname"> <em>ti</em>          </td>
612           <td>&nbsp;)&nbsp;</td>
613           <td></td>
614         </tr>
615       </table>
616 </div>
617 <div class="memdoc">
618
619 <p>
620 Frees the ntlm_targetinfo message<p>
621 <dl compact><dt><b>Parameters:</b></dt><dd>
622   <table border="0" cellspacing="2" cellpadding="0">
623     <tr><td valign="top"></td><td valign="top"><em>ti</em>&nbsp;</td><td>targetinfo to be freed </td></tr>
624   </table>
625 </dl>
626
627 </div>
628 </div><p>
629 <a class="anchor" name="g76fa6caf3f539e24008e31613f5eb663"></a><!-- doxytag: member="ntlm.c::heim_ntlm_free_type1" ref="g76fa6caf3f539e24008e31613f5eb663" args="(struct ntlm_type1 *data)" -->
630 <div class="memitem">
631 <div class="memproto">
632       <table class="memname">
633         <tr>
634           <td class="memname">void heim_ntlm_free_type1           </td>
635           <td>(</td>
636           <td class="paramtype">struct <a class="el" href="structntlm__type1.html">ntlm_type1</a> *&nbsp;</td>
637           <td class="paramname"> <em>data</em>          </td>
638           <td>&nbsp;)&nbsp;</td>
639           <td></td>
640         </tr>
641       </table>
642 </div>
643 <div class="memdoc">
644
645 <p>
646 Frees the <a class="el" href="structntlm__type1.html">ntlm_type1</a> message<p>
647 <dl compact><dt><b>Parameters:</b></dt><dd>
648   <table border="0" cellspacing="2" cellpadding="0">
649     <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>message to be freed </td></tr>
650   </table>
651 </dl>
652
653 </div>
654 </div><p>
655 <a class="anchor" name="g8fde84c86f1c7c9f730f7fb4acedcb43"></a><!-- doxytag: member="ntlm.c::heim_ntlm_free_type2" ref="g8fde84c86f1c7c9f730f7fb4acedcb43" args="(struct ntlm_type2 *data)" -->
656 <div class="memitem">
657 <div class="memproto">
658       <table class="memname">
659         <tr>
660           <td class="memname">void heim_ntlm_free_type2           </td>
661           <td>(</td>
662           <td class="paramtype">struct <a class="el" href="structntlm__type2.html">ntlm_type2</a> *&nbsp;</td>
663           <td class="paramname"> <em>data</em>          </td>
664           <td>&nbsp;)&nbsp;</td>
665           <td></td>
666         </tr>
667       </table>
668 </div>
669 <div class="memdoc">
670
671 <p>
672 Frees the <a class="el" href="structntlm__type2.html">ntlm_type2</a> message<p>
673 <dl compact><dt><b>Parameters:</b></dt><dd>
674   <table border="0" cellspacing="2" cellpadding="0">
675     <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>message to be freed </td></tr>
676   </table>
677 </dl>
678
679 </div>
680 </div><p>
681 <a class="anchor" name="gc4e6d01e5247b8540d41ccbbf1031319"></a><!-- doxytag: member="ntlm.c::heim_ntlm_free_type3" ref="gc4e6d01e5247b8540d41ccbbf1031319" args="(struct ntlm_type3 *data)" -->
682 <div class="memitem">
683 <div class="memproto">
684       <table class="memname">
685         <tr>
686           <td class="memname">void heim_ntlm_free_type3           </td>
687           <td>(</td>
688           <td class="paramtype">struct <a class="el" href="structntlm__type3.html">ntlm_type3</a> *&nbsp;</td>
689           <td class="paramname"> <em>data</em>          </td>
690           <td>&nbsp;)&nbsp;</td>
691           <td></td>
692         </tr>
693       </table>
694 </div>
695 <div class="memdoc">
696
697 <p>
698 Frees the <a class="el" href="structntlm__type3.html">ntlm_type3</a> message<p>
699 <dl compact><dt><b>Parameters:</b></dt><dd>
700   <table border="0" cellspacing="2" cellpadding="0">
701     <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>message to be freed </td></tr>
702   </table>
703 </dl>
704
705 </div>
706 </div><p>
707 <a class="anchor" name="g6ef0049af05a83d73b7a3d962e679c2a"></a><!-- doxytag: member="ntlm.c::heim_ntlm_keyex_unwrap" ref="g6ef0049af05a83d73b7a3d962e679c2a" args="(struct ntlm_buf *baseKey, struct ntlm_buf *encryptedSession, struct ntlm_buf *session)" -->
708 <div class="memitem">
709 <div class="memproto">
710       <table class="memname">
711         <tr>
712           <td class="memname">int heim_ntlm_keyex_unwrap           </td>
713           <td>(</td>
714           <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
715           <td class="paramname"> <em>baseKey</em>, </td>
716         </tr>
717         <tr>
718           <td class="paramkey"></td>
719           <td></td>
720           <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
721           <td class="paramname"> <em>encryptedSession</em>, </td>
722         </tr>
723         <tr>
724           <td class="paramkey"></td>
725           <td></td>
726           <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
727           <td class="paramname"> <em>session</em></td><td>&nbsp;</td>
728         </tr>
729         <tr>
730           <td></td>
731           <td>)</td>
732           <td></td><td></td><td></td>
733         </tr>
734       </table>
735 </div>
736 <div class="memdoc">
737
738 <p>
739 Given a key and encrypted session, unwrap the session key<p>
740 <dl compact><dt><b>Parameters:</b></dt><dd>
741   <table border="0" cellspacing="2" cellpadding="0">
742     <tr><td valign="top"></td><td valign="top"><em>baseKey</em>&nbsp;</td><td>the sessionBaseKey </td></tr>
743     <tr><td valign="top"></td><td valign="top"><em>encryptedSession</em>&nbsp;</td><td>encrypted session, type3.session field. </td></tr>
744     <tr><td valign="top"></td><td valign="top"><em>session</em>&nbsp;</td><td>generated session nonce, should be freed with <a class="el" href="group__ntlm__core.html#g5f6c313a3a7258cda5f09bb44f8d1776">heim_ntlm_free_buf()</a>.</td></tr>
745   </table>
746 </dl>
747 <dl class="return" compact><dt><b>Returns:</b></dt><dd>In case of success 0 is return, an errors, a errno in what went wrong. </dd></dl>
748
749 </div>
750 </div><p>
751 <a class="anchor" name="g254ee0a4d5a2594833e36697ad575d7e"></a><!-- doxytag: member="ntlm.c::heim_ntlm_nt_key" ref="g254ee0a4d5a2594833e36697ad575d7e" args="(const char *password, struct ntlm_buf *key)" -->
752 <div class="memitem">
753 <div class="memproto">
754       <table class="memname">
755         <tr>
756           <td class="memname">int heim_ntlm_nt_key           </td>
757           <td>(</td>
758           <td class="paramtype">const char *&nbsp;</td>
759           <td class="paramname"> <em>password</em>, </td>
760         </tr>
761         <tr>
762           <td class="paramkey"></td>
763           <td></td>
764           <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
765           <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
766         </tr>
767         <tr>
768           <td></td>
769           <td>)</td>
770           <td></td><td></td><td></td>
771         </tr>
772       </table>
773 </div>
774 <div class="memdoc">
775
776 <p>
777 Calculate the NTLM key, the password is assumed to be in UTF8.<p>
778 <dl compact><dt><b>Parameters:</b></dt><dd>
779   <table border="0" cellspacing="2" cellpadding="0">
780     <tr><td valign="top"></td><td valign="top"><em>password</em>&nbsp;</td><td>password to calcute the key for. </td></tr>
781     <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>calcuted key, should be freed with <a class="el" href="group__ntlm__core.html#g5f6c313a3a7258cda5f09bb44f8d1776">heim_ntlm_free_buf()</a>.</td></tr>
782   </table>
783 </dl>
784 <dl class="return" compact><dt><b>Returns:</b></dt><dd>In case of success 0 is return, an errors, a errno in what went wrong. </dd></dl>
785
786 </div>
787 </div><p>
788 <a class="anchor" name="g4c4c32652527acead6848052615ae284"></a><!-- doxytag: member="ntlm.c::heim_ntlm_ntlmv2_key" ref="g4c4c32652527acead6848052615ae284" args="(const void *key, size_t len, const char *username, const char *target, unsigned char ntlmv2[16])" -->
789 <div class="memitem">
790 <div class="memproto">
791       <table class="memname">
792         <tr>
793           <td class="memname">int heim_ntlm_ntlmv2_key           </td>
794           <td>(</td>
795           <td class="paramtype">const void *&nbsp;</td>
796           <td class="paramname"> <em>key</em>, </td>
797         </tr>
798         <tr>
799           <td class="paramkey"></td>
800           <td></td>
801           <td class="paramtype">size_t&nbsp;</td>
802           <td class="paramname"> <em>len</em>, </td>
803         </tr>
804         <tr>
805           <td class="paramkey"></td>
806           <td></td>
807           <td class="paramtype">const char *&nbsp;</td>
808           <td class="paramname"> <em>username</em>, </td>
809         </tr>
810         <tr>
811           <td class="paramkey"></td>
812           <td></td>
813           <td class="paramtype">const char *&nbsp;</td>
814           <td class="paramname"> <em>target</em>, </td>
815         </tr>
816         <tr>
817           <td class="paramkey"></td>
818           <td></td>
819           <td class="paramtype">unsigned char&nbsp;</td>
820           <td class="paramname"> <em>ntlmv2</em>[16]</td><td>&nbsp;</td>
821         </tr>
822         <tr>
823           <td></td>
824           <td>)</td>
825           <td></td><td></td><td></td>
826         </tr>
827       </table>
828 </div>
829 <div class="memdoc">
830
831 <p>
832 Generates an NTLMv2 session key.<p>
833 <dl compact><dt><b>Parameters:</b></dt><dd>
834   <table border="0" cellspacing="2" cellpadding="0">
835     <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>the ntlm key </td></tr>
836     <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>length of key </td></tr>
837     <tr><td valign="top"></td><td valign="top"><em>username</em>&nbsp;</td><td>name of the user, as sent in the message, assumed to be in UTF8. </td></tr>
838     <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>the name of the target, assumed to be in UTF8. </td></tr>
839     <tr><td valign="top"></td><td valign="top"><em>ntlmv2</em>&nbsp;</td><td>the ntlmv2 session key</td></tr>
840   </table>
841 </dl>
842 <dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, or an error code on failure. </dd></dl>
843
844 </div>
845 </div><p>
846 <a class="anchor" name="g3b3d6a5187cab6bfe656afa7a8273ca6"></a><!-- doxytag: member="ntlm.c::heim_ntlm_verify_ntlm2" ref="g3b3d6a5187cab6bfe656afa7a8273ca6" args="(const void *key, size_t len, const char *username, const char *target, time_t now, const unsigned char serverchallenge[8], const struct ntlm_buf *answer, struct ntlm_buf *infotarget, unsigned char ntlmv2[16])" -->
847 <div class="memitem">
848 <div class="memproto">
849       <table class="memname">
850         <tr>
851           <td class="memname">int heim_ntlm_verify_ntlm2           </td>
852           <td>(</td>
853           <td class="paramtype">const void *&nbsp;</td>
854           <td class="paramname"> <em>key</em>, </td>
855         </tr>
856         <tr>
857           <td class="paramkey"></td>
858           <td></td>
859           <td class="paramtype">size_t&nbsp;</td>
860           <td class="paramname"> <em>len</em>, </td>
861         </tr>
862         <tr>
863           <td class="paramkey"></td>
864           <td></td>
865           <td class="paramtype">const char *&nbsp;</td>
866           <td class="paramname"> <em>username</em>, </td>
867         </tr>
868         <tr>
869           <td class="paramkey"></td>
870           <td></td>
871           <td class="paramtype">const char *&nbsp;</td>
872           <td class="paramname"> <em>target</em>, </td>
873         </tr>
874         <tr>
875           <td class="paramkey"></td>
876           <td></td>
877           <td class="paramtype">time_t&nbsp;</td>
878           <td class="paramname"> <em>now</em>, </td>
879         </tr>
880         <tr>
881           <td class="paramkey"></td>
882           <td></td>
883           <td class="paramtype">const unsigned char&nbsp;</td>
884           <td class="paramname"> <em>serverchallenge</em>[8], </td>
885         </tr>
886         <tr>
887           <td class="paramkey"></td>
888           <td></td>
889           <td class="paramtype">const struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
890           <td class="paramname"> <em>answer</em>, </td>
891         </tr>
892         <tr>
893           <td class="paramkey"></td>
894           <td></td>
895           <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> *&nbsp;</td>
896           <td class="paramname"> <em>infotarget</em>, </td>
897         </tr>
898         <tr>
899           <td class="paramkey"></td>
900           <td></td>
901           <td class="paramtype">unsigned char&nbsp;</td>
902           <td class="paramname"> <em>ntlmv2</em>[16]</td><td>&nbsp;</td>
903         </tr>
904         <tr>
905           <td></td>
906           <td>)</td>
907           <td></td><td></td><td></td>
908         </tr>
909       </table>
910 </div>
911 <div class="memdoc">
912
913 <p>
914 Verify NTLMv2 response.<p>
915 <dl compact><dt><b>Parameters:</b></dt><dd>
916   <table border="0" cellspacing="2" cellpadding="0">
917     <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>the ntlm key </td></tr>
918     <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>length of key </td></tr>
919     <tr><td valign="top"></td><td valign="top"><em>username</em>&nbsp;</td><td>name of the user, as sent in the message, assumed to be in UTF8. </td></tr>
920     <tr><td valign="top"></td><td valign="top"><em>target</em>&nbsp;</td><td>the name of the target, assumed to be in UTF8. </td></tr>
921     <tr><td valign="top"></td><td valign="top"><em>now</em>&nbsp;</td><td>the time now (0 if the library should pick it up itself) </td></tr>
922     <tr><td valign="top"></td><td valign="top"><em>serverchallenge</em>&nbsp;</td><td>challenge as sent by the server in the type2 message. </td></tr>
923     <tr><td valign="top"></td><td valign="top"><em>answer</em>&nbsp;</td><td>ntlm response answer, should be freed with <a class="el" href="group__ntlm__core.html#g5f6c313a3a7258cda5f09bb44f8d1776">heim_ntlm_free_buf()</a>. </td></tr>
924     <tr><td valign="top"></td><td valign="top"><em>infotarget</em>&nbsp;</td><td>infotarget as sent by the server in the type2 message. </td></tr>
925     <tr><td valign="top"></td><td valign="top"><em>ntlmv2</em>&nbsp;</td><td>calculated session key</td></tr>
926   </table>
927 </dl>
928 <dl class="return" compact><dt><b>Returns:</b></dt><dd>In case of success 0 is return, an errors, a errno in what went wrong. </dd></dl>
929
930 </div>
931 </div><p>
932 </div>
933 <hr size="1"><address style="text-align: right;"><small>
934 Generated on Wed Jan 11 14:07:50 2012 for Heimdalntlmlibrary by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6</small></address>
935 </body>
936 </html>