<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Proton DotNet: Apache.Qpid.Proton.Engine.Sasl.Client.IMechanism Interface Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Proton DotNet
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceApache.html">Apache</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid.html">Qpid</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton.html">Proton</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Engine.html">Engine</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl.html">Sasl</a></li><li class="navelem"><a class="el" href="namespaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client.html">Client</a></li><li class="navelem"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1IMechanism.html">IMechanism</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#properties">Properties</a> &#124;
<a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1IMechanism-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Apache.Qpid.Proton.Engine.Sasl.Client.IMechanism Interface Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Interface that is implemented by all SASL mechanisms provided in this package.  
 <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1IMechanism.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Apache.Qpid.Proton.Engine.Sasl.Client.IMechanism:</div>
<div class="dyncontent">
 <div class="center">
  <img src="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1IMechanism.png" usemap="#Apache.Qpid.Proton.Engine.Sasl.Client.IMechanism_map" alt=""/>
  <map id="Apache.Qpid.Proton.Engine.Sasl.Client.IMechanism_map" name="Apache.Qpid.Proton.Engine.Sasl.Client.IMechanism_map">
<area href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1AbstractMechanism.html" title="Common base for SASL mechanism types that provides basic service to ease the creation of SASL mechani..." alt="Apache.Qpid.Proton.Engine.Sasl.Client.AbstractMechanism" shape="rect" coords="1477,56,1889,80"/>
<area href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1AbstractScramSHAMechanism.html" title="Common base for SASL mechanism types that provides basic service to ease the creation of SASL mechani..." alt="Apache.Qpid.Proton.Engine.Sasl.Client.AbstractScramSHAMechanism" shape="rect" coords="422,112,834,136"/>
<area href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1AnonymousMechanism.html" title="Implementation of the SASL Anonymous mechanism." alt="Apache.Qpid.Proton.Engine.Sasl.Client.AnonymousMechanism" shape="rect" coords="844,112,1256,136"/>
<area href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1CramMD5Mechanism.html" title="Implementation of the SASL CRAM-MD5 mechanism." alt="Apache.Qpid.Proton.Engine.Sasl.Client.CramMD5Mechanism" shape="rect" coords="1266,112,1678,136"/>
<area href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1ExternalMechanism.html" title="Implementation of the SASL External mechanism." alt="Apache.Qpid.Proton.Engine.Sasl.Client.ExternalMechanism" shape="rect" coords="1688,112,2100,136"/>
<area href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1PlainMechanism.html" title="Implementation of the SASL Plain mechanism." alt="Apache.Qpid.Proton.Engine.Sasl.Client.PlainMechanism" shape="rect" coords="2110,112,2522,136"/>
<area href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1XOauth2Mechanism.html" title="Implementation of the SASL XOAUTH2 mechanism." alt="Apache.Qpid.Proton.Engine.Sasl.Client.XOauth2Mechanism" shape="rect" coords="2532,112,2944,136"/>
<area href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1ScramSHA1Mechanism.html" title="Implements the SASL Scram SHA1 authentication Mechanism." alt="Apache.Qpid.Proton.Engine.Sasl.Client.ScramSHA1Mechanism" shape="rect" coords="0,168,412,192"/>
<area href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1ScramSHA256Mechanism.html" title="Implements the SASL Scram SHA256 authentication Mechanism." alt="Apache.Qpid.Proton.Engine.Sasl.Client.ScramSHA256Mechanism" shape="rect" coords="422,168,834,192"/>
<area href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1ScramSHA512Mechanism.html" title="Implements the SASL Scram SHA512 authentication Mechanism." alt="Apache.Qpid.Proton.Engine.Sasl.Client.ScramSHA512Mechanism" shape="rect" coords="844,168,1256,192"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a20f41c0a2bf53a9d96102c172578e8b7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1IMechanism.html#a20f41c0a2bf53a9d96102c172578e8b7">GetInitialResponse</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1ISaslCredentialsProvider.html">ISaslCredentialsProvider</a> credentialsProvider)</td></tr>
<tr class="memdesc:a20f41c0a2bf53a9d96102c172578e8b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Based on the functionality of the implemented mechanism, formulate the initial response packet that will be sent back to the remote, if no response is required for this mechanism this method may return null.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1IMechanism.html#a20f41c0a2bf53a9d96102c172578e8b7">More...</a><br /></td></tr>
<tr class="separator:a20f41c0a2bf53a9d96102c172578e8b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabaf857bd26e20ee28da962e6a07a65f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1IMechanism.html#aabaf857bd26e20ee28da962e6a07a65f">GetChallengeResponse</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1ISaslCredentialsProvider.html">ISaslCredentialsProvider</a> credentials, <a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a> challenge)</td></tr>
<tr class="memdesc:aabaf857bd26e20ee28da962e6a07a65f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Based on the functionality of the implemented mechanism, formulate the challenge response packet that will be sent back to the remote. If the mechanism is not expecting a challenge this method my throw an exception.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1IMechanism.html#aabaf857bd26e20ee28da962e6a07a65f">More...</a><br /></td></tr>
<tr class="separator:aabaf857bd26e20ee28da962e6a07a65f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a3774039d5d580c03022d5b22d5da59"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1IMechanism.html#a8a3774039d5d580c03022d5b22d5da59">VerifyCompletion</a> ()</td></tr>
<tr class="memdesc:a8a3774039d5d580c03022d5b22d5da59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verifies that the SASL exchange has completed successfully. This is an opportunity for the mechanism to ensure that all mandatory steps have been completed successfully and to cleanup and resources that are held by this Mechanism. When verification fails this method throw a <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1SaslException.html" title="Base exception type for exceptions encountered during SASL authentication.">SaslException</a>.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1IMechanism.html#a8a3774039d5d580c03022d5b22d5da59">More...</a><br /></td></tr>
<tr class="separator:a8a3774039d5d580c03022d5b22d5da59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9441036670277401b4927221a873ee9d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1IMechanism.html#a9441036670277401b4927221a873ee9d">IsApplicable</a> (<a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1ISaslCredentialsProvider.html">ISaslCredentialsProvider</a> credentials)</td></tr>
<tr class="memdesc:a9441036670277401b4927221a873ee9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows the Mechanism to determine if it is a valid choice based on the configured credentials at the time of selection. The sasl processing layer must query each mechanism to determine its applicability and must not attempt to utilize a given mechanism if it reports it cannot be applied using the provided credentials.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1IMechanism.html#a9441036670277401b4927221a873ee9d">More...</a><br /></td></tr>
<tr class="separator:a9441036670277401b4927221a873ee9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5086a51a81198f440dc7510a8ba3fc48"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1IMechanism.html#a5086a51a81198f440dc7510a8ba3fc48">IsEnabledByDefault</a> ()</td></tr>
<tr class="memdesc:a5086a51a81198f440dc7510a8ba3fc48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows the mechanism to indicate if it is enabled by default, or only when explicitly enabled through configuring the permitted SASL mechanisms. Any mechanism selection logic should examine this value along with the configured allowed mechanism and decide if this one should be used.  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1IMechanism.html#a5086a51a81198f440dc7510a8ba3fc48">More...</a><br /></td></tr>
<tr class="separator:a5086a51a81198f440dc7510a8ba3fc48"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a>
Properties</h2></td></tr>
<tr class="memitem:a7f4aa2e38fd799afaae79d51bff4ec5d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Types_1_1Symbol.html">Symbol</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1IMechanism.html#a7f4aa2e38fd799afaae79d51bff4ec5d">Name</a><code> [get]</code></td></tr>
<tr class="memdesc:a7f4aa2e38fd799afaae79d51bff4ec5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the proper name of the SASL mechanism  <a href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1IMechanism.html#a7f4aa2e38fd799afaae79d51bff4ec5d">More...</a><br /></td></tr>
<tr class="separator:a7f4aa2e38fd799afaae79d51bff4ec5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Interface that is implemented by all SASL mechanisms provided in this package. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="aabaf857bd26e20ee28da962e6a07a65f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aabaf857bd26e20ee28da962e6a07a65f">&#9670;&nbsp;</a></span>GetChallengeResponse()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a> Apache.Qpid.Proton.Engine.Sasl.Client.IMechanism.GetChallengeResponse </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1ISaslCredentialsProvider.html">ISaslCredentialsProvider</a>&#160;</td>
          <td class="paramname"><em>credentials</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a>&#160;</td>
          <td class="paramname"><em>challenge</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Based on the functionality of the implemented mechanism, formulate the challenge response packet that will be sent back to the remote. If the mechanism is not expecting a challenge this method my throw an exception. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">credentialsProvider</td><td>The provider of the credentials</td></tr>
    <tr><td class="paramname">challenge</td><td>The encoded challenge received from the remote</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The challenge response encoded into a proton buffer.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1SaslException.html" title="Base exception type for exceptions encountered during SASL authentication.">SaslException</a></td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1XOauth2Mechanism.html#a8fc9163833f7ec46502730673a02c38d">Apache.Qpid.Proton.Engine.Sasl.Client.XOauth2Mechanism</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1CramMD5Mechanism.html#acd0b02fc31dc3413652302c19b7a46e4">Apache.Qpid.Proton.Engine.Sasl.Client.CramMD5Mechanism</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1AbstractScramSHAMechanism.html#a64b689b25fce2802cbf6850bba4017c4">Apache.Qpid.Proton.Engine.Sasl.Client.AbstractScramSHAMechanism</a>, and <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1AbstractMechanism.html#a35b525088befdab621407726f9c0e506">Apache.Qpid.Proton.Engine.Sasl.Client.AbstractMechanism</a>.</p>

</div>
</div>
<a id="a20f41c0a2bf53a9d96102c172578e8b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20f41c0a2bf53a9d96102c172578e8b7">&#9670;&nbsp;</a></span>GetInitialResponse()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Buffer_1_1IProtonBuffer.html">IProtonBuffer</a> Apache.Qpid.Proton.Engine.Sasl.Client.IMechanism.GetInitialResponse </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1ISaslCredentialsProvider.html">ISaslCredentialsProvider</a>&#160;</td>
          <td class="paramname"><em>credentialsProvider</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Based on the functionality of the implemented mechanism, formulate the initial response packet that will be sent back to the remote, if no response is required for this mechanism this method may return null. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">credentialsProvider</td><td>The provider of the credentials</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The initial response encoded into a proton buffer.</dd></dl>

<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1CramMD5Mechanism.html#a33fa0eef3428c578c4f8955ffbf00a2e">Apache.Qpid.Proton.Engine.Sasl.Client.CramMD5Mechanism</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1AbstractMechanism.html#afaa919377d569c8d2e995d98bc63be63">Apache.Qpid.Proton.Engine.Sasl.Client.AbstractMechanism</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1XOauth2Mechanism.html#a79586f27ffeb004e52e3a6aa18eb1727">Apache.Qpid.Proton.Engine.Sasl.Client.XOauth2Mechanism</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1PlainMechanism.html#aa046ba050202f577043c1ae122513133">Apache.Qpid.Proton.Engine.Sasl.Client.PlainMechanism</a>, and <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1AbstractScramSHAMechanism.html#a3f98c8b329db7373c38e54f1c37c9ea2">Apache.Qpid.Proton.Engine.Sasl.Client.AbstractScramSHAMechanism</a>.</p>

</div>
</div>
<a id="a9441036670277401b4927221a873ee9d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9441036670277401b4927221a873ee9d">&#9670;&nbsp;</a></span>IsApplicable()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Apache.Qpid.Proton.Engine.Sasl.Client.IMechanism.IsApplicable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="interfaceApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1ISaslCredentialsProvider.html">ISaslCredentialsProvider</a>&#160;</td>
          <td class="paramname"><em>credentials</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Allows the Mechanism to determine if it is a valid choice based on the configured credentials at the time of selection. The sasl processing layer must query each mechanism to determine its applicability and must not attempt to utilize a given mechanism if it reports it cannot be applied using the provided credentials. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">credentialsProvider</td><td>The provider of the credentials</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the mechanism can operate given the provided credentials</dd></dl>

<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1XOauth2Mechanism.html#a5886fd267ea2d26f11e00d0ba3a544eb">Apache.Qpid.Proton.Engine.Sasl.Client.XOauth2Mechanism</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1PlainMechanism.html#a862ab0c52a4b053b33bc4953568c3852">Apache.Qpid.Proton.Engine.Sasl.Client.PlainMechanism</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1ExternalMechanism.html#a13fca3e0b0c7f08aab48e08196328820">Apache.Qpid.Proton.Engine.Sasl.Client.ExternalMechanism</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1CramMD5Mechanism.html#a6d01202d4d853a748e6b992893cbd315">Apache.Qpid.Proton.Engine.Sasl.Client.CramMD5Mechanism</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1AnonymousMechanism.html#a1c089eaedcc87f74fedb8bf277cdcef9">Apache.Qpid.Proton.Engine.Sasl.Client.AnonymousMechanism</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1AbstractScramSHAMechanism.html#a812fea47aee1c6098bf4637a4ed4db6c">Apache.Qpid.Proton.Engine.Sasl.Client.AbstractScramSHAMechanism</a>, and <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1AbstractMechanism.html#a7551c43011de4767250d398df8b94068">Apache.Qpid.Proton.Engine.Sasl.Client.AbstractMechanism</a>.</p>

</div>
</div>
<a id="a5086a51a81198f440dc7510a8ba3fc48"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5086a51a81198f440dc7510a8ba3fc48">&#9670;&nbsp;</a></span>IsEnabledByDefault()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Apache.Qpid.Proton.Engine.Sasl.Client.IMechanism.IsEnabledByDefault </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Allows the mechanism to indicate if it is enabled by default, or only when explicitly enabled through configuring the permitted SASL mechanisms. Any mechanism selection logic should examine this value along with the configured allowed mechanism and decide if this one should be used. </p>
<p>Typically most mechanisms can be enabled by default but some require explicit configuration in order to operate which implies that selecting them by default would always cause an authentication error if that mechanism matches the highest priority value offered by the remote peer. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the mechanim should used without it having been requested</dd></dl>

<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1AbstractMechanism.html#a9f79af7956f0d70a505c7807eb8db982">Apache.Qpid.Proton.Engine.Sasl.Client.AbstractMechanism</a>.</p>

</div>
</div>
<a id="a8a3774039d5d580c03022d5b22d5da59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a3774039d5d580c03022d5b22d5da59">&#9670;&nbsp;</a></span>VerifyCompletion()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Apache.Qpid.Proton.Engine.Sasl.Client.IMechanism.VerifyCompletion </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Verifies that the SASL exchange has completed successfully. This is an opportunity for the mechanism to ensure that all mandatory steps have been completed successfully and to cleanup and resources that are held by this Mechanism. When verification fails this method throw a <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1SaslException.html" title="Base exception type for exceptions encountered during SASL authentication.">SaslException</a>. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1SaslException.html" title="Base exception type for exceptions encountered during SASL authentication.">SaslException</a></td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1CramMD5Mechanism.html#ae4e704e49755bb2b52d8efc221c45eb8">Apache.Qpid.Proton.Engine.Sasl.Client.CramMD5Mechanism</a>, <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1AbstractScramSHAMechanism.html#aee899ddbab177226270633f3c8e8216a">Apache.Qpid.Proton.Engine.Sasl.Client.AbstractScramSHAMechanism</a>, and <a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Engine_1_1Sasl_1_1Client_1_1AbstractMechanism.html#a6001a6713477491eda12f5462e1c6907">Apache.Qpid.Proton.Engine.Sasl.Client.AbstractMechanism</a>.</p>

</div>
</div>
<h2 class="groupheader">Property Documentation</h2>
<a id="a7f4aa2e38fd799afaae79d51bff4ec5d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f4aa2e38fd799afaae79d51bff4ec5d">&#9670;&nbsp;</a></span>Name</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classApache_1_1Qpid_1_1Proton_1_1Types_1_1Symbol.html">Symbol</a> Apache.Qpid.Proton.Engine.Sasl.Client.IMechanism.Name</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the proper name of the SASL mechanism </p>

</div>
</div>
<hr/>The documentation for this interface was generated from the following file:<ul>
<li>src/Proton/Engine/Sasl/Client/IMechanism.cs</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>
