003 File Manager
Current Path:
/usr/src/crypto/heimdal/doc/doxyout/ntlm/html
usr
/
src
/
crypto
/
heimdal
/
doc
/
doxyout
/
ntlm
/
html
/
📁
..
📄
annotated.html
(1.95 KB)
📄
doxygen.css
(8.88 KB)
📄
doxygen.png
(1.25 KB)
📄
examples.html
(1.28 KB)
📄
functions.html
(3.69 KB)
📄
functions_vars.html
(3.59 KB)
📄
graph_legend.dot
(2.12 KB)
📄
graph_legend.html
(4.61 KB)
📄
graph_legend.png
(4.16 KB)
📄
group__ntlm__core.html
(46.44 KB)
📄
index.html
(2.34 KB)
📄
modules.html
(1.29 KB)
📄
structntlm__buf.html
(3.78 KB)
📄
structntlm__type1.html
(5.38 KB)
📄
structntlm__type2.html
(7.37 KB)
📄
structntlm__type2__coll__graph.map
(93 B)
📄
structntlm__type2__coll__graph.md5
(32 B)
📄
structntlm__type2__coll__graph.png
(821 B)
📄
structntlm__type3.html
(9.02 KB)
📄
structntlm__type3__coll__graph.map
(93 B)
📄
structntlm__type3__coll__graph.md5
(32 B)
📄
structntlm__type3__coll__graph.png
(951 B)
📄
tab_b.gif
(35 B)
📄
tab_l.gif
(706 B)
📄
tab_r.gif
(2.52 KB)
📄
tabs.css
(1.72 KB)
📄
test__ntlm_8c-example.html
(24.11 KB)
Editing: group__ntlm__core.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Heimdalntlmlibrary: Heimdal NTLM library</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <p> <a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a> </p> <!-- end of header marker --> <!-- Generated by Doxygen 1.5.6 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> </ul> </div> </div> <div class="contents"> <h1>Heimdal NTLM library</h1><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </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> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </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> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </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> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </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> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </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> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </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> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </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> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </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> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </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> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </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> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </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> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </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> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </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> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </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> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </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> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </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> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </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> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </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> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </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> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> The NTLM core functions implement the string2key generation function, message encode and decode function, and the hash function functions. <hr><h2>Function Documentation</h2> <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)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int heim_ntlm_build_ntlm1_master </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>session</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>master</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Generates an NTLMv1 session random with assosited session master key.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the ntlm v1 key </td></tr> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>length of key </td></tr> <tr><td valign="top"></td><td valign="top"><em>session</em> </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> <tr><td valign="top"></td><td valign="top"><em>master</em> </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> </table> </dl> <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> </div> </div><p> <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)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int heim_ntlm_build_ntlm2_master </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>blob</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>session</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>master</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Generates an NTLMv2 session random with associated session master key.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the NTLMv2 key </td></tr> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>length of key </td></tr> <tr><td valign="top"></td><td valign="top"><em>blob</em> </td><td>the NTLMv2 "blob" </td></tr> <tr><td valign="top"></td><td valign="top"><em>session</em> </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> <tr><td valign="top"></td><td valign="top"><em>master</em> </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> </table> </dl> <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> </div> </div><p> <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)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int heim_ntlm_calculate_lm2 </td> <td>(</td> <td class="paramtype">const void * </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>username</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>target</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char </td> <td class="paramname"> <em>serverchallenge</em>[8], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned char </td> <td class="paramname"> <em>ntlmv2</em>[16], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>answer</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Calculate LMv2 response<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the ntlm key </td></tr> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>length of key </td></tr> <tr><td valign="top"></td><td valign="top"><em>username</em> </td><td>name of the user, as sent in the message, assumed to be in UTF8. </td></tr> <tr><td valign="top"></td><td valign="top"><em>target</em> </td><td>the name of the target, assumed to be in UTF8. </td></tr> <tr><td valign="top"></td><td valign="top"><em>serverchallenge</em> </td><td>challenge as sent by the server in the type2 message. </td></tr> <tr><td valign="top"></td><td valign="top"><em>ntlmv2</em> </td><td>calculated session key </td></tr> <tr><td valign="top"></td><td valign="top"><em>answer</em> </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> </table> </dl> <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> </div> </div><p> <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)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int heim_ntlm_calculate_ntlm1 </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned char </td> <td class="paramname"> <em>challenge</em>[8], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>answer</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Calculate NTLMv1 response hash<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the ntlm v1 key </td></tr> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>length of key </td></tr> <tr><td valign="top"></td><td valign="top"><em>challenge</em> </td><td>sent by the server </td></tr> <tr><td valign="top"></td><td valign="top"><em>answer</em> </td><td>calculated answer, should be freed with <a class="el" href="group__ntlm__core.html#g5f6c313a3a7258cda5f09bb44f8d1776">heim_ntlm_free_buf()</a>.</td></tr> </table> </dl> <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> </div> </div><p> <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)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int heim_ntlm_calculate_ntlm2 </td> <td>(</td> <td class="paramtype">const void * </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>username</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>target</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char </td> <td class="paramname"> <em>serverchallenge</em>[8], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>infotarget</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned char </td> <td class="paramname"> <em>ntlmv2</em>[16], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>answer</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Calculate NTLMv2 response<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the ntlm key </td></tr> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>length of key </td></tr> <tr><td valign="top"></td><td valign="top"><em>username</em> </td><td>name of the user, as sent in the message, assumed to be in UTF8. </td></tr> <tr><td valign="top"></td><td valign="top"><em>target</em> </td><td>the name of the target, assumed to be in UTF8. </td></tr> <tr><td valign="top"></td><td valign="top"><em>serverchallenge</em> </td><td>challenge as sent by the server in the type2 message. </td></tr> <tr><td valign="top"></td><td valign="top"><em>infotarget</em> </td><td>infotarget as sent by the server in the type2 message. </td></tr> <tr><td valign="top"></td><td valign="top"><em>ntlmv2</em> </td><td>calculated session key </td></tr> <tr><td valign="top"></td><td valign="top"><em>answer</em> </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> </table> </dl> <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> </div> </div><p> <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)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int heim_ntlm_decode_targetinfo </td> <td>(</td> <td class="paramtype">const struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>ucs2</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct ntlm_targetinfo * </td> <td class="paramname"> <em>ti</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Decodes an NTLM targetinfo message<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>input data buffer with the encode NTLM targetinfo message </td></tr> <tr><td valign="top"></td><td valign="top"><em>ucs2</em> </td><td>if the strings should be encoded with ucs2 (selected by flag in message). </td></tr> <tr><td valign="top"></td><td valign="top"><em>ti</em> </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> </table> </dl> <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> </div> </div><p> <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)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int heim_ntlm_encode_targetinfo </td> <td>(</td> <td class="paramtype">const struct ntlm_targetinfo * </td> <td class="paramname"> <em>ti</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>ucs2</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>data</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Encodes a ntlm_targetinfo message.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ti</em> </td><td>the ntlm_targetinfo message to encode. </td></tr> <tr><td valign="top"></td><td valign="top"><em>ucs2</em> </td><td>ignored </td></tr> <tr><td valign="top"></td><td valign="top"><em>data</em> </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> </table> </dl> <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> </div> </div><p> <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)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int heim_ntlm_encode_type1 </td> <td>(</td> <td class="paramtype">const struct <a class="el" href="structntlm__type1.html">ntlm_type1</a> * </td> <td class="paramname"> <em>type1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>data</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Encodes an <a class="el" href="structntlm__type1.html">ntlm_type1</a> message.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>type1</em> </td><td>the <a class="el" href="structntlm__type1.html">ntlm_type1</a> message to encode. </td></tr> <tr><td valign="top"></td><td valign="top"><em>data</em> </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> </table> </dl> <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> </div> </div><p> <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)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int heim_ntlm_encode_type2 </td> <td>(</td> <td class="paramtype">const struct <a class="el" href="structntlm__type2.html">ntlm_type2</a> * </td> <td class="paramname"> <em>type2</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>data</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Encodes an <a class="el" href="structntlm__type2.html">ntlm_type2</a> message.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>type2</em> </td><td>the <a class="el" href="structntlm__type2.html">ntlm_type2</a> message to encode. </td></tr> <tr><td valign="top"></td><td valign="top"><em>data</em> </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> </table> </dl> <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> </div> </div><p> <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)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int heim_ntlm_encode_type3 </td> <td>(</td> <td class="paramtype">const struct <a class="el" href="structntlm__type3.html">ntlm_type3</a> * </td> <td class="paramname"> <em>type3</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>data</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Encodes an <a class="el" href="structntlm__type3.html">ntlm_type3</a> message.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>type3</em> </td><td>the <a class="el" href="structntlm__type3.html">ntlm_type3</a> message to encode. </td></tr> <tr><td valign="top"></td><td valign="top"><em>data</em> </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> </table> </dl> <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> </div> </div><p> <a class="anchor" name="g5f6c313a3a7258cda5f09bb44f8d1776"></a><!-- doxytag: member="ntlm.c::heim_ntlm_free_buf" ref="g5f6c313a3a7258cda5f09bb44f8d1776" args="(struct ntlm_buf *p)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void heim_ntlm_free_buf </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>p</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> heim_ntlm_free_buf frees the ntlm buffer<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>buffer to be freed </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="g704ec8c5dba05ef57186d242ff165565"></a><!-- doxytag: member="ntlm.c::heim_ntlm_free_targetinfo" ref="g704ec8c5dba05ef57186d242ff165565" args="(struct ntlm_targetinfo *ti)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void heim_ntlm_free_targetinfo </td> <td>(</td> <td class="paramtype">struct ntlm_targetinfo * </td> <td class="paramname"> <em>ti</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Frees the ntlm_targetinfo message<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ti</em> </td><td>targetinfo to be freed </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="g76fa6caf3f539e24008e31613f5eb663"></a><!-- doxytag: member="ntlm.c::heim_ntlm_free_type1" ref="g76fa6caf3f539e24008e31613f5eb663" args="(struct ntlm_type1 *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void heim_ntlm_free_type1 </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structntlm__type1.html">ntlm_type1</a> * </td> <td class="paramname"> <em>data</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Frees the <a class="el" href="structntlm__type1.html">ntlm_type1</a> message<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>message to be freed </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="g8fde84c86f1c7c9f730f7fb4acedcb43"></a><!-- doxytag: member="ntlm.c::heim_ntlm_free_type2" ref="g8fde84c86f1c7c9f730f7fb4acedcb43" args="(struct ntlm_type2 *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void heim_ntlm_free_type2 </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structntlm__type2.html">ntlm_type2</a> * </td> <td class="paramname"> <em>data</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Frees the <a class="el" href="structntlm__type2.html">ntlm_type2</a> message<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>message to be freed </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="gc4e6d01e5247b8540d41ccbbf1031319"></a><!-- doxytag: member="ntlm.c::heim_ntlm_free_type3" ref="gc4e6d01e5247b8540d41ccbbf1031319" args="(struct ntlm_type3 *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void heim_ntlm_free_type3 </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structntlm__type3.html">ntlm_type3</a> * </td> <td class="paramname"> <em>data</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Frees the <a class="el" href="structntlm__type3.html">ntlm_type3</a> message<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>message to be freed </td></tr> </table> </dl> </div> </div><p> <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)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int heim_ntlm_keyex_unwrap </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>baseKey</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>encryptedSession</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>session</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Given a key and encrypted session, unwrap the session key<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>baseKey</em> </td><td>the sessionBaseKey </td></tr> <tr><td valign="top"></td><td valign="top"><em>encryptedSession</em> </td><td>encrypted session, type3.session field. </td></tr> <tr><td valign="top"></td><td valign="top"><em>session</em> </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> </table> </dl> <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> </div> </div><p> <a class="anchor" name="g254ee0a4d5a2594833e36697ad575d7e"></a><!-- doxytag: member="ntlm.c::heim_ntlm_nt_key" ref="g254ee0a4d5a2594833e36697ad575d7e" args="(const char *password, struct ntlm_buf *key)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int heim_ntlm_nt_key </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>password</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>key</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Calculate the NTLM key, the password is assumed to be in UTF8.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>password</em> </td><td>password to calcute the key for. </td></tr> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>calcuted key, should be freed with <a class="el" href="group__ntlm__core.html#g5f6c313a3a7258cda5f09bb44f8d1776">heim_ntlm_free_buf()</a>.</td></tr> </table> </dl> <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> </div> </div><p> <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])" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int heim_ntlm_ntlmv2_key </td> <td>(</td> <td class="paramtype">const void * </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>username</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>target</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned char </td> <td class="paramname"> <em>ntlmv2</em>[16]</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Generates an NTLMv2 session key.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the ntlm key </td></tr> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>length of key </td></tr> <tr><td valign="top"></td><td valign="top"><em>username</em> </td><td>name of the user, as sent in the message, assumed to be in UTF8. </td></tr> <tr><td valign="top"></td><td valign="top"><em>target</em> </td><td>the name of the target, assumed to be in UTF8. </td></tr> <tr><td valign="top"></td><td valign="top"><em>ntlmv2</em> </td><td>the ntlmv2 session key</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, or an error code on failure. </dd></dl> </div> </div><p> <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])" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int heim_ntlm_verify_ntlm2 </td> <td>(</td> <td class="paramtype">const void * </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>username</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>target</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"> <em>now</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char </td> <td class="paramname"> <em>serverchallenge</em>[8], </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>answer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="structntlm__buf.html">ntlm_buf</a> * </td> <td class="paramname"> <em>infotarget</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned char </td> <td class="paramname"> <em>ntlmv2</em>[16]</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Verify NTLMv2 response.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the ntlm key </td></tr> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>length of key </td></tr> <tr><td valign="top"></td><td valign="top"><em>username</em> </td><td>name of the user, as sent in the message, assumed to be in UTF8. </td></tr> <tr><td valign="top"></td><td valign="top"><em>target</em> </td><td>the name of the target, assumed to be in UTF8. </td></tr> <tr><td valign="top"></td><td valign="top"><em>now</em> </td><td>the time now (0 if the library should pick it up itself) </td></tr> <tr><td valign="top"></td><td valign="top"><em>serverchallenge</em> </td><td>challenge as sent by the server in the type2 message. </td></tr> <tr><td valign="top"></td><td valign="top"><em>answer</em> </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> <tr><td valign="top"></td><td valign="top"><em>infotarget</em> </td><td>infotarget as sent by the server in the type2 message. </td></tr> <tr><td valign="top"></td><td valign="top"><em>ntlmv2</em> </td><td>calculated session key</td></tr> </table> </dl> <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> </div> </div><p> </div> <hr size="1"><address style="text-align: right;"><small> Generated on Wed Jan 11 14:07:50 2012 for Heimdalntlmlibrary by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6</small></address> </body> </html>
Upload File
Create Folder