blob: 18c036a40cbd0661f51174f9b31cc5964bc7182e [file] [log] [blame]
<!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>