<!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: Processor</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>Processor<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 axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Token.html#gb931262e24015783836ed4ede0443890">rampart_token_process_security_token_reference</a> (const axutil_env_t *env, axiom_node_t *st_ref_node, axiom_node_t *scope_node, 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__Token.html#gad7b4fde6c095ae0917de477ce75fd18">rampart_token_process_direct_ref</a> (const axutil_env_t *env, axiom_node_t *ref_node, axiom_node_t *scope_node, 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__Token.html#g813ac263fdafd9cb9a9ee711c684921e">rampart_token_process_embedded</a> (const axutil_env_t *env, axiom_node_t *embed_node, 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__Token.html#g23f3a34fd460aca7c81d8363d2d6b602">rampart_token_process_key_identifier</a> (const axutil_env_t *env, axiom_node_t *ki_node, 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__Token.html#g6763b55822d91ad6f29cc3619d9e1711">rampart_token_process_x509_data</a> (const axutil_env_t *env, axiom_node_t *x509_data_node, oxs_x509_cert_t *cert)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gad7b4fde6c095ae0917de477ce75fd18"></a><!-- doxytag: member="rampart_token_processor.h::rampart_token_process_direct_ref" ref="gad7b4fde6c095ae0917de477ce75fd18" args="(const axutil_env_t *env, axiom_node_t *ref_node, axiom_node_t *scope_node, oxs_x509_cert_t *cert)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t rampart_token_process_direct_ref           </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">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>ref_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>scope_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">oxs_x509_cert_t *&nbsp;</td>
          <td class="paramname"> <em>cert</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>
extract certificate using reference id given in reference node <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>Environment structure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ref_node</em>&nbsp;</td><td>security token reference node. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>scope_node</em>&nbsp;</td><td>node where certificate details should be found using reference id </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cert</em>&nbsp;</td><td>certificate where values extracted shuold be populated </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="g813ac263fdafd9cb9a9ee711c684921e"></a><!-- doxytag: member="rampart_token_processor.h::rampart_token_process_embedded" ref="g813ac263fdafd9cb9a9ee711c684921e" args="(const axutil_env_t *env, axiom_node_t *embed_node, oxs_x509_cert_t *cert)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t rampart_token_process_embedded           </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">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>embed_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">oxs_x509_cert_t *&nbsp;</td>
          <td class="paramname"> <em>cert</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>
extract embedded certificate from given embed_node <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>Environment structure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>embed_node</em>&nbsp;</td><td>node where certificate is embedded. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cert</em>&nbsp;</td><td>certificate where values extracted shuold be populated </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="g23f3a34fd460aca7c81d8363d2d6b602"></a><!-- doxytag: member="rampart_token_processor.h::rampart_token_process_key_identifier" ref="g23f3a34fd460aca7c81d8363d2d6b602" args="(const axutil_env_t *env, axiom_node_t *ki_node, oxs_x509_cert_t *cert)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t rampart_token_process_key_identifier           </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">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>ki_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">oxs_x509_cert_t *&nbsp;</td>
          <td class="paramname"> <em>cert</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>
extract key identifier and populate the certificate <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>Environment structure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ki_node</em>&nbsp;</td><td>node where key identifier is available. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cert</em>&nbsp;</td><td>certificate where values extracted shuold be populated </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="gb931262e24015783836ed4ede0443890"></a><!-- doxytag: member="rampart_token_processor.h::rampart_token_process_security_token_reference" ref="gb931262e24015783836ed4ede0443890" args="(const axutil_env_t *env, axiom_node_t *st_ref_node, axiom_node_t *scope_node, oxs_x509_cert_t *cert)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t rampart_token_process_security_token_reference           </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">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>st_ref_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>scope_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">oxs_x509_cert_t *&nbsp;</td>
          <td class="paramname"> <em>cert</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>
extract certificate related information using given token_reference node and scope node <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>Environment structure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>st_ref_node</em>&nbsp;</td><td>security token reference node. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>scope_node</em>&nbsp;</td><td>node where additional details should be found. Can be NULL for all other scenarios but the Direct Reference </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cert</em>&nbsp;</td><td>certificate where values extracted shuold be populated </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="g6763b55822d91ad6f29cc3619d9e1711"></a><!-- doxytag: member="rampart_token_processor.h::rampart_token_process_x509_data" ref="g6763b55822d91ad6f29cc3619d9e1711" args="(const axutil_env_t *env, axiom_node_t *x509_data_node, oxs_x509_cert_t *cert)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t rampart_token_process_x509_data           </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">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>x509_data_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">oxs_x509_cert_t *&nbsp;</td>
          <td class="paramname"> <em>cert</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>
extract key details from x509data node <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>Environment structure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>x509_data_node</em>&nbsp;</td><td>x509data node. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cert</em>&nbsp;</td><td>certificate where values extracted shuold be populated </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>status of the operation </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>
