blob: a6c18ce7f76942c6e6089fce26a3886820200659 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Rampart/C: Utils</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.5 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Utils<br>
<small>
[<a class="el" href="group__rampart__utils.html">Rampart Utilities</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
rampart_credentials_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rampart__util.html#gaa4f99e22951f687b0d6e4031b4d8517">rampart_load_credentials_module</a> (const axutil_env_t *env, axis2_char_t *cred_module_name)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
rampart_credentials_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rampart__util.html#g43fd2ab5ecee27046ab9aa776b998fcc">rampart_call_credentials</a> (const axutil_env_t *env, rampart_credentials_t *cred_module, axis2_msg_ctx_t *ctx, axis2_char_t **username, axis2_char_t **password)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
rampart_authn_provider_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rampart__util.html#g0ec9419d3eefcec4d375fffee7662948">rampart_load_auth_module</a> (const axutil_env_t *env, axis2_char_t *auth_module_name)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
rampart_replay_detector_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rampart__util.html#gc42cf52130dc684f2f923f5509c748c2">rampart_load_replay_detector</a> (const axutil_env_t *env, axis2_char_t *replay_detector_name)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
rampart_sct_provider_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rampart__util.html#g7db4254206a06a951400981f0d730ed6">rampart_load_sct_provider</a> (const axutil_env_t *env, axis2_char_t *sct_provider_name)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN rampart_callback_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rampart__util.html#g099e7dbc797120d13921dad5b727b67c">rampart_load_pwcb_module</a> (const axutil_env_t *env, axis2_char_t *callback_module_name)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
rampart_authn_provider_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rampart__util.html#g8d5769b0fd5f28a030d28944e426e629">rampart_authenticate_un_pw</a> (const axutil_env_t *env, rampart_authn_provider_t *authp, const axis2_char_t *username, const axis2_char_t *password, const axis2_char_t *nonce, const axis2_char_t *created, const axis2_char_t *password_type, axis2_msg_ctx_t *msg_ctx)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rampart__util.html#g1743d0c262347ff97745318b5b795493">rampart_callback_password</a> (const axutil_env_t *env, rampart_callback_t *callback_module, const axis2_char_t *username)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rampart__util.html#g8408c8f2f6de3e90d1cae3c1caf25fa7">rampart_callback_pkcs12_password</a> (const axutil_env_t *env, rampart_callback_t *callback_module, const axis2_char_t *username)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rampart__util.html#g0a6b47a83e55c44634f53effd2367654">rampart_generate_time</a> (const axutil_env_t *env, int ttl, axis2_bool_t with_millisecond)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__rampart__util.html#g6936fe4fd4006583c669c7f2765b3d3a">rampart_compare_date_time</a> (const axutil_env_t *env, axis2_char_t *dt1, axis2_char_t *dt2)</td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g8d5769b0fd5f28a030d28944e426e629"></a><!-- doxytag: member="rampart_util.h::rampart_authenticate_un_pw" ref="g8d5769b0fd5f28a030d28944e426e629" args="(const axutil_env_t *env, rampart_authn_provider_t *authp, const axis2_char_t *username, const axis2_char_t *password, const axis2_char_t *nonce, const axis2_char_t *created, const axis2_char_t *password_type, axis2_msg_ctx_t *msg_ctx)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">AXIS2_EXTERN rampart_authn_provider_status_t rampart_authenticate_un_pw </td>
<td>(</td>
<td class="paramtype">const axutil_env_t *&nbsp;</td>
<td class="paramname"> <em>env</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">rampart_authn_provider_t *&nbsp;</td>
<td class="paramname"> <em>authp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const axis2_char_t *&nbsp;</td>
<td class="paramname"> <em>username</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const axis2_char_t *&nbsp;</td>
<td class="paramname"> <em>password</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const axis2_char_t *&nbsp;</td>
<td class="paramname"> <em>nonce</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const axis2_char_t *&nbsp;</td>
<td class="paramname"> <em>created</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const axis2_char_t *&nbsp;</td>
<td class="paramname"> <em>password_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">axis2_msg_ctx_t *&nbsp;</td>
<td class="paramname"> <em>msg_ctx</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Call auth module <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
<tr><td valign="top"></td><td valign="top"><em>authp</em>&nbsp;</td><td>the authentication module </td></tr>
<tr><td valign="top"></td><td valign="top"><em>username</em>&nbsp;</td><td>the username in the UsernameToken </td></tr>
<tr><td valign="top"></td><td valign="top"><em>password</em>&nbsp;</td><td>the password in the UsernameToken </td></tr>
<tr><td valign="top"></td><td valign="top"><em>nonce</em>&nbsp;</td><td>the nonce in the UsernameToken. Can be NULL if plain text password is used. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>created</em>&nbsp;</td><td>created time in UsernameToken. Can be NULL if plain text password is used. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>password_type</em>&nbsp;</td><td>the type of the password. either plain text of digest </td></tr>
<tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>the message context </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the operation </dd></dl>
</div>
</div><p>
<a class="anchor" name="g43fd2ab5ecee27046ab9aa776b998fcc"></a><!-- doxytag: member="rampart_util.h::rampart_call_credentials" ref="g43fd2ab5ecee27046ab9aa776b998fcc" args="(const axutil_env_t *env, rampart_credentials_t *cred_module, axis2_msg_ctx_t *ctx, axis2_char_t **username, axis2_char_t **password)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">AXIS2_EXTERN rampart_credentials_status_t rampart_call_credentials </td>
<td>(</td>
<td class="paramtype">const axutil_env_t *&nbsp;</td>
<td class="paramname"> <em>env</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">rampart_credentials_t *&nbsp;</td>
<td class="paramname"> <em>cred_module</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">axis2_msg_ctx_t *&nbsp;</td>
<td class="paramname"> <em>ctx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">axis2_char_t **&nbsp;</td>
<td class="paramname"> <em>username</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">axis2_char_t **&nbsp;</td>
<td class="paramname"> <em>password</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Call credentials module User MUST free memory of username and password <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
<tr><td valign="top"></td><td valign="top"><em>cred_module</em>&nbsp;</td><td>the credentails module </td></tr>
<tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>the message context </td></tr>
<tr><td valign="top"></td><td valign="top"><em>username</em>&nbsp;</td><td>reference to the returned username </td></tr>
<tr><td valign="top"></td><td valign="top"><em>password</em>&nbsp;</td><td>reference to the returned password </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the status of the operation </dd></dl>
</div>
</div><p>
<a class="anchor" name="g1743d0c262347ff97745318b5b795493"></a><!-- doxytag: member="rampart_util.h::rampart_callback_password" ref="g1743d0c262347ff97745318b5b795493" args="(const axutil_env_t *env, rampart_callback_t *callback_module, const axis2_char_t *username)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">AXIS2_EXTERN axis2_char_t* rampart_callback_password </td>
<td>(</td>
<td class="paramtype">const axutil_env_t *&nbsp;</td>
<td class="paramname"> <em>env</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">rampart_callback_t *&nbsp;</td>
<td class="paramname"> <em>callback_module</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const axis2_char_t *&nbsp;</td>
<td class="paramname"> <em>username</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the password of given user. the environment callback module structure the name of the user to get the password <dl class="return" compact><dt><b>Returns:</b></dt><dd>the password for the user or NULL if failed </dd></dl>
</div>
</div><p>
<a class="anchor" name="g8408c8f2f6de3e90d1cae3c1caf25fa7"></a><!-- doxytag: member="rampart_util.h::rampart_callback_pkcs12_password" ref="g8408c8f2f6de3e90d1cae3c1caf25fa7" args="(const axutil_env_t *env, rampart_callback_t *callback_module, const axis2_char_t *username)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">AXIS2_EXTERN axis2_char_t* rampart_callback_pkcs12_password </td>
<td>(</td>
<td class="paramtype">const axutil_env_t *&nbsp;</td>
<td class="paramname"> <em>env</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">rampart_callback_t *&nbsp;</td>
<td class="paramname"> <em>callback_module</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const axis2_char_t *&nbsp;</td>
<td class="paramname"> <em>username</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get the password for pkcs12 key store. pointer to environment struct pointer to rampart callback module name of the pkcs12 owner <dl class="return" compact><dt><b>Returns:</b></dt><dd>the password for the user or NULL if username is incorrect </dd></dl>
</div>
</div><p>
<a class="anchor" name="g6936fe4fd4006583c669c7f2765b3d3a"></a><!-- doxytag: member="rampart_util.h::rampart_compare_date_time" ref="g6936fe4fd4006583c669c7f2765b3d3a" args="(const axutil_env_t *env, axis2_char_t *dt1, axis2_char_t *dt2)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">AXIS2_EXTERN axis2_status_t rampart_compare_date_time </td>
<td>(</td>
<td class="paramtype">const axutil_env_t *&nbsp;</td>
<td class="paramname"> <em>env</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">axis2_char_t *&nbsp;</td>
<td class="paramname"> <em>dt1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">axis2_char_t *&nbsp;</td>
<td class="paramname"> <em>dt2</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Check if &lt; . if not returns a false <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
<tr><td valign="top"></td><td valign="top"><em>dt1</em>&nbsp;</td><td>date time 1. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>dt2</em>&nbsp;</td><td>date time 2. </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS if dt1 &lt; dt2. AXIS2_FALSE otherwise </dd></dl>
</div>
</div><p>
<a class="anchor" name="g0a6b47a83e55c44634f53effd2367654"></a><!-- doxytag: member="rampart_util.h::rampart_generate_time" ref="g0a6b47a83e55c44634f53effd2367654" args="(const axutil_env_t *env, int ttl, axis2_bool_t with_millisecond)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">AXIS2_EXTERN axis2_char_t* rampart_generate_time </td>
<td>(</td>
<td class="paramtype">const axutil_env_t *&nbsp;</td>
<td class="paramname"> <em>env</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>ttl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">axis2_bool_t&nbsp;</td>
<td class="paramname"> <em>with_millisecond</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Generates time. User MUST free memory <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>ttl</em>&nbsp;</td><td>Time to live. The time difference between created and expired in mili seconds. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>with_millisecond</em>&nbsp;</td><td>shows whether millisecond precision is needed or not </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>generated time </dd></dl>
</div>
</div><p>
<a class="anchor" name="g0ec9419d3eefcec4d375fffee7662948"></a><!-- doxytag: member="rampart_util.h::rampart_load_auth_module" ref="g0ec9419d3eefcec4d375fffee7662948" args="(const axutil_env_t *env, axis2_char_t *auth_module_name)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">AXIS2_EXTERN rampart_authn_provider_t* rampart_load_auth_module </td>
<td>(</td>
<td class="paramtype">const axutil_env_t *&nbsp;</td>
<td class="paramname"> <em>env</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">axis2_char_t *&nbsp;</td>
<td class="paramname"> <em>auth_module_name</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Load authentication module User MUST free memory <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
<tr><td valign="top"></td><td valign="top"><em>auth_module_name</em>&nbsp;</td><td>name of the authentication module </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>created athenticaiton module </dd></dl>
</div>
</div><p>
<a class="anchor" name="gaa4f99e22951f687b0d6e4031b4d8517"></a><!-- doxytag: member="rampart_util.h::rampart_load_credentials_module" ref="gaa4f99e22951f687b0d6e4031b4d8517" args="(const axutil_env_t *env, axis2_char_t *cred_module_name)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">AXIS2_EXTERN rampart_credentials_t* rampart_load_credentials_module </td>
<td>(</td>
<td class="paramtype">const axutil_env_t *&nbsp;</td>
<td class="paramname"> <em>env</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">axis2_char_t *&nbsp;</td>
<td class="paramname"> <em>cred_module_name</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Load the credentials module User MUST free memory <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
<tr><td valign="top"></td><td valign="top"><em>cred_module_name</em>&nbsp;</td><td>name of the credentails module to be loaded </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the loaded credentails module </dd></dl>
</div>
</div><p>
<a class="anchor" name="g099e7dbc797120d13921dad5b727b67c"></a><!-- doxytag: member="rampart_util.h::rampart_load_pwcb_module" ref="g099e7dbc797120d13921dad5b727b67c" args="(const axutil_env_t *env, axis2_char_t *callback_module_name)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">AXIS2_EXTERN rampart_callback_t* rampart_load_pwcb_module </td>
<td>(</td>
<td class="paramtype">const axutil_env_t *&nbsp;</td>
<td class="paramname"> <em>env</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">axis2_char_t *&nbsp;</td>
<td class="paramname"> <em>callback_module_name</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Load the password callback module User MUST free memory <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct the name of the callback module </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the loaded callback module </dd></dl>
</div>
</div><p>
<a class="anchor" name="gc42cf52130dc684f2f923f5509c748c2"></a><!-- doxytag: member="rampart_util.h::rampart_load_replay_detector" ref="gc42cf52130dc684f2f923f5509c748c2" args="(const axutil_env_t *env, axis2_char_t *replay_detector_name)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">AXIS2_EXTERN rampart_replay_detector_t* rampart_load_replay_detector </td>
<td>(</td>
<td class="paramtype">const axutil_env_t *&nbsp;</td>
<td class="paramname"> <em>env</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">axis2_char_t *&nbsp;</td>
<td class="paramname"> <em>replay_detector_name</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Load replay detection module User MUST free memory <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
<tr><td valign="top"></td><td valign="top"><em>replay_detector_name</em>&nbsp;</td><td>name of the replay detection module </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>created replay detection module </dd></dl>
</div>
</div><p>
<a class="anchor" name="g7db4254206a06a951400981f0d730ed6"></a><!-- doxytag: member="rampart_util.h::rampart_load_sct_provider" ref="g7db4254206a06a951400981f0d730ed6" args="(const axutil_env_t *env, axis2_char_t *sct_provider_name)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">AXIS2_EXTERN rampart_sct_provider_t* rampart_load_sct_provider </td>
<td>(</td>
<td class="paramtype">const axutil_env_t *&nbsp;</td>
<td class="paramname"> <em>env</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">axis2_char_t *&nbsp;</td>
<td class="paramname"> <em>sct_provider_name</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Load security context token provider User MUST free memory <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
<tr><td valign="top"></td><td valign="top"><em>sct_provider_name</em>&nbsp;</td><td>name of the security context token provider </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>created security context token provider module </dd></dl>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Wed May 13 10:52:55 2009 for Rampart/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>