<!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: rampart_token_builder.h File Reference</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 class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="dir_2ab6243317ac98a7842daf660931c511.html">include</a>
  </div>
</div>
<div class="contents">
<h1>rampart_token_builder.h File Reference</h1>Reference Token builfing/of rampart. <a href="#_details">More...</a>
<p>
<code>#include &lt;axutil_utils_defines.h&gt;</code><br>
<code>#include &lt;axis2_defines.h&gt;</code><br>
<code>#include &lt;axutil_env.h&gt;</code><br>
<code>#include &lt;<a class="el" href="oxs__x509__cert_8h-source.html">oxs_x509_cert.h</a>&gt;</code><br>

<p>
<a href="rampart__token__builder_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><b>rampart_token_build_pattern_t</b> { <br>
&nbsp;&nbsp;<b>RTBP_UNKNOWN</b> =  0, 
<b>RTBP_EMBEDDED</b>, 
<b>RTBP_KEY_IDENTIFIER</b>, 
<b>RTBP_X509DATA_ISSUER_SERIAL</b>, 
<br>
&nbsp;&nbsp;<b>RTBP_X509DATA_X509CERTIFICATE</b>, 
<b>RTBP_THUMBPRINT</b>
<br>
 }</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></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__token__builder.html#g60941463f174c35358bcb81191607563">rampart_token_build_security_token_reference</a> (const axutil_env_t *env, axiom_node_t *parent, oxs_x509_cert_t *cert, rampart_token_build_pattern_t pattern)</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__token__builder.html#g04c965428d250837adeee2aad753b3a2">rampart_token_build_embedded</a> (const axutil_env_t *env, axiom_node_t *parent, oxs_x509_cert_t *cert)</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__token__builder.html#ge8757ff39c378ee13eed61053e92b681">rampart_token_build_key_identifier</a> (const axutil_env_t *env, axiom_node_t *parent, oxs_x509_cert_t *cert)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gdd35a3cb18abdd5a85f84855f104f754"></a><!-- doxytag: member="rampart_token_builder.h::rampart_token_build_x509_data_x509_certificate" ref="gdd35a3cb18abdd5a85f84855f104f754" args="(const axutil_env_t *env, axiom_node_t *parent, oxs_x509_cert_t *cert)" -->
AXIS2_EXTERN axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>rampart_token_build_x509_data_x509_certificate</b> (const axutil_env_t *env, axiom_node_t *parent, oxs_x509_cert_t *cert)</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__token__builder.html#g90fb9327c8681e0d8466076cfe689f82">rampart_token_build_x509_data_issuer_serial</a> (const axutil_env_t *env, axiom_node_t *parent, oxs_x509_cert_t *cert)</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__token__builder.html#g60daf64fc01b894672f0f689141573d0">rampart_token_build_thumbprint_reference</a> (const axutil_env_t *env, axiom_node_t *parent, oxs_x509_cert_t *cert)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Reference Token builfing/of rampart. 
<p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Wed May 13 10:52:54 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>
