Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-updates > by-pkgid > 4ddaf9395fd12d8ef1314e11591a7412 > files > 255

cyrus-sasl-2.1.27-1.1.mga7.armv7hl.rpm



<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>sasl_auxprop - How to work with SASL auxiliary properties &mdash; Cyrus SASL 2.1.27 documentation</title>
  

  
  
    <link rel="shortcut icon" href="../../../../_static/favicon.ico"/>
  

  

  
  
    

  

  
  
    <link rel="stylesheet" href="../../../../_static/css/theme.css" type="text/css" />
  

  
    <link rel="stylesheet" href="../../../../_static/cyrus.css" type="text/css" />
  

  
        <link rel="index" title="Index"
              href="../../../../genindex.html"/>
        <link rel="search" title="Search" href="../../../../search.html"/>
    <link rel="top" title="Cyrus SASL 2.1.27 documentation" href="../../../../index.html"/>
        <link rel="up" title="Man pages" href="../../../manpages.html"/>
        <link rel="next" title="sasl_auxprop_add_plugin - add a SASL auxiliary property plugin" href="sasl_auxprop_add_plugin.html"/>
        <link rel="prev" title="sasl_authorize_t - The SASL authorization callback" href="sasl_authorize_t.html"/> 

  
  
  

</head>

<body class="wy-body-for-nav" role="document">

  
  
<div class="pageheader">
  <ul>
    <li><a href="../../../../index.html">Home</a></li>
    <li><a href="http://www.cyrusimap.org">Cyrus IMAP</a></li>
    <li><a href="../../../../download.html">Download</a></li>
    <li><a href="../../../../contribute.html">Contribute</a></li>
  </ul>
  <div>
    <a href="../../../../index.html">
      <img src="../../../../_static/logo.gif" alt="CYRUS SASL" />
    </a>
  </div>
</div>
<div style="clear: both;"></div>


  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-nav-search">
        

        
 
          <a href="../../../../index.html">
 

  
          
          <img src="../../../../_static/logo.gif"  />
     
        </a>

        
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../../../../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

        
      </div>

      <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
        
          
          
              <p class="caption"><span class="caption-text">Cyrus SASL</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../../../download.html">Download</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../../getsasl.html">Get SASL</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../installation.html">Installation</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../installation.html#quick-install-guide">Quick install guide</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../installation.html#detailed-installation-guide">Detailed installation guide</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../installation.html#supported-platforms">Supported platforms</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../release-notes/index.html">Release Notes</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../release-notes/index.html#supported-product-series">Supported Product Series</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../release-notes/index.html#series-2-1">Series 2.1</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../release-notes/index.html#older-versions">Older Versions</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../release-notes/index.html#series-2-2-0">Series 2: 2.0</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../release-notes/index.html#series-1">Series 1</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../../packager.html">Note for Packagers</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../quickstart.html">Quickstart guide</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../quickstart.html#features">Features</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../quickstart.html#typical-installation">Typical Installation</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../quickstart.html#configuration">Configuration</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../concepts.html">Concepts</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../concepts.html#sasl">SASL</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../concepts.html#sasl-authentication-mechanisms">SASL Authentication Mechanisms</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../concepts.html#security-layers">Security Layers</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../concepts.html#channel-binding">Channel Binding</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../concepts.html#realms">Realms</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../concepts.html#protocols">Protocols</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../concepts.html#cyrus-sasl">Cyrus SASL</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../concepts.html#the-glue-library">The Glue Library</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../concepts.html#auxiliary-properties">Auxiliary Properties</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../concepts.html#plugins">Plugins</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../../setup.html">Setup</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../installation.html">Installation</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../installation.html#quick-install-guide">Quick install guide</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../installation.html#tarball-installation">Tarball installation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../installation.html#unix-package-installation">Unix package Installation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../installation.html#configuration">Configuration</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../installation.html#detailed-installation-guide">Detailed installation guide</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../installation.html#requirements">Requirements</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../installation.html#build-configuration">Build Configuration</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../installation.html#building-and-installation">Building and Installation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../installation.html#compilation-hints">Compilation Hints</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../installation.html#application-configuration">Application Configuration</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../installation.html#supported-platforms">Supported platforms</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../upgrading.html">Upgrading from v1 to v2</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../upgrading.html#backwards-compatibility">Backwards Compatibility</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../upgrading.html#coexistence-with-saslv1">Coexistence with SASLv1</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../upgrading.html#database-upgrades">Database Upgrades</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../upgrading.html#errors-on-migration">Errors on migration</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../components.html">Components</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../components.html#the-application">The Application</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../components.html#the-sasl-glue-layer">The SASL Glue Layer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../components.html#plugins">Plugins</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../components.html#plugins-general">Plugins: General</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../components.html#plugins-sasl-mechanisms">Plugins: SASL Mechanisms</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../components.html#plugins-auxiliary-property">Plugins: Auxiliary Property</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../components.html#plugins-username-canonicalization">Plugins: Username Canonicalization</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../components.html#password-verification-services">Password Verification Services</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../options.html">Options</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../options.html#sasl-library">SASL Library</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../options.html#auxiliary-property-plugin">Auxiliary Property Plugin</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../options.html#gssapi">GSSAPI</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../options.html#ldapdb">LDAPDB</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../options.html#notes-on-ldapdb">Notes on LDAPDB</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../options.html#examples">Examples</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../options.html#ntlm">NTLM</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../options.html#otp">OTP</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../options.html#digest-md5">Digest-md5</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../options.html#sasldb">SASLDB</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../options.html#notes-on-sasldb-with-lmdb">Notes on sasldb with LMDB</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../options.html#sql-plugin">SQL Plugin</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../options.html#notes-on-sql">Notes on SQL</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../options.html#id2">Examples</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../options.html#srp">SRP</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../options.html#kerberos-v4">Kerberos V4</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../advanced.html">Advanced Usage</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../advanced.html#notes-for-advanced-usage-of-libsasl">Notes for Advanced Usage of libsasl</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../advanced.html#using-cyrus-sasl-as-a-static-library">Using Cyrus SASL as a static library</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1 current"><a class="reference internal" href="../../../../operations.html">Operations</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../../../sysadmin.html">System Administrators</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../sysadmin.html#what-sasl-is">What SASL is</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../sysadmin.html#authentication-and-authorization-identifiers">Authentication and authorization identifiers</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../sysadmin.html#realms">Realms</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../sysadmin.html#how-sasl-works">How SASL works</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../sysadmin.html#the-plain-mechanism-sasl-checkpass-and-plaintext-passwords">The PLAIN mechanism, <code class="docutils literal"><span class="pre">sasl_checkpass()</span></code>, and plaintext passwords</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../sysadmin.html#shared-secrets-mechanisms">Shared secrets mechanisms</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../sysadmin.html#kerberos-mechanisms">Kerberos mechanisms</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../sysadmin.html#the-otp-mechanism">The OTP mechanism</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../sysadmin.html#auxiliary-properties">Auxiliary Properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../sysadmin.html#how-to-set-configuration-options">How to set configuration options</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../sysadmin.html#the-default-configuration-file">The default configuration file</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../sysadmin.html#application-configuration">Application configuration</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../sysadmin.html#troubleshooting">Troubleshooting</a></li>
</ul>
</li>
<li class="toctree-l2 current"><a class="reference internal" href="../../../manpages.html">Man pages</a><ul class="current">
<li class="toctree-l3 current"><a class="reference internal" href="../../../manpages.html#library-files">(3) Library Files</a><ul class="current">
<li class="toctree-l4"><a class="reference internal" href="sasl.html"><strong>SASL</strong> - SASL Authentication Library</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_authorize_t.html"><strong>sasl_authorize_t</strong> - The SASL authorization callback</a></li>
<li class="toctree-l4 current"><a class="current reference internal" href="#"><strong>sasl_auxprop</strong> - How to work with SASL auxiliary properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_auxprop_add_plugin.html"><strong>sasl_auxprop_add_plugin</strong> - add a SASL auxiliary property plugin</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_auxprop_getctx.html"><strong>sasl_auxprop_getctx</strong> - Acquire an auxiliary property context</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_auxprop_request.html"><strong>sasl_auxprop_request</strong> - Request auxiliary properties from SASL</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_callbacks.html"><strong>sasl_callbacks</strong> - How to work with SASL callbacks</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_canon_user_t.html"><strong>sasl_canon_user_t</strong> - Application-supplied user canonicalization function</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_canonuser_add_plugin.html"><strong>sasl_canonuser_add_plugin</strong> - add a SASL user canonicalization plugin</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_chalprompt_t.html"><strong>sasl_chalprompt_t</strong> - Realm acquisition callback</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_checkapop.html"><strong>sasl_checkapop</strong> - Check an APOP challenge/response</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_checkpass.html"><strong>sasl_checkpass</strong> - Check a plaintext password</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_client_add_plugin.html"><strong>sasl_client_add_plugin</strong> - add a SASL client plugin</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_client_done.html"><strong>sasl_client_done</strong> - Cleanup function</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_client_init.html"><strong>sasl_client_init</strong> - SASL client authentication initialization</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_client_new.html"><strong>sasl_client_new</strong> - Create a new client authentication object</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_client_plug_init_t.html"><strong>sasl_client_plug_init_t</strong> - client plug‐in entry point</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_client_start.html"><strong>sasl_client_start</strong> - Begin an authentication negotiation</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_client_step.html"><strong>sasl_client_step</strong> - Perform a step in the authentication negotiation</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_decode.html"><strong>sasl_decode</strong> - Decode data received</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_decode64.html"><strong>sasl_decode64</strong> - Decode base64 string</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_dispose.html"><strong>sasl_dispose</strong> - Dispose of a SASL connection object</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_done.html"><strong>sasl_done</strong> - Dispose of a SASL connection object</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_encode.html"><strong>sasl_encode</strong> - Encode data for transport to authenticated host</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_encode64.html"><strong>sasl_encode64</strong> - Encode base64 string</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_encodev.html"><strong>sasl_encodev</strong> - Encode data for transport to authenticated host</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_erasebuffer.html"><strong>sasl_erasebuffer</strong> - erase buffer</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_errdetail.html"><strong>sasl_errdetail</strong> - Retrieve  detailed information about an error</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_errors.html"><strong>sasl_errors</strong> - SASL error codes</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_errstring.html"><strong>sasl_errstring</strong> - Translate a SASL return code to a human-readable form</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_getcallback_t.html"><strong>sasl_getcallback_t</strong> - callback function to lookup a sasl_callback_t for a connection</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_getconfpath_t.html"><strong>sasl_getconfpath_t</strong> - The SASL callback to indicate location of the config files</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_getopt_t.html"><strong>sasl_getopt_t</strong> - The SASL get option callback</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_getpath_t.html"><strong>sasl_getpath_t</strong> - The SASL callback to indicate location of the mechanism drivers</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_getprop.html"><strong>sasl_getprop</strong> - Get a SASL property</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_getrealm_t.html"><strong>sasl_getrealm_t</strong> - Realm Acquisition Callback</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_getsecret_t.html"><strong>sasl_getsecret_t</strong> - The SASL callback for secrets (passwords)</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_getsimple_t.html"><strong>sasl_getsimple_t</strong> - The SASL callback for username/authname/realm</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_global_listmech.html"><strong>sasl_global_listmech</strong> - Retrieve a list of the supported SASL mechanisms</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_idle.html"><strong>sasl_idle</strong> - Perform precalculations during an idle period</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_listmech.html"><strong>sasl_listmech</strong> - Retrieve a list of the supported SASL mechanisms</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_log_t.html"><strong>sasl_log_t</strong> - The SASL logging callback</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_server_add_plugin.html"><strong>sasl_server_add_plugin</strong> - add a SASL server plugin</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_server_done.html"><strong>sasl_server_done</strong> - Cleanup function</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_server_init.html"><strong>sasl_server_init</strong> - SASL server authentication initialization</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_server_new.html"><strong>sasl_server_new</strong> - Create a new server authentication object</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_server_plug_init_t.html"><strong>sasl_server_plug_init_t</strong> - server plug‐in entry point</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_server_start.html"><strong>sasl_server_start</strong> - Begin an authentication negotiation</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_server_step.html"><strong>sasl_server_step</strong> - Perform a step in the authentication negotiation</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_server_userdb_checkpass_t.html"><strong>sasl_server_userdb_checkpass_t</strong> - Plaintext Password Verification Callback</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_server_userdb_setpass_t.html"><strong>sasl_server_userdb_setpass_t</strong> - UserDB Plaintext Password Setting Callback</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_set_alloc.html"><strong>sasl_set_alloc</strong> - set the memory allocation functions used by the SASL library</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_set_mutex.html"><strong>sasl_set_mutex</strong> - set the mutex lock functions used by the SASL library</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_seterror.html"><strong>sasl_seterror</strong> - set the error string</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_setpass.html"><strong>sasl_setpass</strong> - Check a plaintext password</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_setprop.html"><strong>sasl_setprop</strong> - Set a SASL property</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_user_exists.html"><strong>sasl_user_exists</strong> - Check if a user exists on server</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_usererr.html"><strong>sasl_usererr</strong> - Remove information leak about accounts from sasl error codes</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_utf8verify.html"><strong>sasl_utf8verify</strong> - Verify a string is valid utf8</a></li>
<li class="toctree-l4"><a class="reference internal" href="sasl_verifyfile_t.html"><strong>sasl_verifyfile_t</strong> - The SASL file verification</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../auxiliary_properties.html">Auxiliary Properties</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../auxiliary_properties.html#auxiliary-properties-and-the-glue-layer">Auxiliary Properties and the Glue Layer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../auxiliary_properties.html#passwords-and-other-data">Passwords and other Data</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../auxiliary_properties.html#sasldb">sasldb</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../auxiliary_properties.html#ldapdb">ldapdb</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../auxiliary_properties.html#sql">sql</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../auxiliary_properties.html#user-canonicalization">User Canonicalization</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../authentication_mechanisms.html">Authentication Mechanisms</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../authentication_mechanisms.html#mechanisms">Mechanisms</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../authentication_mechanisms.html#anonymous">ANONYMOUS</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../authentication_mechanisms.html#cram-md5">CRAM-MD5</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../authentication_mechanisms.html#digest-md5">DIGEST-MD5</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../authentication_mechanisms.html#external">EXTERNAL</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../authentication_mechanisms.html#g2">G2</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../authentication_mechanisms.html#gssapi">GSSAPI</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../authentication_mechanisms.html#gss-spegno">GSS-SPEGNO</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../authentication_mechanisms.html#kerberos-v4">KERBEROS_V4</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../authentication_mechanisms.html#login">LOGIN</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../authentication_mechanisms.html#ntlm">NTLM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../authentication_mechanisms.html#otp">OTP</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../authentication_mechanisms.html#passdss">PASSDSS</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../authentication_mechanisms.html#plain">PLAIN</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../authentication_mechanisms.html#scram">SCRAM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../authentication_mechanisms.html#srp">SRP</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../authentication_mechanisms.html#non-sasl-authentication">Non-SASL Authentication</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../authentication_mechanisms.html#summary">Summary</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../pwcheck.html">Pwcheck</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../pwcheck.html#auxprop">Auxprop</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../pwcheck.html#auxprop-hashed">Auxprop-hashed</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../pwcheck.html#saslauthd">Saslauthd</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../pwcheck.html#authdaemon">Authdaemon</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../pwcheck.html#alwaystrue">Alwaystrue</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../pwcheck.html#auto-transition">Auto Transition</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../faq.html">Frequently Asked Questions</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../faqs/authorize-vs-authenticate.html">What is the difference between an Authorization ID and a Authentication ID?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../faqs/crammd5-digestmd5.html">Why do CRAM-MD5 and DIGEST-MD5 not work with CyrusSaslauthd?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../faqs/openldap-sasl-gssapi.html">How do I configure OpenLDAP +SASL+GSSAPI?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../faqs/plaintextpasswords.html">Why does CyrusSasl store plaintext passwords in its databases?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../faqs/rfcs.html">RFCs and drafts</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../faqs/upgrade-saslv2.html">Why am I having a problem running dbconverter-2 to upgrade from SASLv1 to SASLv2?</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../resources.html">Other Documentation &amp; Resources</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../../developer.html">Developers</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../appconvert.html">Converting Applications from v1 to v2</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../appconvert.html#tips-for-both-clients-and-servers">Tips for both clients and servers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../appconvert.html#tips-for-clients">Tips for clients</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../appconvert.html#tips-for-servers">Tips for Servers</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../developer/programming.html">Application Programmer’s Guide</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../developer/programming.html#introduction">Introduction</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/programming.html#about-this-guide">About this Guide</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/programming.html#what-is-sasl">What is SASL?</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../developer/programming.html#background">Background</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/programming.html#how-did-the-world-work-before-sasl">How did the world work before SASL?</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/programming.html#sasl-to-the-rescue">SASL to the rescue!</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../developer/programming.html#briefly">Briefly</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/programming.html#what-is-the-cyrus-sasl-library-good-for">What is the Cyrus SASL library good for?</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/programming.html#what-does-the-cyrus-sasl-library-do">What does the Cyrus SASL library do?</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/programming.html#what-doesn-t-the-cyrus-sasl-library-do">What doesn’t the Cyrus SASL library do?</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../developer/programming.html#client-only-section">Client-only Section</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/programming.html#a-typical-interaction-from-the-client-s-perspective">A typical interaction from the client’s perspective</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/programming.html#how-does-this-look-in-code">How does this look in code</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../developer/programming.html#server-only-section">Server-only Section</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/programming.html#a-typical-interaction-from-the-server-s-perspective">A typical interaction from the server’s perspective</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/programming.html#id1">How does this look in code?</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../developer/programming.html#common-section">Common Section</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/programming.html#callbacks-and-interactions">Callbacks and Interactions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/programming.html#security-layers">Security layers</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../developer/programming.html#example-applications-that-come-with-the-cyrus-sasl-library">Example applications that come with the Cyrus SASL library</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/programming.html#sample-client-and-sample-server"><cite>sample-client</cite> and <cite>sample-server</cite></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/programming.html#cyrus-imapd-v2-1-0-or-later">Cyrus imapd v2.1.0 or later</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/programming.html#imtest-from-cyrus-2-1-0-or-later"><cite>imtest</cite>, from Cyrus 2.1.0 or later</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../developer/programming.html#miscellaneous-information">Miscellaneous Information</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/programming.html#empty-exchanges">Empty exchanges</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/programming.html#idle">Idle</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../developer/plugprog.html">Plugin Programmer’s Guide</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../developer/plugprog.html#introduction">Introduction</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/plugprog.html#about-this-guide">About this Guide</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/plugprog.html#what-is-sasl">What is SASL?</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../developer/plugprog.html#common-section">Common Section</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/plugprog.html#overview-of-plugin-programming">Overview of Plugin Programming</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/plugprog.html#use-of-sasl-utils-t">Use of sasl_utils_t</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/plugprog.html#error-reporting">Error Reporting</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/plugprog.html#memory-allocation">Memory Allocation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/plugprog.html#client-send-first-server-send-last">Client Send First / Server Send Last</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../developer/plugprog.html#client-plugins">Client Plugins</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../developer/plugprog.html#server-plugins">Server Plugins</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../developer/plugprog.html#user-canonicalization-canon-user-plugins">User Canonicalization (canon_user) Plugins</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../developer/plugprog.html#auxiliary-property-auxprop-plugins">Auxiliary Property (auxprop) Plugins</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../developer/testing.html">Testing</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../developer/testing.html#testing-the-cmu-sasl-library-with-the-included-sample-applications">Testing the CMU SASL Library with the included sample applications</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../developer/testing.html#example">Example</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../developer/testing.html#running-the-testsuite-application">Running the Testsuite application</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../../support.html">Support/Community</a></li>
</ul>
<p class="caption"><span class="caption-text">IMAP</span></p>
<ul>
<li class="toctree-l1"><a class="reference external" href="http://www.cyrusimap.org">Cyrus IMAP</a></li>
</ul>

          
        
      </div>
      &nbsp;
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
        <a href="../../../../index.html">Cyrus SASL</a>
      </nav>


      
      <div class="wy-nav-content">
        <div class="rst-content">
          
          <div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
      <li><a href="../../../../index.html">Docs v2.1.27</a> &raquo;</li>
      
          <li><a href="../../../../operations.html">Operations</a> &raquo;</li>
      
          <li><a href="../../../manpages.html">Man pages</a> &raquo;</li>
      
    <li><strong>sasl_auxprop</strong> - How to work with SASL auxiliary properties</li>
      <li class="wy-breadcrumbs-aside">
        
          
            <a href="https://github.com/cyrusimap/cyrus-sasl/blob/master/docsrc/sasl/reference/manpages/library/sasl_auxprop.rst" class="fa fa-github"> Edit on GitHub</a>
          
        
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document">
            
  <div class="section" id="sasl-auxprop-how-to-work-with-sasl-auxiliary-properties">
<span id="sasl-reference-manpages-library-sasl-auxprop"></span><span id="std:saslman-sasl_auxprop(3)"></span><h1><strong>sasl_auxprop</strong> - How to work with SASL auxiliary properties<a class="headerlink" href="#sasl-auxprop-how-to-work-with-sasl-auxiliary-properties" title="Permalink to this headline">¶</a></h1>
<div class="section" id="synopsis">
<h2>Synopsis<a class="headerlink" href="#synopsis" title="Permalink to this headline">¶</a></h2>
<div class="highlight-C"><div class="highlight"><pre><span></span><span class="cp">#include</span> <span class="cpf">&lt;sasl/prop.h&gt;</span><span class="cp"></span>

<span class="k">struct</span> <span class="n">propctx</span> <span class="o">*</span><span class="n">prop_new</span><span class="p">(</span><span class="kt">unsigned</span> <span class="n">estimate</span><span class="p">)</span>

<span class="kt">int</span> <span class="n">prop_dup</span><span class="p">(</span><span class="k">struct</span> <span class="n">propctx</span> <span class="o">*</span><span class="n">src_ctx</span><span class="p">,</span>
             <span class="k">struct</span> <span class="n">propctx</span> <span class="o">*</span><span class="n">dst_ctx</span><span class="p">)</span>

<span class="kt">int</span> <span class="n">prop_request</span><span class="p">(</span><span class="k">struct</span> <span class="n">propctx</span> <span class="o">*</span><span class="n">ctx</span><span class="p">,</span>
                 <span class="k">const</span> <span class="kt">char</span> <span class="o">**</span><span class="n">names</span><span class="p">)</span>

<span class="k">const</span> <span class="k">struct</span> <span class="n">propval</span> <span class="o">*</span><span class="n">prop_get</span><span class="p">(</span><span class="k">struct</span> <span class="n">propctx</span> <span class="o">*</span><span class="n">ctx</span><span class="p">)</span>

<span class="kt">int</span> <span class="n">prop_getnames</span><span class="p">(</span><span class="k">struct</span> <span class="n">propctx</span> <span class="o">*</span><span class="n">ctx</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">**</span><span class="n">names</span><span class="p">,</span>
                  <span class="k">struct</span> <span class="n">propval</span> <span class="o">*</span><span class="n">vals</span><span class="p">)</span>

<span class="kt">void</span> <span class="n">prop_clear</span><span class="p">(</span><span class="k">struct</span> <span class="n">propctx</span> <span class="o">*</span><span class="n">ctx</span><span class="p">,</span> <span class="kt">int</span> <span class="n">requests</span><span class="p">)</span>

<span class="kt">void</span> <span class="n">prop_erase</span><span class="p">(</span><span class="k">struct</span> <span class="n">propctx</span> <span class="o">*</span><span class="n">ctx</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">)</span>

<span class="kt">void</span> <span class="n">prop_dispose</span><span class="p">(</span><span class="k">struct</span> <span class="n">propctx</span> <span class="o">**</span><span class="n">ctx</span><span class="p">)</span>

<span class="kt">int</span> <span class="n">prop_format</span><span class="p">(</span><span class="k">struct</span> <span class="n">propctx</span> <span class="o">*</span><span class="n">ctx</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">sep</span><span class="p">,</span> <span class="kt">int</span> <span class="n">seplen</span><span class="p">,</span>
                <span class="kt">char</span> <span class="o">*</span><span class="n">outbuf</span><span class="p">,</span> <span class="kt">unsigned</span> <span class="n">outmax</span><span class="p">,</span> <span class="kt">unsigned</span> <span class="o">*</span><span class="n">outlen</span><span class="p">)</span>

<span class="kt">int</span> <span class="n">prop_set</span><span class="p">(</span><span class="k">struct</span> <span class="n">propctx</span> <span class="o">*</span><span class="n">ctx</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span>
             <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">value</span><span class="p">,</span> <span class="kt">int</span> <span class="n">vallen</span><span class="p">)</span>

<span class="kt">int</span> <span class="n">prop_setvals</span><span class="p">(</span><span class="k">struct</span> <span class="n">propctx</span> <span class="o">*</span><span class="n">ctx</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span>
                 <span class="k">const</span> <span class="kt">char</span> <span class="o">**</span><span class="n">values</span><span class="p">)</span>
</pre></div>
</div>
</div>
<div class="section" id="description">
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
<p>SASL auxiliary properties are used to obtain properties
from external sources during the authentication process.
For example,  a mechanism might need to query an LDAP
server to obtain the authentication secret.  The application probably needs other information from there as well,
such as home directory or UID.   The auxiliary property
interface allows the two to cooperate, and only results in
a single query against the LDAP server (or other property
sources).</p>
<p>Property lookups take place directly after user canonicalization occurs.  Therefore, all requests should be
registered with the context before that time.   Note that
requests can also be registered using the
<a class="reference internal" href="sasl_auxprop_request.html#std:saslman-sasl_auxprop_request(3)">sasl_auxprop_request(3)</a>  function.   Most of the functions listed
below, however, require a property context which can be
obtained by calling <a class="reference internal" href="sasl_auxprop_getctx.html#std:saslman-sasl_auxprop_getctx(3)">sasl_auxprop_getctx(3)</a>.</p>
</div>
<div class="section" id="api-description">
<h2>API description<a class="headerlink" href="#api-description" title="Permalink to this headline">¶</a></h2>
<dl class="function">
<dt id="c.prop_new">
struct <a class="reference internal" href="#c.propctx" title="propctx">propctx</a> *<code class="descname">prop_new</code><span class="sig-paren">(</span>unsigned<em>&nbsp;estimate</em><span class="sig-paren">)</span><a class="headerlink" href="#c.prop_new" title="Permalink to this definition">¶</a></dt>
<dd><p>Create a new property context.  Probably unnecessary for application developers
to call this at any point.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>estimate</strong> – is the estimate of storage needed in total for requests &amp; responses.  A value of 0 implies the library default.</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">a new property context: <a class="reference internal" href="#c.propctx" title="propctx"><code class="xref c c-type docutils literal"><span class="pre">propctx</span></code></a></p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="function">
<dt id="c.prop_dup">
int <code class="descname">prop_dup</code><span class="sig-paren">(</span>struct <a class="reference internal" href="#c.propctx" title="propctx">propctx</a><em>&nbsp;*src_ctx</em>, struct <a class="reference internal" href="#c.propctx" title="propctx">propctx</a><em>&nbsp;*dst_ctx</em><span class="sig-paren">)</span><a class="headerlink" href="#c.prop_dup" title="Permalink to this definition">¶</a></dt>
<dd><p>Duplicate a given property context.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>src_ctx</strong> (<a class="reference internal" href="#c.propctx" title="propctx"><code class="xref c c-type docutils literal"><span class="pre">propctx</span></code></a>) – Property context to copy.</li>
<li><strong>dst_ctx</strong> (<a class="reference internal" href="#c.propctx" title="propctx"><code class="xref c c-type docutils literal"><span class="pre">propctx</span></code></a>) – Destination context to copy into.</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">SASL error code.</p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="function">
<dt id="c.prop_request">
int <code class="descname">prop_request</code><span class="sig-paren">(</span>struct <a class="reference internal" href="#c.propctx" title="propctx">propctx</a><em>&nbsp;*ctx</em>, const char<em>&nbsp;**names</em><span class="sig-paren">)</span><a class="headerlink" href="#c.prop_request" title="Permalink to this definition">¶</a></dt>
<dd><p>Add properties to the request list of a given context.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>ctx</strong> (<a class="reference internal" href="#c.propctx" title="propctx"><code class="xref c c-type docutils literal"><span class="pre">propctx</span></code></a>) – The property context to add add the request list to.</li>
<li><strong>names</strong> – is the NULL-terminated array of property names,  and must persist until the requests are cleared or the context is disposed of with a call to <a class="reference internal" href="#c.prop_dispose" title="prop_dispose"><code class="xref c c-func docutils literal"><span class="pre">prop_dispose()</span></code></a>.</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">SASL error code</p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="function">
<dt id="c.prop_get">
const struct <a class="reference internal" href="#c.propval" title="propval">propval</a> *<code class="descname">prop_get</code><span class="sig-paren">(</span>struct <a class="reference internal" href="#c.propctx" title="propctx">propctx</a><em>&nbsp;*ctx</em><span class="sig-paren">)</span><a class="headerlink" href="#c.prop_get" title="Permalink to this definition">¶</a></dt>
<dd><p>Fetch out the property values from a context.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>ctx</strong> (<a class="reference internal" href="#c.propctx" title="propctx"><code class="xref c c-type docutils literal"><span class="pre">propctx</span></code></a>) – The property context to fetch from.</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">a NULL-terminated array of property values from the given context.</p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="function">
<dt id="c.prop_getnames">
int <code class="descname">prop_getnames</code><span class="sig-paren">(</span>struct <a class="reference internal" href="#c.propctx" title="propctx">propctx</a><em>&nbsp;*ctx</em>, const char<em>&nbsp;**names</em>, struct <a class="reference internal" href="#c.propval" title="propval">propval</a><em>&nbsp;*vals</em><span class="sig-paren">)</span><a class="headerlink" href="#c.prop_getnames" title="Permalink to this definition">¶</a></dt>
<dd><p>Fill in a (provided) array of property values based
on a list of property names.  This implies that
the <code class="docutils literal"><span class="pre">vals</span></code> array is at least as long as the  <code class="docutils literal"><span class="pre">names</span></code>
array.  The values that are filled in by this call
persist   until   next   call   to   <a class="reference internal" href="#c.prop_request" title="prop_request"><code class="xref c c-func docutils literal"><span class="pre">prop_request()</span></code></a>,
<a class="reference internal" href="#c.prop_clear" title="prop_clear"><code class="xref c c-func docutils literal"><span class="pre">prop_clear()</span></code></a>, or <a class="reference internal" href="#c.prop_dispose" title="prop_dispose"><code class="xref c c-func docutils literal"><span class="pre">prop_dispose()</span></code></a> on context.  If a name
specified here was never requested, then its associated
values entry will be set to NULL.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>ctx</strong> (<a class="reference internal" href="#c.propctx" title="propctx"><code class="xref c c-type docutils literal"><span class="pre">propctx</span></code></a>) – The property context to fill in.</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">number of matching properties that were found, or a SASL error code.</p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="function">
<dt id="c.prop_clear">
void <code class="descname">prop_clear</code><span class="sig-paren">(</span>struct <a class="reference internal" href="#c.propctx" title="propctx">propctx</a><em>&nbsp;*ctx</em>, int<em>&nbsp;requests</em><span class="sig-paren">)</span><a class="headerlink" href="#c.prop_clear" title="Permalink to this definition">¶</a></dt>
<dd><p>Clear values and (optionally) requests from a property context.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>ctx</strong> (<a class="reference internal" href="#c.propctx" title="propctx"><code class="xref c c-type docutils literal"><span class="pre">propctx</span></code></a>) – The property context to clear.</li>
<li><strong>requests</strong> – set to 1 if the requests should be cleared, 0 otherwise.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="function">
<dt id="c.prop_erase">
void <code class="descname">prop_erase</code><span class="sig-paren">(</span>struct <a class="reference internal" href="#c.propctx" title="propctx">propctx</a><em>&nbsp;*ctx</em>, const char<em>&nbsp;*name</em><span class="sig-paren">)</span><a class="headerlink" href="#c.prop_erase" title="Permalink to this definition">¶</a></dt>
<dd><p>Securely erase the value of a property from a context.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>ctx</strong> (<a class="reference internal" href="#c.propctx" title="propctx"><code class="xref c c-type docutils literal"><span class="pre">propctx</span></code></a>) – The property context to find the property in.</li>
<li><strong>name</strong> – is the name of the property to erase.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="function">
<dt id="c.prop_dispose">
void <code class="descname">prop_dispose</code><span class="sig-paren">(</span>struct <a class="reference internal" href="#c.propctx" title="propctx">propctx</a><em>&nbsp;**ctx</em><span class="sig-paren">)</span><a class="headerlink" href="#c.prop_dispose" title="Permalink to this definition">¶</a></dt>
<dd><p>Disposes of a property context and NULLifys the pointer.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>ctx</strong> (<a class="reference internal" href="#c.propctx" title="propctx"><code class="xref c c-type docutils literal"><span class="pre">propctx</span></code></a>) – The property context to clear.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="function">
<dt id="c.prop_format">
int <code class="descname">prop_format</code><span class="sig-paren">(</span>struct <a class="reference internal" href="#c.propctx" title="propctx">propctx</a><em>&nbsp;*ctx</em>, const char<em>&nbsp;*sep</em>, int<em>&nbsp;seplen</em>, char<em>&nbsp;*outbuf</em>, unsigned<em>&nbsp;outmax</em>, unsigned<em>&nbsp;*outlen</em><span class="sig-paren">)</span><a class="headerlink" href="#c.prop_format" title="Permalink to this definition">¶</a></dt>
<dd><p>Format the requested property names into a string.
This not intended for use by the application (<em>only
by auxprop plugins</em>).</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>ctx</strong> (<a class="reference internal" href="#c.propctx" title="propctx"><code class="xref c c-type docutils literal"><span class="pre">propctx</span></code></a>) – The property context to extract values from.</li>
<li><strong>sep</strong> – the separator to use for the string</li>
<li><strong>outbuf</strong> – destination string. Caller must allocate the buffer of length <code class="docutils literal"><span class="pre">outmax</span></code> (including NUL terminator).</li>
<li><strong>outlen</strong> – if non-NULL, will contain the length of the resulting string (excluding NUL terminator).</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">SASL error code.</p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="function">
<dt id="c.prop_set">
int <code class="descname">prop_set</code><span class="sig-paren">(</span>struct <a class="reference internal" href="#c.propctx" title="propctx">propctx</a><em>&nbsp;*ctx</em>, const char<em>&nbsp;*name</em>, const char<em>&nbsp;*value</em>, int<em>&nbsp;vallen</em><span class="sig-paren">)</span><a class="headerlink" href="#c.prop_set" title="Permalink to this definition">¶</a></dt>
<dd><p>Adds a property value to the context.  <em>This is intended for use by auxprop plugins only.</em></p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>ctx</strong> (<a class="reference internal" href="#c.propctx" title="propctx"><code class="xref c c-type docutils literal"><span class="pre">propctx</span></code></a>) – The property context to add a value to.</li>
<li><strong>name</strong> – the name of the property to receive the new value,  or NULL, which implies that the value will be added to the same property as the last call to either <a class="reference internal" href="#c.prop_set" title="prop_set"><code class="xref c c-func docutils literal"><span class="pre">prop_set()</span></code></a> or <a class="reference internal" href="#c.prop_setvals" title="prop_setvals"><code class="xref c c-func docutils literal"><span class="pre">prop_setvals()</span></code></a>.</li>
<li><strong>value</strong> – the new value (of length <cite>vallen</cite>)</li>
<li><strong>vallen</strong> – the length of the string <cite>value</cite>.</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">SASL error code</p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="function">
<dt id="c.prop_setvals">
int <code class="descname">prop_setvals</code><span class="sig-paren">(</span>struct <a class="reference internal" href="#c.propctx" title="propctx">propctx</a><em>&nbsp;*ctx</em>, const char<em>&nbsp;*name</em>, const char<em>&nbsp;**values</em><span class="sig-paren">)</span><a class="headerlink" href="#c.prop_setvals" title="Permalink to this definition">¶</a></dt>
<dd><p>Adds multiple values to a single property.  <em>This is intended for use by auxprop plugins only</em>.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>ctx</strong> (<a class="reference internal" href="#c.propctx" title="propctx"><code class="xref c c-type docutils literal"><span class="pre">propctx</span></code></a>) – The property context to add values to.</li>
<li><strong>name</strong> – The name of the property to receive the new value, or NULL, which implies that the values will be added to the same property as the last call to either <a class="reference internal" href="#c.prop_set" title="prop_set"><code class="xref c c-func docutils literal"><span class="pre">prop_set()</span></code></a> or <a class="reference internal" href="#c.prop_setvals" title="prop_setvals"><code class="xref c c-func docutils literal"><span class="pre">prop_setvals()</span></code></a>.</li>
<li><strong>values</strong> – A NULL-terminated array of values to be added the property.</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">SASL error code</p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

</div>
<div class="section" id="data-structures">
<h2>Data structures<a class="headerlink" href="#data-structures" title="Permalink to this headline">¶</a></h2>
<dl class="type">
<dt id="c.propval">
<code class="descname">propval</code><a class="headerlink" href="#c.propval" title="Permalink to this definition">¶</a></dt>
<dd><p>A struct holding a name and its property values. A name can have zero or more values.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>name</strong> – <code class="docutils literal"><span class="pre">const</span> <span class="pre">char</span> <span class="pre">*</span></code>. Name of this propval. NULL means end of list.</li>
<li><strong>values</strong> – <code class="docutils literal"><span class="pre">const</span> <span class="pre">char</span> <span class="pre">**</span></code>. List of string values. If property not found, values == NULL. If property found with no values, then *values == NULL</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="type">
<dt id="c.propctx">
<code class="descname">propctx</code><a class="headerlink" href="#c.propctx" title="Permalink to this definition">¶</a></dt>
<dd><p>A property context.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>values</strong> (<a class="reference internal" href="#c.propval" title="propval"><code class="xref c c-type docutils literal"><span class="pre">propval</span></code></a> *) – List of property values in this context.</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

</div>
<div class="section" id="return-value">
<h2>Return Value<a class="headerlink" href="#return-value" title="Permalink to this headline">¶</a></h2>
<p>The property functions that return an int return SASL error codes.   See  <a class="reference internal" href="sasl_errors.html#std:saslman-sasl_errors(3)">sasl_errors(3)</a>.   Those that return
pointers will return a valid pointer on success, or NULL on any error.</p>
</div>
<div class="section" id="conforming-to">
<h2>Conforming to<a class="headerlink" href="#conforming-to" title="Permalink to this headline">¶</a></h2>
<p><span class="target" id="index-0"></span><a class="rfc reference external" href="https://tools.ietf.org/html/rfc4422.html"><strong>RFC 4422</strong></a></p>
</div>
<div class="section" id="see-also">
<h2>See Also<a class="headerlink" href="#see-also" title="Permalink to this headline">¶</a></h2>
<p><a class="reference internal" href="sasl.html#std:saslman-sasl(3)">sasl(3)</a>, <a class="reference internal" href="sasl_errors.html#std:saslman-sasl_errors(3)">sasl_errors(3)</a>,
<a class="reference internal" href="sasl_auxprop_request.html#std:saslman-sasl_auxprop_request(3)">sasl_auxprop_request(3)</a>, <a class="reference internal" href="sasl_auxprop_getctx.html#std:saslman-sasl_auxprop_getctx(3)">sasl_auxprop_getctx(3)</a></p>
</div>
</div>


          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="sasl_auxprop_add_plugin.html" class="btn btn-neutral float-right" title="sasl_auxprop_add_plugin - add a SASL auxiliary property plugin" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <a href="sasl_authorize_t.html" class="btn btn-neutral" title="sasl_authorize_t - The SASL authorization callback" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <p>
        &copy; Copyright 1993-2016, The Cyrus Team.
    </p>
  </div>
  Built with <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6 using a modified <a href="https://readthedocs.org">Read the Docs</a> <a href="https://github.com/snide/sphinx_rtd_theme">theme</a>.

</footer>

        </div>
      </div>

    </section>

  </div>
  


  

    <script type="text/javascript">
        var DOCUMENTATION_OPTIONS = {
            URL_ROOT:'../../../../',
            VERSION:'2.1.27',
            COLLAPSE_INDEX:false,
            FILE_SUFFIX:'.html',
            HAS_SOURCE:  true
        };
    </script>
      <script type="text/javascript" src="../../../../_static/jquery.js"></script>
      <script type="text/javascript" src="../../../../_static/underscore.js"></script>
      <script type="text/javascript" src="../../../../_static/doctools.js"></script>
      <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>

  

  
  
    <script type="text/javascript" src="../../../../_static/js/theme.js"></script>
  

  
  
  <script type="text/javascript">
<!--      jQuery(function () {
          SphinxRtdTheme.StickyNav.enable();
      }); -->
  </script>
  
 



</body>
</html>