|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /proc/21573/root/usr/share/devhelp/books/dbus/api/ |
Upload File : |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>D-Bus: Authentication</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<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="files.html"><span>Files</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
</ul></div>
<h1>Authentication<br>
<small>
[<a class="el" href="group__DBusInternals.html">D-Bus secret internal implementation details</a>]</small>
</h1><a class="el" href="structDBusAuth.html">DBusAuth</a> object.
<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#gef3b2bcbcd611b935955eaf82ce238e2">DBUS_AUTH_IN_END_STATE</a>(auth) ((auth)->state->handler == NULL)</td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#g302e454600ae0e1aa27193d4b0a86385">_dbus_auth_server_new</a> (const <a class="el" href="structDBusString.html">DBusString</a> *guid)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a new auth conversation object for the server side. <a href="#g302e454600ae0e1aa27193d4b0a86385"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#gee76dbcdada8bcafe131f5a2de151ac3">_dbus_auth_client_new</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a new auth conversation object for the client side. <a href="#gee76dbcdada8bcafe131f5a2de151ac3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#gebe46c0887021bb3f6de3d283e0c66db">_dbus_auth_ref</a> (<a class="el" href="structDBusAuth.html">DBusAuth</a> *auth)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Increments the refcount of an auth object. <a href="#gebe46c0887021bb3f6de3d283e0c66db"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#g7fb648be9d6d451917195a0e43eeece0">_dbus_auth_unref</a> (<a class="el" href="structDBusAuth.html">DBusAuth</a> *auth)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Decrements the refcount of an auth object. <a href="#g7fb648be9d6d451917195a0e43eeece0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#g9454e2c512b4e2ea54d47cff6acaa4db">_dbus_auth_set_mechanisms</a> (<a class="el" href="structDBusAuth.html">DBusAuth</a> *auth, const char **mechanisms)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets an array of authentication mechanism names that we are willing to use. <a href="#g9454e2c512b4e2ea54d47cff6acaa4db"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DBusAuthState </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#g097c71f7f20b749275c6b31cd98623f5">_dbus_auth_do_work</a> (<a class="el" href="structDBusAuth.html">DBusAuth</a> *auth)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Analyzes buffered input and moves the auth conversation forward, returning the new state of the auth conversation. <a href="#g097c71f7f20b749275c6b31cd98623f5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#g7befc68c815fe31d7fa556b699ef67de">_dbus_auth_get_bytes_to_send</a> (<a class="el" href="structDBusAuth.html">DBusAuth</a> *auth, const <a class="el" href="structDBusString.html">DBusString</a> **str)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets bytes that need to be sent to the peer we're conversing with. <a href="#g7befc68c815fe31d7fa556b699ef67de"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#ged9f7f1d3289a0ae2fea2204729ac01f">_dbus_auth_bytes_sent</a> (<a class="el" href="structDBusAuth.html">DBusAuth</a> *auth, int bytes_sent)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Notifies the auth conversation object that the given number of bytes of the outgoing buffer have been written out. <a href="#ged9f7f1d3289a0ae2fea2204729ac01f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#gc0fc38d8d0d139e4d52787881a324c05">_dbus_auth_get_buffer</a> (<a class="el" href="structDBusAuth.html">DBusAuth</a> *auth, <a class="el" href="structDBusString.html">DBusString</a> **buffer)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a buffer to be used for reading bytes from the peer we're conversing with. <a href="#gc0fc38d8d0d139e4d52787881a324c05"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#g0333bbbd8fba692ae4ca97465609fc5a">_dbus_auth_return_buffer</a> (<a class="el" href="structDBusAuth.html">DBusAuth</a> *auth, <a class="el" href="structDBusString.html">DBusString</a> *buffer, int bytes_read)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a buffer with new data read into it. <a href="#g0333bbbd8fba692ae4ca97465609fc5a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#gf9e2ab67f2ddd26eeb7deeb8b0af7817">_dbus_auth_get_unused_bytes</a> (<a class="el" href="structDBusAuth.html">DBusAuth</a> *auth, const <a class="el" href="structDBusString.html">DBusString</a> **str)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns leftover bytes that were not used as part of the auth conversation. <a href="#gf9e2ab67f2ddd26eeb7deeb8b0af7817"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#gbbe8cf9e5958357c49a190ca259aa9b3">_dbus_auth_delete_unused_bytes</a> (<a class="el" href="structDBusAuth.html">DBusAuth</a> *auth)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets rid of unused bytes returned by <a class="el" href="group__DBusAuth.html#gf9e2ab67f2ddd26eeb7deeb8b0af7817">_dbus_auth_get_unused_bytes()</a> after we've gotten them and successfully moved them elsewhere. <a href="#gbbe8cf9e5958357c49a190ca259aa9b3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#g22ddfb5e12cba3d047dc1d1302c23490">_dbus_auth_needs_encoding</a> (<a class="el" href="structDBusAuth.html">DBusAuth</a> *auth)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Called post-authentication, indicates whether we need to encode the message stream with <a class="el" href="group__DBusAuth.html#g0d59bcf62c098cdfb95f610cdfd12690">_dbus_auth_encode_data()</a> prior to sending it to the peer. <a href="#g22ddfb5e12cba3d047dc1d1302c23490"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#g0d59bcf62c098cdfb95f610cdfd12690">_dbus_auth_encode_data</a> (<a class="el" href="structDBusAuth.html">DBusAuth</a> *auth, const <a class="el" href="structDBusString.html">DBusString</a> *plaintext, <a class="el" href="structDBusString.html">DBusString</a> *encoded)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Called post-authentication, encodes a block of bytes for sending to the peer. <a href="#g0d59bcf62c098cdfb95f610cdfd12690"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#gc6e9dc07335a6291842374d834e95ad2">_dbus_auth_needs_decoding</a> (<a class="el" href="structDBusAuth.html">DBusAuth</a> *auth)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Called post-authentication, indicates whether we need to decode the message stream with <a class="el" href="group__DBusAuth.html#g7eb40f71c0ede79f954bcb2c001c8502">_dbus_auth_decode_data()</a> after receiving it from the peer. <a href="#gc6e9dc07335a6291842374d834e95ad2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#g7eb40f71c0ede79f954bcb2c001c8502">_dbus_auth_decode_data</a> (<a class="el" href="structDBusAuth.html">DBusAuth</a> *auth, const <a class="el" href="structDBusString.html">DBusString</a> *encoded, <a class="el" href="structDBusString.html">DBusString</a> *plaintext)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Called post-authentication, decodes a block of bytes received from the peer. <a href="#g7eb40f71c0ede79f954bcb2c001c8502"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#g2bb917d44b44b1a2813f60dec03731cd">_dbus_auth_set_credentials</a> (<a class="el" href="structDBusAuth.html">DBusAuth</a> *auth, <a class="el" href="structDBusCredentials.html">DBusCredentials</a> *credentials)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets credentials received via reliable means from the operating system. <a href="#g2bb917d44b44b1a2813f60dec03731cd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusCredentials.html">DBusCredentials</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#gbfa5450530b999bcb0fabf37c414a80e">_dbus_auth_get_identity</a> (<a class="el" href="structDBusAuth.html">DBusAuth</a> *auth)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the identity we authorized the client as. <a href="#gbfa5450530b999bcb0fabf37c414a80e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#gd0bf394093dd9ac43ebf71a5f35a4f3f">_dbus_auth_get_guid_from_server</a> (<a class="el" href="structDBusAuth.html">DBusAuth</a> *auth)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the GUID from the server if we've authenticated; gets <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> otherwise. <a href="#gd0bf394093dd9ac43ebf71a5f35a4f3f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusAuth.html#gd6d64040b2cf1c91f808a1f31f7ff2f0">_dbus_auth_set_context</a> (<a class="el" href="structDBusAuth.html">DBusAuth</a> *auth, const <a class="el" href="structDBusString.html">DBusString</a> *context)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the "authentication context" which scopes cookies with the DBUS_COOKIE_SHA1 auth mechanism for example. <a href="#gd6d64040b2cf1c91f808a1f31f7ff2f0"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<a class="el" href="structDBusAuth.html">DBusAuth</a> object.
<p>
<a class="el" href="structDBusAuth.html">DBusAuth</a> manages the authentication negotiation when a connection is first established, and also manage any encryption used over a connection.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>some SASL profiles require sending the empty string as a challenge/response, but we don't currently allow that in our protocol.</dd></dl>
<dl compact><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>right now sometimes both ends will block waiting for input from the other end, e.g. if there's an error during DBUS_COOKIE_SHA1.</dd></dl>
<dl compact><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>the cookie keyring needs to be cached globally not just per-auth (which raises threadsafety issues too)</dd></dl>
<dl compact><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>grep FIXME in <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a> </dd></dl>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="gef3b2bcbcd611b935955eaf82ce238e2"></a><!-- doxytag: member="dbus-auth.c::DBUS_AUTH_IN_END_STATE" ref="gef3b2bcbcd611b935955eaf82ce238e2" args="(auth)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DBUS_AUTH_IN_END_STATE </td>
<td>(</td>
<td class="paramtype">auth </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"> ((auth)->state->handler == NULL)</td>
</tr>
</table>
</div>
<div class="memdoc">
<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>auth</em> </td><td>the auth conversation object </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if we're in a final state </dd></dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02318">2318</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
Referenced by <a class="el" href="dbus-auth_8c-source.html#l02473">_dbus_auth_delete_unused_bytes()</a>, <a class="el" href="dbus-auth_8c-source.html#l02328">_dbus_auth_do_work()</a>, and <a class="el" href="dbus-auth_8c-source.html#l02456">_dbus_auth_get_unused_bytes()</a>.
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="ged9f7f1d3289a0ae2fea2204729ac01f"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_bytes_sent" ref="ged9f7f1d3289a0ae2fea2204729ac01f" args="(DBusAuth *auth, int bytes_sent)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_auth_bytes_sent </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td>
<td class="paramname"> <em>auth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>bytes_sent</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Notifies the auth conversation object that the given number of bytes of the outgoing buffer have been written out.
<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>auth</em> </td><td>the auth conversation </td></tr>
<tr><td valign="top"></td><td valign="top"><em>bytes_sent</em> </td><td>number of bytes written out </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02397">2397</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l01382">_dbus_string_delete()</a>, and <a class="el" href="dbus-auth_8c-source.html#l00321">DBUS_AUTH_NAME</a>.
</div>
</div><p>
<a class="anchor" name="gee76dbcdada8bcafe131f5a2de151ac3"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_client_new" ref="gee76dbcdada8bcafe131f5a2de151ac3" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusAuth.html">DBusAuth</a>* _dbus_auth_client_new </td>
<td>(</td>
<td class="paramtype">void </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Creates a new auth conversation object for the client side.
<p>
See doc/dbus-sasl-profile.txt for full details on what this object does.<p>
<dl compact><dt><b>Returns:</b></dt><dd>the new object or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02190">2190</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-auth_8c-source.html#l02243">_dbus_auth_unref()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-auth_8c-source.html#l00309">DBUS_AUTH_CLIENT</a>, <a class="el" href="dbus-auth_8c-source.html#l00152">side</a>, and <a class="el" href="dbus-auth_8c-source.html#l00157">state</a>.
<p>
Referenced by <a class="el" href="dbus-transport_8c-source.html#l00093">_dbus_transport_init_base()</a>.
</div>
</div><p>
<a class="anchor" name="g7eb40f71c0ede79f954bcb2c001c8502"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_decode_data" ref="g7eb40f71c0ede79f954bcb2c001c8502" args="(DBusAuth *auth, const DBusString *encoded, DBusString *plaintext)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_auth_decode_data </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td>
<td class="paramname"> <em>auth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>encoded</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>plaintext</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Called post-authentication, decodes a block of bytes received from the peer.
<p>
If no encoding was negotiated, just copies the bytes (you can avoid this by checking <a class="el" href="group__DBusAuth.html#gc6e9dc07335a6291842374d834e95ad2">_dbus_auth_needs_decoding()</a>).<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000005">Todo:</a></b></dt><dd>1.0? We need to be able to distinguish "out of memory" error from "the data is hosed" error.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>auth</em> </td><td>the auth conversation </td></tr>
<tr><td valign="top"></td><td valign="top"><em>encoded</em> </td><td>the encoded data </td></tr>
<tr><td valign="top"></td><td valign="top"><em>plaintext</em> </td><td>initialized string where decoded data is appended </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if we had enough memory and successfully decoded </dd></dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02580">2580</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-auth_8c-source.html#l02549">_dbus_auth_needs_decoding()</a>, <a class="el" href="dbus-string_8c-source.html#l01472">_dbus_string_copy()</a>, <a class="el" href="dbus-auth_8c-source.html#l00304">DBUS_AUTH_IS_CLIENT</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="dbus-auth_8c-source.html#l00157">state</a>.
</div>
</div><p>
<a class="anchor" name="gbbe8cf9e5958357c49a190ca259aa9b3"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_delete_unused_bytes" ref="gbbe8cf9e5958357c49a190ca259aa9b3" args="(DBusAuth *auth)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_auth_delete_unused_bytes </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td>
<td class="paramname"> <em>auth</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets rid of unused bytes returned by <a class="el" href="group__DBusAuth.html#gf9e2ab67f2ddd26eeb7deeb8b0af7817">_dbus_auth_get_unused_bytes()</a> after we've gotten them and successfully moved them elsewhere.
<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>auth</em> </td><td>the auth conversation </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02473">2473</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l00854">_dbus_string_set_length()</a>, and <a class="el" href="dbus-auth_8c-source.html#l02318">DBUS_AUTH_IN_END_STATE</a>.
</div>
</div><p>
<a class="anchor" name="g097c71f7f20b749275c6b31cd98623f5"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_do_work" ref="g097c71f7f20b749275c6b31cd98623f5" args="(DBusAuth *auth)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">DBusAuthState _dbus_auth_do_work </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td>
<td class="paramname"> <em>auth</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Analyzes buffered input and moves the auth conversation forward, returning the new state of the auth conversation.
<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>auth</em> </td><td>the auth conversation </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the new state </dd></dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02328">2328</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-auth_8c-source.html#l02318">DBUS_AUTH_IN_END_STATE</a>, <a class="el" href="dbus-auth_8c-source.html#l00321">DBUS_AUTH_NAME</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="dbus-auth_8c-source.html#l00181">needed_memory</a>.
<p>
Referenced by <a class="el" href="dbus-transport_8c-source.html#l01046">_dbus_transport_get_dispatch_status()</a>, and <a class="el" href="dbus-transport_8c-source.html#l00668">_dbus_transport_get_is_authenticated()</a>.
</div>
</div><p>
<a class="anchor" name="g0d59bcf62c098cdfb95f610cdfd12690"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_encode_data" ref="g0d59bcf62c098cdfb95f610cdfd12690" args="(DBusAuth *auth, const DBusString *plaintext, DBusString *encoded)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_auth_encode_data </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td>
<td class="paramname"> <em>auth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>plaintext</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>encoded</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Called post-authentication, encodes a block of bytes for sending to the peer.
<p>
If no encoding was negotiated, just copies the bytes (you can avoid this by checking <a class="el" href="group__DBusAuth.html#g22ddfb5e12cba3d047dc1d1302c23490">_dbus_auth_needs_encoding()</a>).<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>auth</em> </td><td>the auth conversation </td></tr>
<tr><td valign="top"></td><td valign="top"><em>plaintext</em> </td><td>the plain text data </td></tr>
<tr><td valign="top"></td><td valign="top"><em>encoded</em> </td><td>initialized string to where encoded data is appended </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if we had enough memory and successfully encoded </dd></dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02517">2517</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-auth_8c-source.html#l02490">_dbus_auth_needs_encoding()</a>, <a class="el" href="dbus-string_8c-source.html#l01472">_dbus_string_copy()</a>, <a class="el" href="dbus-auth_8c-source.html#l00304">DBUS_AUTH_IS_CLIENT</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="dbus-auth_8c-source.html#l00157">state</a>.
</div>
</div><p>
<a class="anchor" name="gc0fc38d8d0d139e4d52787881a324c05"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_get_buffer" ref="gc0fc38d8d0d139e4d52787881a324c05" args="(DBusAuth *auth, DBusString **buffer)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_auth_get_buffer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td>
<td class="paramname"> <em>auth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> ** </td>
<td class="paramname"> <em>buffer</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get a buffer to be used for reading bytes from the peer we're conversing with.
<p>
Bytes should be appended to this 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>auth</em> </td><td>the auth conversation </td></tr>
<tr><td valign="top"></td><td valign="top"><em>buffer</em> </td><td>return location for buffer to append bytes to </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02417">2417</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-auth_8c-source.html#l00186">buffer_outstanding</a>, <a class="el" href="dbus-auth_8c-source.html#l00154">incoming</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g7befc68c815fe31d7fa556b699ef67de"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_get_bytes_to_send" ref="g7befc68c815fe31d7fa556b699ef67de" args="(DBusAuth *auth, const DBusString **str)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_auth_get_bytes_to_send </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td>
<td class="paramname"> <em>auth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> ** </td>
<td class="paramname"> <em>str</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets bytes that need to be sent to the peer we're conversing with.
<p>
After writing some bytes, <a class="el" href="group__DBusAuth.html#ged9f7f1d3289a0ae2fea2204729ac01f">_dbus_auth_bytes_sent()</a> must be called to notify the auth object that they were written.<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>auth</em> </td><td>the auth conversation </td></tr>
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>return location for a ref to the buffer to send </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if nothing to send </dd></dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02372">2372</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-auth_8c-source.html#l00155">outgoing</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="gd0bf394093dd9ac43ebf71a5f35a4f3f"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_get_guid_from_server" ref="gd0bf394093dd9ac43ebf71a5f35a4f3f" args="(DBusAuth *auth)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* _dbus_auth_get_guid_from_server </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td>
<td class="paramname"> <em>auth</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the GUID from the server if we've authenticated; gets <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> otherwise.
<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>auth</em> </td><td>the auth object </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the GUID in ASCII hex format </dd></dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02654">2654</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-auth_8c-source.html#l00309">DBUS_AUTH_CLIENT</a>, and <a class="el" href="dbus-auth_8c-source.html#l00304">DBUS_AUTH_IS_CLIENT</a>.
<p>
Referenced by <a class="el" href="dbus-transport_8c-source.html#l00668">_dbus_transport_get_is_authenticated()</a>.
</div>
</div><p>
<a class="anchor" name="gbfa5450530b999bcb0fabf37c414a80e"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_get_identity" ref="gbfa5450530b999bcb0fabf37c414a80e" args="(DBusAuth *auth)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusCredentials.html">DBusCredentials</a>* _dbus_auth_get_identity </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td>
<td class="paramname"> <em>auth</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the identity we authorized the client as.
<p>
Apps may have different policies as to what identities they allow.<p>
Returned credentials are not a copy and should not be modified<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>auth</em> </td><td>the auth conversation </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the credentials we've authorized BY REFERENCE do not modify </dd></dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02630">2630</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-credentials_8c-source.html#l00283">_dbus_credentials_are_empty()</a>, <a class="el" href="dbus-auth_8c-source.html#l00168">authorized_identity</a>, and <a class="el" href="dbus-auth_8c-source.html#l00157">state</a>.
<p>
Referenced by <a class="el" href="dbus-transport_8c-source.html#l00776">_dbus_transport_get_is_anonymous()</a>, <a class="el" href="dbus-transport_8c-source.html#l00668">_dbus_transport_get_is_authenticated()</a>, <a class="el" href="dbus-transport_8c-source.html#l01225">_dbus_transport_get_unix_process_id()</a>, <a class="el" href="dbus-transport_8c-source.html#l01192">_dbus_transport_get_unix_user()</a>, and <a class="el" href="dbus-transport_8c-source.html#l01284">_dbus_transport_get_windows_user()</a>.
</div>
</div><p>
<a class="anchor" name="gf9e2ab67f2ddd26eeb7deeb8b0af7817"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_get_unused_bytes" ref="gf9e2ab67f2ddd26eeb7deeb8b0af7817" args="(DBusAuth *auth, const DBusString **str)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_auth_get_unused_bytes </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td>
<td class="paramname"> <em>auth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> ** </td>
<td class="paramname"> <em>str</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns leftover bytes that were not used as part of the auth conversation.
<p>
These bytes will be part of the message stream instead. This function may not be called until authentication has succeeded.<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>auth</em> </td><td>the auth conversation </td></tr>
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>return location for pointer to string of unused bytes </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02456">2456</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-auth_8c-source.html#l02318">DBUS_AUTH_IN_END_STATE</a>.
</div>
</div><p>
<a class="anchor" name="gc6e9dc07335a6291842374d834e95ad2"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_needs_decoding" ref="gc6e9dc07335a6291842374d834e95ad2" args="(DBusAuth *auth)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_auth_needs_decoding </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td>
<td class="paramname"> <em>auth</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Called post-authentication, indicates whether we need to decode the message stream with <a class="el" href="group__DBusAuth.html#g7eb40f71c0ede79f954bcb2c001c8502">_dbus_auth_decode_data()</a> after receiving it from the peer.
<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>auth</em> </td><td>the auth conversation </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if we need to encode the stream </dd></dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02549">2549</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-auth_8c-source.html#l00304">DBUS_AUTH_IS_CLIENT</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-auth_8c-source.html#l00159">mech</a>, and <a class="el" href="dbus-auth_8c-source.html#l00157">state</a>.
<p>
Referenced by <a class="el" href="dbus-auth_8c-source.html#l02580">_dbus_auth_decode_data()</a>.
</div>
</div><p>
<a class="anchor" name="g22ddfb5e12cba3d047dc1d1302c23490"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_needs_encoding" ref="g22ddfb5e12cba3d047dc1d1302c23490" args="(DBusAuth *auth)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_auth_needs_encoding </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td>
<td class="paramname"> <em>auth</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Called post-authentication, indicates whether we need to encode the message stream with <a class="el" href="group__DBusAuth.html#g0d59bcf62c098cdfb95f610cdfd12690">_dbus_auth_encode_data()</a> prior to sending it to the peer.
<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>auth</em> </td><td>the auth conversation </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if we need to encode the stream </dd></dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02490">2490</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-auth_8c-source.html#l00304">DBUS_AUTH_IS_CLIENT</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-auth_8c-source.html#l00159">mech</a>, and <a class="el" href="dbus-auth_8c-source.html#l00157">state</a>.
<p>
Referenced by <a class="el" href="dbus-auth_8c-source.html#l02517">_dbus_auth_encode_data()</a>.
</div>
</div><p>
<a class="anchor" name="gebe46c0887021bb3f6de3d283e0c66db"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_ref" ref="gebe46c0887021bb3f6de3d283e0c66db" args="(DBusAuth *auth)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusAuth.html">DBusAuth</a>* _dbus_auth_ref </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td>
<td class="paramname"> <em>auth</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Increments the refcount of an auth object.
<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>auth</em> </td><td>the auth conversation </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the auth conversation </dd></dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02228">2228</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, and <a class="el" href="dbus-auth_8c-source.html#l00151">refcount</a>.
</div>
</div><p>
<a class="anchor" name="g0333bbbd8fba692ae4ca97465609fc5a"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_return_buffer" ref="g0333bbbd8fba692ae4ca97465609fc5a" args="(DBusAuth *auth, DBusString *buffer, int bytes_read)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_auth_return_buffer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td>
<td class="paramname"> <em>auth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>bytes_read</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns a buffer with new data read into it.
<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>auth</em> </td><td>the auth conversation </td></tr>
<tr><td valign="top"></td><td valign="top"><em>buffer</em> </td><td>the buffer being returned </td></tr>
<tr><td valign="top"></td><td valign="top"><em>bytes_read</em> </td><td>number of new bytes added </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02436">2436</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-auth_8c-source.html#l00186">buffer_outstanding</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="dbus-auth_8c-source.html#l00154">incoming</a>.
</div>
</div><p>
<a class="anchor" name="g302e454600ae0e1aa27193d4b0a86385"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_server_new" ref="g302e454600ae0e1aa27193d4b0a86385" args="(const DBusString *guid)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusAuth.html">DBusAuth</a>* _dbus_auth_server_new </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>guid</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Creates a new auth conversation object for the server side.
<p>
See doc/dbus-sasl-profile.txt for full details on what this object does.<p>
<dl compact><dt><b>Returns:</b></dt><dd>the new object or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02144">2144</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l01472">_dbus_string_copy()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-auth_8c-source.html#l00314">DBUS_AUTH_SERVER</a>, <a class="el" href="dbus-auth_8c-source.html#l00209">DBusAuthServer::failures</a>, <a class="el" href="dbus-auth_8c-source.html#l00212">DBusAuthServer::guid</a>, <a class="el" href="dbus-auth_8c-source.html#l00210">DBusAuthServer::max_failures</a>, <a class="el" href="dbus-auth_8c-source.html#l00152">side</a>, and <a class="el" href="dbus-auth_8c-source.html#l00157">state</a>.
<p>
Referenced by <a class="el" href="dbus-transport_8c-source.html#l00093">_dbus_transport_init_base()</a>.
</div>
</div><p>
<a class="anchor" name="gd6d64040b2cf1c91f808a1f31f7ff2f0"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_set_context" ref="gd6d64040b2cf1c91f808a1f31f7ff2f0" args="(DBusAuth *auth, const DBusString *context)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_auth_set_context </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td>
<td class="paramname"> <em>auth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>context</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the "authentication context" which scopes cookies with the DBUS_COOKIE_SHA1 auth mechanism for example.
<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>auth</em> </td><td>the auth conversation </td></tr>
<tr><td valign="top"></td><td valign="top"><em>context</em> </td><td>the context </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02673">2673</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l01605">_dbus_string_replace_len()</a>, and <a class="el" href="dbus-auth_8c-source.html#l00172">context</a>.
</div>
</div><p>
<a class="anchor" name="g2bb917d44b44b1a2813f60dec03731cd"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_set_credentials" ref="g2bb917d44b44b1a2813f60dec03731cd" args="(DBusAuth *auth, DBusCredentials *credentials)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_auth_set_credentials </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td>
<td class="paramname"> <em>auth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusCredentials.html">DBusCredentials</a> * </td>
<td class="paramname"> <em>credentials</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets credentials received via reliable means from the operating system.
<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>auth</em> </td><td>the auth conversation </td></tr>
<tr><td valign="top"></td><td valign="top"><em>credentials</em> </td><td>the credentials received </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on OOM </dd></dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02612">2612</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-credentials_8c-source.html#l00314">_dbus_credentials_add_credentials()</a>, <a class="el" href="dbus-credentials_8c-source.html#l00374">_dbus_credentials_clear()</a>, and <a class="el" href="dbus-auth_8c-source.html#l00165">credentials</a>.
</div>
</div><p>
<a class="anchor" name="g9454e2c512b4e2ea54d47cff6acaa4db"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_set_mechanisms" ref="g9454e2c512b4e2ea54d47cff6acaa4db" args="(DBusAuth *auth, const char **mechanisms)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_auth_set_mechanisms </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td>
<td class="paramname"> <em>auth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char ** </td>
<td class="paramname"> <em>mechanisms</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets an array of authentication mechanism names that we are willing to use.
<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>auth</em> </td><td>the auth conversation </td></tr>
<tr><td valign="top"></td><td valign="top"><em>mechanisms</em> </td><td><a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>-terminated array of mechanism names </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02293">2293</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-internals_8c-source.html#l00447">_dbus_dup_string_array()</a>, <a class="el" href="dbus-auth_8c-source.html#l00177">allowed_mechs</a>, <a class="el" href="dbus-memory_8c-source.html#l00655">dbus_free_string_array()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-transport_8c-source.html#l01344">_dbus_transport_set_auth_mechanisms()</a>.
</div>
</div><p>
<a class="anchor" name="g7fb648be9d6d451917195a0e43eeece0"></a><!-- doxytag: member="dbus-auth.c::_dbus_auth_unref" ref="g7fb648be9d6d451917195a0e43eeece0" args="(DBusAuth *auth)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_auth_unref </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusAuth.html">DBusAuth</a> * </td>
<td class="paramname"> <em>auth</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Decrements the refcount of an auth object.
<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>auth</em> </td><td>the auth conversation </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-auth_8c-source.html#l02243">2243</a> of file <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-credentials_8c-source.html#l00124">_dbus_credentials_unref()</a>, <a class="el" href="dbus-keyring_8c-source.html#l00685">_dbus_keyring_unref()</a>, <a class="el" href="dbus-list_8c-source.html#l00549">_dbus_list_clear()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-auth_8c-source.html#l00309">DBUS_AUTH_CLIENT</a>, <a class="el" href="dbus-auth_8c-source.html#l00304">DBUS_AUTH_IS_CLIENT</a>, <a class="el" href="dbus-auth_8c-source.html#l00299">DBUS_AUTH_IS_SERVER</a>, <a class="el" href="dbus-auth_8c-source.html#l00314">DBUS_AUTH_SERVER</a>, <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, <a class="el" href="dbus-memory_8c-source.html#l00655">dbus_free_string_array()</a>, and <a class="el" href="dbus-auth_8c-source.html#l00151">refcount</a>.
<p>
Referenced by <a class="el" href="dbus-auth_8c-source.html#l02190">_dbus_auth_client_new()</a>, <a class="el" href="dbus-transport_8c-source.html#l00202">_dbus_transport_finalize_base()</a>, and <a class="el" href="dbus-transport_8c-source.html#l00093">_dbus_transport_init_base()</a>.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 14 22:26:13 2009 for D-Bus by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>