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>HeimdalGSS-APIlibrary: Heimdal GSS-API functions</title>
4 <link href="doxygen.css" rel="stylesheet" type="text/css">
5 <link href="tabs.css" rel="stylesheet" type="text/css">
8 <a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
10 <!-- end of header marker -->
11 <!-- Generated by Doxygen 1.5.6 -->
12 <div class="navigation" id="top">
15 <li><a href="index.html"><span>Main Page</span></a></li>
16 <li><a href="pages.html"><span>Related Pages</span></a></li>
17 <li><a href="modules.html"><span>Modules</span></a></li>
21 <div class="contents">
22 <h1>Heimdal GSS-API functions</h1><table border="0" cellpadding="0" cellspacing="0">
24 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
25 <tr><td class="memItemLeft" nowrap align="right" valign="top">GSSAPI_LIB_FUNCTION OM_uint32 <br>
26 GSSAPI_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gssapi.html#g233373d4e0baa31615eb4d4f0ccb9683">gss_add_oid_set_member</a> (OM_uint32 *minor_status, const gss_OID member_oid, gss_OID_set *oid_set)</td></tr>
28 <tr><td class="memItemLeft" nowrap align="right" valign="top">GSSAPI_LIB_FUNCTION OM_uint32 <br>
29 GSSAPI_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gssapi.html#gb02ec963066cc8e5e6682799457208e9">gss_wrap_iov</a> (OM_uint32 *minor_status, gss_ctx_id_t context_handle, int conf_req_flag, gss_qop_t qop_req, int *conf_state, gss_iov_buffer_desc *iov, int iov_count)</td></tr>
31 <tr><td class="memItemLeft" nowrap align="right" valign="top">GSSAPI_LIB_FUNCTION OM_uint32 <br>
32 GSSAPI_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gssapi.html#g399bb326e47574aca7b28d6886d29fd0">gss_unwrap_iov</a> (OM_uint32 *minor_status, gss_ctx_id_t context_handle, int *conf_state, gss_qop_t *qop_state, gss_iov_buffer_desc *iov, int iov_count)</td></tr>
34 <tr><td class="memItemLeft" nowrap align="right" valign="top">GSSAPI_LIB_FUNCTION OM_uint32 <br>
35 GSSAPI_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gssapi.html#g6216cfcb1ba8dc2d1a1d680d21752f26">gss_wrap_iov_length</a> (OM_uint32 *minor_status, gss_ctx_id_t context_handle, int conf_req_flag, gss_qop_t qop_req, int *conf_state, gss_iov_buffer_desc *iov, int iov_count)</td></tr>
37 <tr><td class="memItemLeft" nowrap align="right" valign="top">GSSAPI_LIB_FUNCTION OM_uint32 <br>
38 GSSAPI_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gssapi.html#g2dbb20a4c9a3cf5072ef081cd37e54b4">gss_release_iov_buffer</a> (OM_uint32 *minor_status, gss_iov_buffer_desc *iov, int iov_count)</td></tr>
40 <tr><td class="memItemLeft" nowrap align="right" valign="top">GSSAPI_LIB_FUNCTION OM_uint32 <br>
41 GSSAPI_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gssapi.html#g06e9814b830ed2fc4a756775a5bfd943">gss_canonicalize_name</a> (OM_uint32 *minor_status, const gss_name_t input_name, const gss_OID mech_type, gss_name_t *output_name)</td></tr>
43 <tr><td class="memItemLeft" nowrap align="right" valign="top">GSSAPI_LIB_FUNCTION OM_uint32 <br>
44 GSSAPI_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gssapi.html#g0afe06fd5264ebfb93ecca4bcc70895b">gss_import_name</a> (OM_uint32 *minor_status, const gss_buffer_t input_name_buffer, const gss_OID input_name_type, gss_name_t *output_name)</td></tr>
46 <tr><td class="memItemLeft" nowrap align="right" valign="top">GSSAPI_LIB_FUNCTION OM_uint32 <br>
47 GSSAPI_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gssapi.html#g8eb94eab14874226b748710f833474eb">gss_init_sec_context</a> (OM_uint32 *minor_status, const gss_cred_id_t initiator_cred_handle, gss_ctx_id_t *context_handle, const gss_name_t target_name, const gss_OID input_mech_type, OM_uint32 req_flags, OM_uint32 time_req, const gss_channel_bindings_t input_chan_bindings, const gss_buffer_t input_token, gss_OID *actual_mech_type, gss_buffer_t output_token, OM_uint32 *ret_flags, OM_uint32 *time_rec)</td></tr>
49 <tr><td class="memItemLeft" nowrap align="right" valign="top">GSSAPI_LIB_FUNCTION OM_uint32 <br>
50 GSSAPI_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gssapi.html#gdc725eaf82322d8cf50812fc26442893">gss_inquire_saslname_for_mech</a> (OM_uint32 *minor_status, const gss_OID desired_mech, gss_buffer_t sasl_mech_name, gss_buffer_t mech_name, gss_buffer_t mech_description)</td></tr>
52 <tr><td class="memItemLeft" nowrap align="right" valign="top">GSSAPI_LIB_FUNCTION OM_uint32 <br>
53 GSSAPI_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gssapi.html#gf472671a43512495de04ca0c69079e5d">gss_inquire_attrs_for_mech</a> (OM_uint32 *minor_status, gss_const_OID mech, gss_OID_set *mech_attr, gss_OID_set *known_mech_attrs)</td></tr>
55 <tr><td class="memItemLeft" nowrap align="right" valign="top">GSSAPI_LIB_FUNCTION int <br>
56 GSSAPI_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gssapi.html#gc98677df7ae9bbc387cd68002a97ad15">gss_oid_equal</a> (gss_const_OID a, gss_const_OID b)</td></tr>
58 <tr><td class="memItemLeft" nowrap align="right" valign="top">GSSAPI_LIB_FUNCTION OM_uint32 <br>
59 GSSAPI_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gssapi.html#gd2990721c56fe83e06d45648874680d7">gss_release_cred</a> (OM_uint32 *minor_status, gss_cred_id_t *cred_handle)</td></tr>
61 <tr><td class="memItemLeft" nowrap align="right" valign="top">GSSAPI_LIB_FUNCTION OM_uint32 <br>
62 GSSAPI_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gssapi.html#g0691190338f1f24170bd5f695ff1e721">gss_release_name</a> (OM_uint32 *minor_status, gss_name_t *input_name)</td></tr>
64 <tr><td class="memItemLeft" nowrap align="right" valign="top">GSSAPI_LIB_FUNCTION OM_uint32 <br>
65 GSSAPI_LIB_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gssapi.html#g89a6d98056b75a8a25152de268833f51">gss_wrap</a> (OM_uint32 *minor_status, const gss_ctx_id_t context_handle, int conf_req_flag, gss_qop_t qop_req, const gss_buffer_t input_message_buffer, int *conf_state, gss_buffer_t output_message_buffer)</td></tr>
67 <tr><td colspan="2"><br><h2>Variables</h2></td></tr>
68 <tr><td class="memItemLeft" nowrap align="right" valign="top">gss_OID_desc GSSAPI_LIB_FUNCTION </td><td class="memItemRight" valign="bottom"><a class="el" href="group__gssapi.html#g961f7a7f9f92e06b91c6d503e524a672">__gss_c_attr_stream_sizes_oid_desc</a></td></tr>
71 <hr><a name="_details"></a><h2>Detailed Description</h2>
72 <hr><h2>Function Documentation</h2>
73 <a class="anchor" name="g233373d4e0baa31615eb4d4f0ccb9683"></a><!-- doxytag: member="gss_add_oid_set_member.c::gss_add_oid_set_member" ref="g233373d4e0baa31615eb4d4f0ccb9683" args="(OM_uint32 *minor_status, const gss_OID member_oid, gss_OID_set *oid_set)" -->
75 <div class="memproto">
76 <table class="memname">
78 <td class="memname">GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_add_oid_set_member </td>
80 <td class="paramtype">OM_uint32 * </td>
81 <td class="paramname"> <em>minor_status</em>, </td>
84 <td class="paramkey"></td>
86 <td class="paramtype">const gss_OID </td>
87 <td class="paramname"> <em>member_oid</em>, </td>
90 <td class="paramkey"></td>
92 <td class="paramtype">gss_OID_set * </td>
93 <td class="paramname"> <em>oid_set</em></td><td> </td>
98 <td></td><td></td><td></td>
105 Add a oid to the oid set, function does not make a copy of the oid, so the pointer to member_oid needs to be stable for the whole time oid_set is used.<p>
106 If there is a duplicate member of the oid, the new member is not added to to the set.<p>
107 <dl compact><dt><b>Parameters:</b></dt><dd>
108 <table border="0" cellspacing="2" cellpadding="0">
109 <tr><td valign="top"></td><td valign="top"><em>minor_status</em> </td><td>minor status code. </td></tr>
110 <tr><td valign="top"></td><td valign="top"><em>member_oid</em> </td><td>member to add to the oid set </td></tr>
111 <tr><td valign="top"></td><td valign="top"><em>oid_set</em> </td><td>oid set to add the member too</td></tr>
114 <dl class="return" compact><dt><b>Returns:</b></dt><dd>a gss_error code, see gss_display_status() about printing the error code. </dd></dl>
118 <a class="anchor" name="g06e9814b830ed2fc4a756775a5bfd943"></a><!-- doxytag: member="gss_canonicalize_name.c::gss_canonicalize_name" ref="g06e9814b830ed2fc4a756775a5bfd943" args="(OM_uint32 *minor_status, const gss_name_t input_name, const gss_OID mech_type, gss_name_t *output_name)" -->
119 <div class="memitem">
120 <div class="memproto">
121 <table class="memname">
123 <td class="memname">GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_canonicalize_name </td>
125 <td class="paramtype">OM_uint32 * </td>
126 <td class="paramname"> <em>minor_status</em>, </td>
129 <td class="paramkey"></td>
131 <td class="paramtype">const gss_name_t </td>
132 <td class="paramname"> <em>input_name</em>, </td>
135 <td class="paramkey"></td>
137 <td class="paramtype">const gss_OID </td>
138 <td class="paramname"> <em>mech_type</em>, </td>
141 <td class="paramkey"></td>
143 <td class="paramtype">gss_name_t * </td>
144 <td class="paramname"> <em>output_name</em></td><td> </td>
149 <td></td><td></td><td></td>
156 gss_canonicalize_name takes a Internal Name (IN) and converts in into a mechanism specific Mechanism Name (MN).<p>
157 The input name may multiple name, or generic name types.<p>
158 If the input_name if of the GSS_C_NT_USER_NAME, and the Kerberos mechanism is specified, the resulting MN type is a GSS_KRB5_NT_PRINCIPAL_NAME.<p>
159 For more information about <a class="el" href="internalvsmechname.html">internalVSmechname</a>.<p>
160 <dl compact><dt><b>Parameters:</b></dt><dd>
161 <table border="0" cellspacing="2" cellpadding="0">
162 <tr><td valign="top"></td><td valign="top"><em>minor_status</em> </td><td>minor status code. </td></tr>
163 <tr><td valign="top"></td><td valign="top"><em>input_name</em> </td><td>name to covert, unchanged by <a class="el" href="group__gssapi.html#g06e9814b830ed2fc4a756775a5bfd943">gss_canonicalize_name()</a>. </td></tr>
164 <tr><td valign="top"></td><td valign="top"><em>mech_type</em> </td><td>the type to convert Name too. </td></tr>
165 <tr><td valign="top"></td><td valign="top"><em>output_name</em> </td><td>the resulting type, release with <a class="el" href="group__gssapi.html#g0691190338f1f24170bd5f695ff1e721">gss_release_name()</a>, independent of input_name.</td></tr>
168 <dl class="return" compact><dt><b>Returns:</b></dt><dd>a gss_error code, see gss_display_status() about printing the error code. </dd></dl>
172 <a class="anchor" name="g0afe06fd5264ebfb93ecca4bcc70895b"></a><!-- doxytag: member="gss_import_name.c::gss_import_name" ref="g0afe06fd5264ebfb93ecca4bcc70895b" args="(OM_uint32 *minor_status, const gss_buffer_t input_name_buffer, const gss_OID input_name_type, gss_name_t *output_name)" -->
173 <div class="memitem">
174 <div class="memproto">
175 <table class="memname">
177 <td class="memname">GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_import_name </td>
179 <td class="paramtype">OM_uint32 * </td>
180 <td class="paramname"> <em>minor_status</em>, </td>
183 <td class="paramkey"></td>
185 <td class="paramtype">const gss_buffer_t </td>
186 <td class="paramname"> <em>input_name_buffer</em>, </td>
189 <td class="paramkey"></td>
191 <td class="paramtype">const gss_OID </td>
192 <td class="paramname"> <em>input_name_type</em>, </td>
195 <td class="paramkey"></td>
197 <td class="paramtype">gss_name_t * </td>
198 <td class="paramname"> <em>output_name</em></td><td> </td>
203 <td></td><td></td><td></td>
210 Import a name internal or mechanism name<p>
211 Type of name and their format:<ul>
212 <li>GSS_C_NO_OID</li><li>GSS_C_NT_USER_NAME</li><li>GSS_C_NT_HOSTBASED_SERVICE</li><li>GSS_C_NT_EXPORT_NAME</li><li>GSS_C_NT_ANONYMOUS</li><li>GSS_KRB5_NT_PRINCIPAL_NAME</li></ul>
214 For more information about <a class="el" href="internalvsmechname.html">internalVSmechname</a>.<p>
215 <dl compact><dt><b>Parameters:</b></dt><dd>
216 <table border="0" cellspacing="2" cellpadding="0">
217 <tr><td valign="top"></td><td valign="top"><em>minor_status</em> </td><td>minor status code </td></tr>
218 <tr><td valign="top"></td><td valign="top"><em>input_name_buffer</em> </td><td>import name buffer </td></tr>
219 <tr><td valign="top"></td><td valign="top"><em>input_name_type</em> </td><td>type of the import name buffer </td></tr>
220 <tr><td valign="top"></td><td valign="top"><em>output_name</em> </td><td>the resulting type, release with <a class="el" href="group__gssapi.html#g0691190338f1f24170bd5f695ff1e721">gss_release_name()</a>, independent of input_name</td></tr>
223 <dl class="return" compact><dt><b>Returns:</b></dt><dd>a gss_error code, see gss_display_status() about printing the error code. </dd></dl>
227 <a class="anchor" name="g8eb94eab14874226b748710f833474eb"></a><!-- doxytag: member="gss_init_sec_context.c::gss_init_sec_context" ref="g8eb94eab14874226b748710f833474eb" args="(OM_uint32 *minor_status, const gss_cred_id_t initiator_cred_handle, gss_ctx_id_t *context_handle, const gss_name_t target_name, const gss_OID input_mech_type, OM_uint32 req_flags, OM_uint32 time_req, const gss_channel_bindings_t input_chan_bindings, const gss_buffer_t input_token, gss_OID *actual_mech_type, gss_buffer_t output_token, OM_uint32 *ret_flags, OM_uint32 *time_rec)" -->
228 <div class="memitem">
229 <div class="memproto">
230 <table class="memname">
232 <td class="memname">GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_init_sec_context </td>
234 <td class="paramtype">OM_uint32 * </td>
235 <td class="paramname"> <em>minor_status</em>, </td>
238 <td class="paramkey"></td>
240 <td class="paramtype">const gss_cred_id_t </td>
241 <td class="paramname"> <em>initiator_cred_handle</em>, </td>
244 <td class="paramkey"></td>
246 <td class="paramtype">gss_ctx_id_t * </td>
247 <td class="paramname"> <em>context_handle</em>, </td>
250 <td class="paramkey"></td>
252 <td class="paramtype">const gss_name_t </td>
253 <td class="paramname"> <em>target_name</em>, </td>
256 <td class="paramkey"></td>
258 <td class="paramtype">const gss_OID </td>
259 <td class="paramname"> <em>input_mech_type</em>, </td>
262 <td class="paramkey"></td>
264 <td class="paramtype">OM_uint32 </td>
265 <td class="paramname"> <em>req_flags</em>, </td>
268 <td class="paramkey"></td>
270 <td class="paramtype">OM_uint32 </td>
271 <td class="paramname"> <em>time_req</em>, </td>
274 <td class="paramkey"></td>
276 <td class="paramtype">const gss_channel_bindings_t </td>
277 <td class="paramname"> <em>input_chan_bindings</em>, </td>
280 <td class="paramkey"></td>
282 <td class="paramtype">const gss_buffer_t </td>
283 <td class="paramname"> <em>input_token</em>, </td>
286 <td class="paramkey"></td>
288 <td class="paramtype">gss_OID * </td>
289 <td class="paramname"> <em>actual_mech_type</em>, </td>
292 <td class="paramkey"></td>
294 <td class="paramtype">gss_buffer_t </td>
295 <td class="paramname"> <em>output_token</em>, </td>
298 <td class="paramkey"></td>
300 <td class="paramtype">OM_uint32 * </td>
301 <td class="paramname"> <em>ret_flags</em>, </td>
304 <td class="paramkey"></td>
306 <td class="paramtype">OM_uint32 * </td>
307 <td class="paramname"> <em>time_rec</em></td><td> </td>
312 <td></td><td></td><td></td>
319 As the initiator build a context with an acceptor.<p>
320 Returns in the major<ul>
321 <li>GSS_S_COMPLETE - if the context if build</li><li>GSS_S_CONTINUE_NEEDED - if the caller needs to continue another round of gss_i nit_sec_context</li><li>error code - any other error code</li></ul>
323 <dl compact><dt><b>Parameters:</b></dt><dd>
324 <table border="0" cellspacing="2" cellpadding="0">
325 <tr><td valign="top"></td><td valign="top"><em>minor_status</em> </td><td>minor status code.</td></tr>
326 <tr><td valign="top"></td><td valign="top"><em>initiator_cred_handle</em> </td><td>the credential to use when building the context, if GSS_C_NO_CREDENTIAL is passed, the default credential for the mechanism will be used.</td></tr>
327 <tr><td valign="top"></td><td valign="top"><em>context_handle</em> </td><td>a pointer to a context handle, will be returned as long as there is not an error.</td></tr>
328 <tr><td valign="top"></td><td valign="top"><em>target_name</em> </td><td>the target name of acceptor, created using <a class="el" href="group__gssapi.html#g0afe06fd5264ebfb93ecca4bcc70895b">gss_import_name()</a>. The name is can be of any name types the mechanism supports, check supported name types with gss_inquire_names_for_mech().</td></tr>
329 <tr><td valign="top"></td><td valign="top"><em>input_mech_type</em> </td><td>mechanism type to use, if GSS_C_NO_OID is used, Kerberos (GSS_KRB5_MECHANISM) will be tried. Other available mechanism are listed in the <a class="el" href="gssapi_mechs_intro.html">GSS-API mechanisms</a> section.</td></tr>
330 <tr><td valign="top"></td><td valign="top"><em>req_flags</em> </td><td>flags using when building the context, see <a class="el" href="gssapi_services_intro.html#gssapi_context_flags">Context creation flags</a></td></tr>
331 <tr><td valign="top"></td><td valign="top"><em>time_req</em> </td><td>time requested this context should be valid in seconds, common used value is GSS_C_INDEFINITE</td></tr>
332 <tr><td valign="top"></td><td valign="top"><em>input_chan_bindings</em> </td><td>Channel bindings used, if not exepected otherwise, used GSS_C_NO_CHANNEL_BINDINGS</td></tr>
333 <tr><td valign="top"></td><td valign="top"><em>input_token</em> </td><td>input token sent from the acceptor, for the initial packet the buffer of { NULL, 0 } should be used.</td></tr>
334 <tr><td valign="top"></td><td valign="top"><em>actual_mech_type</em> </td><td>the actual mech used, MUST NOT be freed since it pointing to static memory.</td></tr>
335 <tr><td valign="top"></td><td valign="top"><em>output_token</em> </td><td>if there is an output token, regardless of complete, continue_needed, or error it should be sent to the acceptor</td></tr>
336 <tr><td valign="top"></td><td valign="top"><em>ret_flags</em> </td><td>return what flags was negotitated, caller should check if they are accetable. For example, if GSS_C_MUTUAL_FLAG was negotiated with the acceptor or not.</td></tr>
337 <tr><td valign="top"></td><td valign="top"><em>time_rec</em> </td><td>amount of time this context is valid for</td></tr>
340 <dl class="return" compact><dt><b>Returns:</b></dt><dd>a gss_error code, see gss_display_status() about printing the error code. </dd></dl>
344 <a class="anchor" name="gf472671a43512495de04ca0c69079e5d"></a><!-- doxytag: member="gss_mo.c::gss_inquire_attrs_for_mech" ref="gf472671a43512495de04ca0c69079e5d" args="(OM_uint32 *minor_status, gss_const_OID mech, gss_OID_set *mech_attr, gss_OID_set *known_mech_attrs)" -->
345 <div class="memitem">
346 <div class="memproto">
347 <table class="memname">
349 <td class="memname">GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_inquire_attrs_for_mech </td>
351 <td class="paramtype">OM_uint32 * </td>
352 <td class="paramname"> <em>minor_status</em>, </td>
355 <td class="paramkey"></td>
357 <td class="paramtype">gss_const_OID </td>
358 <td class="paramname"> <em>mech</em>, </td>
361 <td class="paramkey"></td>
363 <td class="paramtype">gss_OID_set * </td>
364 <td class="paramname"> <em>mech_attr</em>, </td>
367 <td class="paramkey"></td>
369 <td class="paramtype">gss_OID_set * </td>
370 <td class="paramname"> <em>known_mech_attrs</em></td><td> </td>
375 <td></td><td></td><td></td>
382 List support attributes for a mech and/or all mechanisms.<p>
383 <dl compact><dt><b>Parameters:</b></dt><dd>
384 <table border="0" cellspacing="2" cellpadding="0">
385 <tr><td valign="top"></td><td valign="top"><em>minor_status</em> </td><td>minor status code </td></tr>
386 <tr><td valign="top"></td><td valign="top"><em>mech</em> </td><td>given together with mech_attr will return the list of attributes for mechanism, can optionally be GSS_C_NO_OID. </td></tr>
387 <tr><td valign="top"></td><td valign="top"><em>mech_attr</em> </td><td>see mech parameter, can optionally be NULL, release with gss_release_oid_set(). </td></tr>
388 <tr><td valign="top"></td><td valign="top"><em>known_mech_attrs</em> </td><td>all attributes for mechanisms supported, release with gss_release_oid_set(). </td></tr>
394 <a class="anchor" name="gdc725eaf82322d8cf50812fc26442893"></a><!-- doxytag: member="gss_mo.c::gss_inquire_saslname_for_mech" ref="gdc725eaf82322d8cf50812fc26442893" args="(OM_uint32 *minor_status, const gss_OID desired_mech, gss_buffer_t sasl_mech_name, gss_buffer_t mech_name, gss_buffer_t mech_description)" -->
395 <div class="memitem">
396 <div class="memproto">
397 <table class="memname">
399 <td class="memname">GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_inquire_saslname_for_mech </td>
401 <td class="paramtype">OM_uint32 * </td>
402 <td class="paramname"> <em>minor_status</em>, </td>
405 <td class="paramkey"></td>
407 <td class="paramtype">const gss_OID </td>
408 <td class="paramname"> <em>desired_mech</em>, </td>
411 <td class="paramkey"></td>
413 <td class="paramtype">gss_buffer_t </td>
414 <td class="paramname"> <em>sasl_mech_name</em>, </td>
417 <td class="paramkey"></td>
419 <td class="paramtype">gss_buffer_t </td>
420 <td class="paramname"> <em>mech_name</em>, </td>
423 <td class="paramkey"></td>
425 <td class="paramtype">gss_buffer_t </td>
426 <td class="paramname"> <em>mech_description</em></td><td> </td>
431 <td></td><td></td><td></td>
438 Returns different protocol names and description of the mechanism.<p>
439 <dl compact><dt><b>Parameters:</b></dt><dd>
440 <table border="0" cellspacing="2" cellpadding="0">
441 <tr><td valign="top"></td><td valign="top"><em>minor_status</em> </td><td>minor status code </td></tr>
442 <tr><td valign="top"></td><td valign="top"><em>desired_mech</em> </td><td>mech list query </td></tr>
443 <tr><td valign="top"></td><td valign="top"><em>sasl_mech_name</em> </td><td>SASL GS2 protocol name </td></tr>
444 <tr><td valign="top"></td><td valign="top"><em>mech_name</em> </td><td>gssapi protocol name </td></tr>
445 <tr><td valign="top"></td><td valign="top"><em>mech_description</em> </td><td>description of gssapi mech</td></tr>
448 <dl class="return" compact><dt><b>Returns:</b></dt><dd>returns GSS_S_COMPLETE or a error code. </dd></dl>
452 <a class="anchor" name="gc98677df7ae9bbc387cd68002a97ad15"></a><!-- doxytag: member="gss_oid_equal.c::gss_oid_equal" ref="gc98677df7ae9bbc387cd68002a97ad15" args="(gss_const_OID a, gss_const_OID b)" -->
453 <div class="memitem">
454 <div class="memproto">
455 <table class="memname">
457 <td class="memname">GSSAPI_LIB_FUNCTION int GSSAPI_LIB_CALL gss_oid_equal </td>
459 <td class="paramtype">gss_const_OID </td>
460 <td class="paramname"> <em>a</em>, </td>
463 <td class="paramkey"></td>
465 <td class="paramtype">gss_const_OID </td>
466 <td class="paramname"> <em>b</em></td><td> </td>
471 <td></td><td></td><td></td>
478 Compare two GSS-API OIDs with each other.<p>
479 GSS_C_NO_OID matches nothing, not even it-self.<p>
480 <dl compact><dt><b>Parameters:</b></dt><dd>
481 <table border="0" cellspacing="2" cellpadding="0">
482 <tr><td valign="top"></td><td valign="top"><em>a</em> </td><td>first oid to compare </td></tr>
483 <tr><td valign="top"></td><td valign="top"><em>b</em> </td><td>second oid to compare</td></tr>
486 <dl class="return" compact><dt><b>Returns:</b></dt><dd>non-zero when both oid are the same OID, zero when they are not the same. </dd></dl>
490 <a class="anchor" name="gd2990721c56fe83e06d45648874680d7"></a><!-- doxytag: member="gss_release_cred.c::gss_release_cred" ref="gd2990721c56fe83e06d45648874680d7" args="(OM_uint32 *minor_status, gss_cred_id_t *cred_handle)" -->
491 <div class="memitem">
492 <div class="memproto">
493 <table class="memname">
495 <td class="memname">GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_release_cred </td>
497 <td class="paramtype">OM_uint32 * </td>
498 <td class="paramname"> <em>minor_status</em>, </td>
501 <td class="paramkey"></td>
503 <td class="paramtype">gss_cred_id_t * </td>
504 <td class="paramname"> <em>cred_handle</em></td><td> </td>
509 <td></td><td></td><td></td>
516 Release a credentials<p>
517 Its ok to release the GSS_C_NO_CREDENTIAL/NULL credential, it will return a GSS_S_COMPLETE error code. On return cred_handle is set ot GSS_C_NO_CREDENTIAL.<p>
519 <div class="fragment"><pre class="fragment"> gss_cred_id_t cred = GSS_C_NO_CREDENTIAL;
520 major = <a class="code" href="group__gssapi.html#gd2990721c56fe83e06d45648874680d7">gss_release_cred</a>(&minor, &cred);
522 <dl compact><dt><b>Parameters:</b></dt><dd>
523 <table border="0" cellspacing="2" cellpadding="0">
524 <tr><td valign="top"></td><td valign="top"><em>minor_status</em> </td><td>minor status return code, mech specific </td></tr>
525 <tr><td valign="top"></td><td valign="top"><em>cred_handle</em> </td><td>a pointer to the credential too release</td></tr>
528 <dl class="return" compact><dt><b>Returns:</b></dt><dd>an gssapi error code </dd></dl>
532 <a class="anchor" name="g2dbb20a4c9a3cf5072ef081cd37e54b4"></a><!-- doxytag: member="gss_aeap.c::gss_release_iov_buffer" ref="g2dbb20a4c9a3cf5072ef081cd37e54b4" args="(OM_uint32 *minor_status, gss_iov_buffer_desc *iov, int iov_count)" -->
533 <div class="memitem">
534 <div class="memproto">
535 <table class="memname">
537 <td class="memname">GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_release_iov_buffer </td>
539 <td class="paramtype">OM_uint32 * </td>
540 <td class="paramname"> <em>minor_status</em>, </td>
543 <td class="paramkey"></td>
545 <td class="paramtype">gss_iov_buffer_desc * </td>
546 <td class="paramname"> <em>iov</em>, </td>
549 <td class="paramkey"></td>
551 <td class="paramtype">int </td>
552 <td class="paramname"> <em>iov_count</em></td><td> </td>
557 <td></td><td></td><td></td>
564 Free all buffer allocated by <a class="el" href="group__gssapi.html#gb02ec963066cc8e5e6682799457208e9">gss_wrap_iov()</a> or <a class="el" href="group__gssapi.html#g399bb326e47574aca7b28d6886d29fd0">gss_unwrap_iov()</a> by looking at the GSS_IOV_BUFFER_FLAG_ALLOCATED flag.
567 <a class="anchor" name="g0691190338f1f24170bd5f695ff1e721"></a><!-- doxytag: member="gss_release_name.c::gss_release_name" ref="g0691190338f1f24170bd5f695ff1e721" args="(OM_uint32 *minor_status, gss_name_t *input_name)" -->
568 <div class="memitem">
569 <div class="memproto">
570 <table class="memname">
572 <td class="memname">GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_release_name </td>
574 <td class="paramtype">OM_uint32 * </td>
575 <td class="paramname"> <em>minor_status</em>, </td>
578 <td class="paramkey"></td>
580 <td class="paramtype">gss_name_t * </td>
581 <td class="paramname"> <em>input_name</em></td><td> </td>
586 <td></td><td></td><td></td>
594 import_name can point to NULL or be NULL, or a pointer to a gss_name_t structure. If it was a pointer to gss_name_t, the pointer will be set to NULL on success and failure.<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>minor_status</em> </td><td>minor status code </td></tr>
598 <tr><td valign="top"></td><td valign="top"><em>input_name</em> </td><td>name to free</td></tr>
601 <dl class="return" compact><dt><b>Returns:</b></dt><dd>a gss_error code, see gss_display_status() about printing the error code. </dd></dl>
605 <a class="anchor" name="g399bb326e47574aca7b28d6886d29fd0"></a><!-- doxytag: member="gss_aeap.c::gss_unwrap_iov" ref="g399bb326e47574aca7b28d6886d29fd0" args="(OM_uint32 *minor_status, gss_ctx_id_t context_handle, int *conf_state, gss_qop_t *qop_state, gss_iov_buffer_desc *iov, int iov_count)" -->
606 <div class="memitem">
607 <div class="memproto">
608 <table class="memname">
610 <td class="memname">GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_unwrap_iov </td>
612 <td class="paramtype">OM_uint32 * </td>
613 <td class="paramname"> <em>minor_status</em>, </td>
616 <td class="paramkey"></td>
618 <td class="paramtype">gss_ctx_id_t </td>
619 <td class="paramname"> <em>context_handle</em>, </td>
622 <td class="paramkey"></td>
624 <td class="paramtype">int * </td>
625 <td class="paramname"> <em>conf_state</em>, </td>
628 <td class="paramkey"></td>
630 <td class="paramtype">gss_qop_t * </td>
631 <td class="paramname"> <em>qop_state</em>, </td>
634 <td class="paramkey"></td>
636 <td class="paramtype">gss_iov_buffer_desc * </td>
637 <td class="paramname"> <em>iov</em>, </td>
640 <td class="paramkey"></td>
642 <td class="paramtype">int </td>
643 <td class="paramname"> <em>iov_count</em></td><td> </td>
648 <td></td><td></td><td></td>
655 Decrypt or verifies the signature on the data.
658 <a class="anchor" name="g89a6d98056b75a8a25152de268833f51"></a><!-- doxytag: member="gss_wrap.c::gss_wrap" ref="g89a6d98056b75a8a25152de268833f51" args="(OM_uint32 *minor_status, const gss_ctx_id_t context_handle, int conf_req_flag, gss_qop_t qop_req, const gss_buffer_t input_message_buffer, int *conf_state, gss_buffer_t output_message_buffer)" -->
659 <div class="memitem">
660 <div class="memproto">
661 <table class="memname">
663 <td class="memname">GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_wrap </td>
665 <td class="paramtype">OM_uint32 * </td>
666 <td class="paramname"> <em>minor_status</em>, </td>
669 <td class="paramkey"></td>
671 <td class="paramtype">const gss_ctx_id_t </td>
672 <td class="paramname"> <em>context_handle</em>, </td>
675 <td class="paramkey"></td>
677 <td class="paramtype">int </td>
678 <td class="paramname"> <em>conf_req_flag</em>, </td>
681 <td class="paramkey"></td>
683 <td class="paramtype">gss_qop_t </td>
684 <td class="paramname"> <em>qop_req</em>, </td>
687 <td class="paramkey"></td>
689 <td class="paramtype">const gss_buffer_t </td>
690 <td class="paramname"> <em>input_message_buffer</em>, </td>
693 <td class="paramkey"></td>
695 <td class="paramtype">int * </td>
696 <td class="paramname"> <em>conf_state</em>, </td>
699 <td class="paramkey"></td>
701 <td class="paramtype">gss_buffer_t </td>
702 <td class="paramname"> <em>output_message_buffer</em></td><td> </td>
707 <td></td><td></td><td></td>
714 Wrap a message using either confidentiality (encryption + signature) or sealing (signature).<p>
715 <dl compact><dt><b>Parameters:</b></dt><dd>
716 <table border="0" cellspacing="2" cellpadding="0">
717 <tr><td valign="top"></td><td valign="top"><em>minor_status</em> </td><td>minor status code. </td></tr>
718 <tr><td valign="top"></td><td valign="top"><em>context_handle</em> </td><td>context handle. </td></tr>
719 <tr><td valign="top"></td><td valign="top"><em>conf_req_flag</em> </td><td>if non zero, confidentiality is requestd. </td></tr>
720 <tr><td valign="top"></td><td valign="top"><em>qop_req</em> </td><td>type of protection needed, in most cases it GSS_C_QOP_DEFAULT should be passed in. </td></tr>
721 <tr><td valign="top"></td><td valign="top"><em>input_message_buffer</em> </td><td>messages to wrap </td></tr>
722 <tr><td valign="top"></td><td valign="top"><em>conf_state</em> </td><td>returns non zero if confidentiality was honoured. </td></tr>
723 <tr><td valign="top"></td><td valign="top"><em>output_message_buffer</em> </td><td>the resulting buffer, release with gss_release_buffer(). </td></tr>
729 <a class="anchor" name="gb02ec963066cc8e5e6682799457208e9"></a><!-- doxytag: member="gss_aeap.c::gss_wrap_iov" ref="gb02ec963066cc8e5e6682799457208e9" args="(OM_uint32 *minor_status, gss_ctx_id_t context_handle, int conf_req_flag, gss_qop_t qop_req, int *conf_state, gss_iov_buffer_desc *iov, int iov_count)" -->
730 <div class="memitem">
731 <div class="memproto">
732 <table class="memname">
734 <td class="memname">GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_wrap_iov </td>
736 <td class="paramtype">OM_uint32 * </td>
737 <td class="paramname"> <em>minor_status</em>, </td>
740 <td class="paramkey"></td>
742 <td class="paramtype">gss_ctx_id_t </td>
743 <td class="paramname"> <em>context_handle</em>, </td>
746 <td class="paramkey"></td>
748 <td class="paramtype">int </td>
749 <td class="paramname"> <em>conf_req_flag</em>, </td>
752 <td class="paramkey"></td>
754 <td class="paramtype">gss_qop_t </td>
755 <td class="paramname"> <em>qop_req</em>, </td>
758 <td class="paramkey"></td>
760 <td class="paramtype">int * </td>
761 <td class="paramname"> <em>conf_state</em>, </td>
764 <td class="paramkey"></td>
766 <td class="paramtype">gss_iov_buffer_desc * </td>
767 <td class="paramname"> <em>iov</em>, </td>
770 <td class="paramkey"></td>
772 <td class="paramtype">int </td>
773 <td class="paramname"> <em>iov_count</em></td><td> </td>
778 <td></td><td></td><td></td>
785 Encrypts or sign the data.<p>
786 This is a more complicated version of <a class="el" href="group__gssapi.html#g89a6d98056b75a8a25152de268833f51">gss_wrap()</a>, it allows the caller to use AEAD data (signed header/trailer) and allow greater controll over where the encrypted data is placed.<p>
787 The maximum packet size is gss_context_stream_sizes.max_msg_size.<p>
788 The caller needs provide the folloing buffers when using in conf_req_flag=1 mode:<p>
790 <li>HEADER (of size gss_context_stream_sizes.header) { DATA or SIGN_ONLY } (optional, zero or more) PADDING (of size gss_context_stream_sizes.blocksize, if zero padding is zero, can be omitted) TRAILER (of size gss_context_stream_sizes.trailer)</li></ul>
793 <li>on DCE-RPC mode, the caller can skip PADDING and TRAILER if the DATA elements is padded to a block bountry and header is of at least size gss_context_stream_sizes.header + gss_context_stream_sizes.trailer.</li></ul>
795 HEADER, PADDING, TRAILER will be shrunken to the size required to transmit any of them too large.<p>
796 To generate <a class="el" href="group__gssapi.html#g89a6d98056b75a8a25152de268833f51">gss_wrap()</a> compatible packets, use: HEADER | DATA | PADDING | TRAILER<p>
797 When used in conf_req_flag=0,<p>
799 <li>HEADER (of size gss_context_stream_sizes.header) { DATA or SIGN_ONLY } (optional, zero or more) PADDING (of size gss_context_stream_sizes.blocksize, if zero padding is zero, can be omitted) TRAILER (of size gss_context_stream_sizes.trailer)</li></ul>
801 The input sizes of HEADER, PADDING and TRAILER can be fetched using <a class="el" href="group__gssapi.html#g6216cfcb1ba8dc2d1a1d680d21752f26">gss_wrap_iov_length()</a> or gss_context_query_attributes().
804 <a class="anchor" name="g6216cfcb1ba8dc2d1a1d680d21752f26"></a><!-- doxytag: member="gss_aeap.c::gss_wrap_iov_length" ref="g6216cfcb1ba8dc2d1a1d680d21752f26" args="(OM_uint32 *minor_status, gss_ctx_id_t context_handle, int conf_req_flag, gss_qop_t qop_req, int *conf_state, gss_iov_buffer_desc *iov, int iov_count)" -->
805 <div class="memitem">
806 <div class="memproto">
807 <table class="memname">
809 <td class="memname">GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_CALL gss_wrap_iov_length </td>
811 <td class="paramtype">OM_uint32 * </td>
812 <td class="paramname"> <em>minor_status</em>, </td>
815 <td class="paramkey"></td>
817 <td class="paramtype">gss_ctx_id_t </td>
818 <td class="paramname"> <em>context_handle</em>, </td>
821 <td class="paramkey"></td>
823 <td class="paramtype">int </td>
824 <td class="paramname"> <em>conf_req_flag</em>, </td>
827 <td class="paramkey"></td>
829 <td class="paramtype">gss_qop_t </td>
830 <td class="paramname"> <em>qop_req</em>, </td>
833 <td class="paramkey"></td>
835 <td class="paramtype">int * </td>
836 <td class="paramname"> <em>conf_state</em>, </td>
839 <td class="paramkey"></td>
841 <td class="paramtype">gss_iov_buffer_desc * </td>
842 <td class="paramname"> <em>iov</em>, </td>
845 <td class="paramkey"></td>
847 <td class="paramtype">int </td>
848 <td class="paramname"> <em>iov_count</em></td><td> </td>
853 <td></td><td></td><td></td>
860 Update the length fields in iov buffer for the types:<ul>
861 <li>GSS_IOV_BUFFER_TYPE_HEADER</li><li>GSS_IOV_BUFFER_TYPE_PADDING</li><li>GSS_IOV_BUFFER_TYPE_TRAILER</li></ul>
863 Consider using gss_context_query_attributes() to fetch the data instead.
866 <hr><h2>Variable Documentation</h2>
867 <a class="anchor" name="g961f7a7f9f92e06b91c6d503e524a672"></a><!-- doxytag: member="gss_aeap.c::__gss_c_attr_stream_sizes_oid_desc" ref="g961f7a7f9f92e06b91c6d503e524a672" args="" -->
868 <div class="memitem">
869 <div class="memproto">
870 <table class="memname">
872 <td class="memname">gss_OID_desc GSSAPI_LIB_FUNCTION <a class="el" href="group__gssapi.html#g961f7a7f9f92e06b91c6d503e524a672">__gss_c_attr_stream_sizes_oid_desc</a> </td>
879 <b>Initial value:</b><div class="fragment"><pre class="fragment">
880 {10, rk_UNCONST(<span class="stringliteral">"\x2a\x86\x48\x86\xf7\x12\x01\x02\x01\x03"</span>)}
881 </pre></div>Query the context for parameters.<p>
882 SSPI equivalent if this function is QueryContextAttributes.<p>
884 <li>GSS_C_ATTR_STREAM_SIZES data is a gss_context_stream_sizes. </li></ul>
889 <hr size="1"><address style="text-align: right;"><small>
890 Generated on Wed Jan 11 14:07:44 2012 for HeimdalGSS-APIlibrary 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>