<?xml version="1.0" encoding="ascii"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>pyxmpp.sasl.digest_md5.DigestMD5ClientAuthenticator</title> <link rel="stylesheet" href="epydoc.css" type="text/css" /> <script type="text/javascript" src="epydoc.js"></script> </head> <body bgcolor="white" text="black" link="blue" vlink="#204080" alink="#204080"> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Home link --> <th> <a href="pyxmpp-module.html">Home</a> </th> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <!-- Project homepage --> <th class="navbar" align="right" width="100%"> <table border="0" cellpadding="0" cellspacing="0"> <tr><th class="navbar" align="center" ><a class="navbar" target="_top" href="http://pyxmpp.jajcus.net/">PyXMPP</a></th> </tr></table></th> </tr> </table> <table width="100%" cellpadding="0" cellspacing="0"> <tr valign="top"> <td width="100%"> <span class="breadcrumbs"> <a href="pyxmpp-module.html">Package pyxmpp</a> :: <a href="pyxmpp.sasl-module.html">Package sasl</a> :: <a href="pyxmpp.sasl.digest_md5-module.html">Module digest_md5</a> :: Class DigestMD5ClientAuthenticator </span> </td> <td> <table cellpadding="0" cellspacing="0"> <!-- hide/show private --> <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink" onclick="toggle_private();">hide private</a>]</span></td></tr> </table> </td> </tr> </table> <!-- ==================== CLASS DESCRIPTION ==================== --> <h1 class="epydoc">Class DigestMD5ClientAuthenticator</h1><p class="nomargin-top"><span class="codelink"><a href="pyxmpp.sasl.digest_md5-pysrc.html#DigestMD5ClientAuthenticator">source code</a></span></p> <pre class="base-tree"> <a href="pyxmpp.sasl.core.ClientAuthenticator-class.html">core.ClientAuthenticator</a> --+ | <strong class="uidshort">DigestMD5ClientAuthenticator</strong> </pre> <hr /> Provides PLAIN SASL authentication for a client. <!-- ==================== INSTANCE METHODS ==================== --> <a name="section-InstanceMethods"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Instance Methods</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-InstanceMethods" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="pyxmpp.sasl.digest_md5.DigestMD5ClientAuthenticator-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">password_manager</span>)</span><br /> Initialize a <a href="pyxmpp.sasl.digest_md5.DigestMD5ClientAuthenticator-class.html" class="link">DigestMD5ClientAuthenticator</a> object.</td> <td align="right" valign="top"> <span class="codelink"><a href="pyxmpp.sasl.digest_md5-pysrc.html#DigestMD5ClientAuthenticator.__init__">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"><a href="pyxmpp.sasl.core.Response-class.html" class="link">sasl.Response</a> or <a href="pyxmpp.sasl.core.Failure-class.html" class="link">sasl.Failure</a></span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="pyxmpp.sasl.digest_md5.DigestMD5ClientAuthenticator-class.html#start" class="summary-sig-name">start</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">username</span>, <span class="summary-sig-arg">authzid</span>)</span><br /> Start the authentication process initializing client state.</td> <td align="right" valign="top"> <span class="codelink"><a href="pyxmpp.sasl.digest_md5-pysrc.html#DigestMD5ClientAuthenticator.start">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"><a href="pyxmpp.sasl.core.Response-class.html" class="link">sasl.Response</a> or <a href="pyxmpp.sasl.core.Failure-class.html" class="link">sasl.Failure</a></span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="pyxmpp.sasl.digest_md5.DigestMD5ClientAuthenticator-class.html#challenge" class="summary-sig-name">challenge</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">challenge</span>)</span><br /> Process a challenge and return the response.</td> <td align="right" valign="top"> <span class="codelink"><a href="pyxmpp.sasl.digest_md5-pysrc.html#DigestMD5ClientAuthenticator.challenge">source code</a></span> </td> </tr> </table> </td> </tr> <tr class="private"> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="pyxmpp.sasl.digest_md5.DigestMD5ClientAuthenticator-class.html#_get_password" class="summary-sig-name" onclick="show_private();">_get_password</a>(<span class="summary-sig-arg">self</span>)</span><br /> Retrieve user's password from the password manager.</td> <td align="right" valign="top"> <span class="codelink"><a href="pyxmpp.sasl.digest_md5-pysrc.html#DigestMD5ClientAuthenticator._get_password">source code</a></span> </td> </tr> </table> </td> </tr> <tr class="private"> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"><a href="pyxmpp.sasl.core.Response-class.html" class="link">sasl.Response</a> or <a href="pyxmpp.sasl.core.Failure-class.html" class="link">sasl.Failure</a></span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="pyxmpp.sasl.digest_md5.DigestMD5ClientAuthenticator-class.html#_make_response" class="summary-sig-name" onclick="show_private();">_make_response</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">charset</span>, <span class="summary-sig-arg">realms</span>, <span class="summary-sig-arg">nonce</span>)</span><br /> Make a response for the first challenge from the server.</td> <td align="right" valign="top"> <span class="codelink"><a href="pyxmpp.sasl.digest_md5-pysrc.html#DigestMD5ClientAuthenticator._make_response">source code</a></span> </td> </tr> </table> </td> </tr> <tr class="private"> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"><code class="link">str</code> or <a href="pyxmpp.sasl.core.Failure-class.html" class="link">Failure</a></span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="pyxmpp.sasl.digest_md5.DigestMD5ClientAuthenticator-class.html#_get_realm" class="summary-sig-name" onclick="show_private();">_get_realm</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">realms</span>, <span class="summary-sig-arg">charset</span>)</span><br /> Choose a realm from the list specified by the server.</td> <td align="right" valign="top"> <span class="codelink"><a href="pyxmpp.sasl.digest_md5-pysrc.html#DigestMD5ClientAuthenticator._get_realm">source code</a></span> </td> </tr> </table> </td> </tr> <tr class="private"> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"><a href="pyxmpp.sasl.core.Response-class.html" class="link">sasl.Response</a> or <a href="pyxmpp.sasl.core.Failure-class.html" class="link">sasl.Failure</a></span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="pyxmpp.sasl.digest_md5.DigestMD5ClientAuthenticator-class.html#_final_challenge" class="summary-sig-name" onclick="show_private();">_final_challenge</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">challenge</span>)</span><br /> Process the second challenge from the server and return the response.</td> <td align="right" valign="top"> <span class="codelink"><a href="pyxmpp.sasl.digest_md5-pysrc.html#DigestMD5ClientAuthenticator._final_challenge">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"><a href="pyxmpp.sasl.core.Success-class.html" class="link">sasl.Success</a> or <a href="pyxmpp.sasl.core.Failure-class.html" class="link">sasl.Failure</a></span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="pyxmpp.sasl.digest_md5.DigestMD5ClientAuthenticator-class.html#finish" class="summary-sig-name">finish</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">data</span>)</span><br /> Process success indicator from the server.</td> <td align="right" valign="top"> <span class="codelink"><a href="pyxmpp.sasl.digest_md5-pysrc.html#DigestMD5ClientAuthenticator.finish">source code</a></span> </td> </tr> </table> </td> </tr> </table> <!-- ==================== INSTANCE VARIABLES ==================== --> <a name="section-InstanceVariables"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Instance Variables</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-InstanceVariables" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="password"></a><span class="summary-name">password</span><br /> : current authentication password </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="pformat"></a><span class="summary-name">pformat</span><br /> : current authentication password format </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <a name="realm"></a><span class="summary-name">realm</span><br /> : current authentication realm </td> </tr> </table> <!-- ==================== METHOD DETAILS ==================== --> <a name="section-MethodDetails"></a> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td colspan="2" class="table-header"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td align="left"><span class="table-header">Method Details</span></td> <td align="right" valign="top" ><span class="options">[<a href="#section-MethodDetails" class="privatelink" onclick="toggle_private();" >hide private</a>]</span></td> </tr> </table> </td> </tr> </table> <a name="__init__"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>, <span class="sig-arg">password_manager</span>)</span> <br /><em class="fname">(Constructor)</em> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="pyxmpp.sasl.digest_md5-pysrc.html#DigestMD5ClientAuthenticator.__init__">source code</a></span> </td> </tr></table> Initialize a <a href="pyxmpp.sasl.digest_md5.DigestMD5ClientAuthenticator-class.html" class="link">DigestMD5ClientAuthenticator</a> object. <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>password_manager</code></strong> (: <a href="pyxmpp.sasl.core.PasswordManager-class.html" class="link">PasswordManager</a>) - : name of the password manager object providing authentication credentials.</li> </ul></dd> <dt>Overrides: <a href="pyxmpp.sasl.core.ClientAuthenticator-class.html#__init__">core.ClientAuthenticator.__init__</a> </dt> </dl> </td></tr></table> </div> <a name="start"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">start</span>(<span class="sig-arg">self</span>, <span class="sig-arg">username</span>, <span class="sig-arg">authzid</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="pyxmpp.sasl.digest_md5-pysrc.html#DigestMD5ClientAuthenticator.start">source code</a></span> </td> </tr></table> Start the authentication process initializing client state. <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>username</code></strong> (: <code class="link">unicode</code>) - : username (authentication id).</li> <li><strong class="pname"><code>authzid</code></strong> (: <code class="link">unicode</code>) - : authorization id.</li> </ul></dd> <dt>Returns: <a href="pyxmpp.sasl.core.Response-class.html" class="link">sasl.Response</a> or <a href="pyxmpp.sasl.core.Failure-class.html" class="link">sasl.Failure</a></dt> <dd>the (empty) initial response</dd> <dt>Overrides: <a href="pyxmpp.sasl.core.ClientAuthenticator-class.html#start">core.ClientAuthenticator.start</a> </dt> </dl> </td></tr></table> </div> <a name="challenge"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">challenge</span>(<span class="sig-arg">self</span>, <span class="sig-arg">challenge</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="pyxmpp.sasl.digest_md5-pysrc.html#DigestMD5ClientAuthenticator.challenge">source code</a></span> </td> </tr></table> Process a challenge and return the response. <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>challenge</code></strong> (: <code class="link">str</code>) - : the challenge from server.</li> </ul></dd> <dt>Returns: <a href="pyxmpp.sasl.core.Response-class.html" class="link">sasl.Response</a> or <a href="pyxmpp.sasl.core.Failure-class.html" class="link">sasl.Failure</a></dt> <dd>the response or a failure indicator.</dd> <dt>Overrides: <a href="pyxmpp.sasl.core.ClientAuthenticator-class.html#challenge">core.ClientAuthenticator.challenge</a> </dt> </dl> </td></tr></table> </div> <a name="_get_password"></a> <div class="private"> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">_get_password</span>(<span class="sig-arg">self</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="pyxmpp.sasl.digest_md5-pysrc.html#DigestMD5ClientAuthenticator._get_password">source code</a></span> </td> </tr></table> <p>Retrieve user's password from the password manager.</p> <p>Set <a href="pyxmpp.sasl.digest_md5.DigestMD5ClientAuthenticator-class.html#password" class="link">self.password</a> to the password and <a href="pyxmpp.sasl.digest_md5.DigestMD5ClientAuthenticator-class.html#pformat" class="link">self.pformat</a> to its format name ('plain' or '<a class="rst-reference external" href="md5:user:realm:pass" target="_top">md5:user:realm:pass</a>').</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="_make_response"></a> <div class="private"> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">_make_response</span>(<span class="sig-arg">self</span>, <span class="sig-arg">charset</span>, <span class="sig-arg">realms</span>, <span class="sig-arg">nonce</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="pyxmpp.sasl.digest_md5-pysrc.html#DigestMD5ClientAuthenticator._make_response">source code</a></span> </td> </tr></table> Make a response for the first challenge from the server. <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>charset</code></strong> (: <code class="link">str</code>) - : charset name from the challenge.</li> <li><strong class="pname"><code>realms</code></strong> (: <code class="link">str</code>) - : realms list from the challenge.</li> <li><strong class="pname"><code>nonce</code></strong> (: <code class="link">str</code>) - : nonce value from the challenge.</li> </ul></dd> <dt>Returns: <a href="pyxmpp.sasl.core.Response-class.html" class="link">sasl.Response</a> or <a href="pyxmpp.sasl.core.Failure-class.html" class="link">sasl.Failure</a></dt> <dd>the response or a failure indicator.</dd> </dl> </td></tr></table> </div> <a name="_get_realm"></a> <div class="private"> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">_get_realm</span>(<span class="sig-arg">self</span>, <span class="sig-arg">realms</span>, <span class="sig-arg">charset</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="pyxmpp.sasl.digest_md5-pysrc.html#DigestMD5ClientAuthenticator._get_realm">source code</a></span> </td> </tr></table> Choose a realm from the list specified by the server. <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>realms</code></strong> (: <code class="link">list</code> of <code class="link">str</code>) - : the realm list.</li> <li><strong class="pname"><code>charset</code></strong> (: <code class="link">str</code>) - : encoding of realms on the list.</li> </ul></dd> <dt>Returns: <code class="link">str</code> or <a href="pyxmpp.sasl.core.Failure-class.html" class="link">Failure</a></dt> <dd>the realm chosen or a failure indicator.</dd> </dl> </td></tr></table> </div> <a name="_final_challenge"></a> <div class="private"> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">_final_challenge</span>(<span class="sig-arg">self</span>, <span class="sig-arg">challenge</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="pyxmpp.sasl.digest_md5-pysrc.html#DigestMD5ClientAuthenticator._final_challenge">source code</a></span> </td> </tr></table> Process the second challenge from the server and return the response. <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>challenge</code></strong> (: <code class="link">str</code>) - : the challenge from server.</li> </ul></dd> <dt>Returns: <a href="pyxmpp.sasl.core.Response-class.html" class="link">sasl.Response</a> or <a href="pyxmpp.sasl.core.Failure-class.html" class="link">sasl.Failure</a></dt> <dd>the response or a failure indicator.</dd> </dl> </td></tr></table> </div> <a name="finish"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">finish</span>(<span class="sig-arg">self</span>, <span class="sig-arg">data</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="pyxmpp.sasl.digest_md5-pysrc.html#DigestMD5ClientAuthenticator.finish">source code</a></span> </td> </tr></table> <p>Process success indicator from the server.</p> <p>Process any addiitional data passed with the success. Fail if the server was not authenticated.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>data</code></strong> (: <code class="link">str</code>) - : an optional additional data with success.</li> </ul></dd> <dt>Returns: <a href="pyxmpp.sasl.core.Success-class.html" class="link">sasl.Success</a> or <a href="pyxmpp.sasl.core.Failure-class.html" class="link">sasl.Failure</a></dt> <dd>success or failure indicator.</dd> <dt>Overrides: <a href="pyxmpp.sasl.core.ClientAuthenticator-class.html#finish">core.ClientAuthenticator.finish</a> </dt> </dl> </td></tr></table> </div> <br /> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Home link --> <th> <a href="pyxmpp-module.html">Home</a> </th> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <!-- Project homepage --> <th class="navbar" align="right" width="100%"> <table border="0" cellpadding="0" cellspacing="0"> <tr><th class="navbar" align="center" ><a class="navbar" target="_top" href="http://pyxmpp.jajcus.net/">PyXMPP</a></th> </tr></table></th> </tr> </table> <table border="0" cellpadding="0" cellspacing="0" width="100%%"> <tr> <td align="left" class="footer"> Generated by Epydoc 3.0.1 on Sun May 8 13:35:04 2011 </td> <td align="right" class="footer"> <a target="mainFrame" href="http://epydoc.sourceforge.net" >http://epydoc.sourceforge.net</a> </td> </tr> </table> <script type="text/javascript"> <!-- // Private objects are initially displayed (because if // javascript is turned off then we want them to be // visible); but by default, we want to hide them. So hide // them unless we have a cookie that says to show them. checkCookie(); // --> </script> </body> </html>