<!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: Asymmetric Context</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>Asymmetric Context<br>
<small>
[<a class="el" href="group__oxs.html">OMXMLSecurity</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gbdc8b746205c1114a121f7fda9baa160"></a><!-- doxytag: member="oxs_asym_ctx::oxs_asym_ctx_t" ref="gbdc8b746205c1114a121f7fda9baa160" args="" -->
typedef struct oxs_asym_ctx_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>oxs_asym_ctx_t</b></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>oxs_asym_ctx_format_t</b> { <b>OXS_ASYM_CTX_FORMAT_UNKNOWN</b> = 0, 
<b>OXS_ASYM_CTX_FORMAT_PEM</b>, 
<b>OXS_ASYM_CTX_FORMAT_PKCS12</b>
 }</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><b>oxs_asym_ctx_operation_t</b> { <b>OXS_ASYM_CTX_OPERATION_PUB_ENCRYPT</b> = 0, 
<b>OXS_ASYM_CTX_OPERATION_PRV_DECRYPT</b>, 
<b>OXS_ASYM_CTX_OPERATION_PUB_DECRYPT</b>, 
<b>OXS_ASYM_CTX_OPERATION_PRV_ENCRYPT</b>
 }</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb92d922d56bed71f11c9118f53fdcc83"></a><!-- doxytag: member="oxs_asym_ctx::oxs_asym_ctx_create" ref="gb92d922d56bed71f11c9118f53fdcc83" args="(const axutil_env_t *env)" -->
AXIS2_EXTERN oxs_asym_ctx_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>oxs_asym_ctx_create</b> (const axutil_env_t *env)</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__oxs__asym__ctx.html#g703814950ee19fd7c369abbdb5aaa6f5">oxs_asym_ctx_free</a> (oxs_asym_ctx_t *ctx, const axutil_env_t *env)</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__oxs__asym__ctx.html#ga2a91c6dc475ca7317225bacfe911b26">oxs_asym_ctx_get_algorithm</a> (const oxs_asym_ctx_t *ctx, const axutil_env_t *env)</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__oxs__asym__ctx.html#g2a2d9584457b97d301510d7ca0ee2cf3">oxs_asym_ctx_get_st_ref_pattern</a> (const oxs_asym_ctx_t *ctx, const axutil_env_t *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <br>
oxs_asym_ctx_operation_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oxs__asym__ctx.html#gab0fa68e130e8f3e71c4d0da061e78f1">oxs_asym_ctx_get_operation</a> (const oxs_asym_ctx_t *ctx, const axutil_env_t *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <a class="el" href="group__openssl__pkey.html#g68d443d31f0dbbf2815f8c3330c60c8d">openssl_pkey_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oxs__asym__ctx.html#ged4fefe630875bf8e82b551c0ef4b7fa">oxs_asym_ctx_get_private_key</a> (const oxs_asym_ctx_t *ctx, const axutil_env_t *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN oxs_x509_cert_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oxs__asym__ctx.html#g7db08338c7167945ade61a9dbe2a0428">oxs_asym_ctx_get_certificate</a> (const oxs_asym_ctx_t *ctx, const axutil_env_t *env)</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__oxs__asym__ctx.html#g4e79554d32ea496562502d070a1f9996">oxs_asym_ctx_set_algorithm</a> (oxs_asym_ctx_t *ctx, const axutil_env_t *env, axis2_char_t *algorithm)</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__oxs__asym__ctx.html#g62000beb6335149909d0b79576a1e038">oxs_asym_ctx_set_st_ref_pattern</a> (oxs_asym_ctx_t *ctx, const axutil_env_t *env, axis2_char_t *st_ref_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__oxs__asym__ctx.html#gf08ffc2e25f336eeb84070aaaf98009a">oxs_asym_ctx_set_operation</a> (oxs_asym_ctx_t *ctx, const axutil_env_t *env, oxs_asym_ctx_operation_t operation)</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__oxs__asym__ctx.html#g049adac8c282a3cb3f6cf4f331803cf0">oxs_asym_ctx_set_certificate</a> (oxs_asym_ctx_t *ctx, const axutil_env_t *env, oxs_x509_cert_t *certificate)</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__oxs__asym__ctx.html#g677a1003582eb2b92585ad2905ef97b5">oxs_asym_ctx_set_private_key</a> (oxs_asym_ctx_t *asym_ctx, const axutil_env_t *env, <a class="el" href="group__openssl__pkey.html#g68d443d31f0dbbf2815f8c3330c60c8d">openssl_pkey_t</a> *private_key)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g703814950ee19fd7c369abbdb5aaa6f5"></a><!-- doxytag: member="oxs_asym_ctx.h::oxs_asym_ctx_free" ref="g703814950ee19fd7c369abbdb5aaa6f5" args="(oxs_asym_ctx_t *ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t oxs_asym_ctx_free           </td>
          <td>(</td>
          <td class="paramtype">oxs_asym_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_env_t *&nbsp;</td>
          <td class="paramname"> <em>env</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>
Free function for the asymmetric context struct  pointer to the OMXMLSec asymmetric context struct  pointer to environment struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ga2a91c6dc475ca7317225bacfe911b26"></a><!-- doxytag: member="oxs_asym_ctx.h::oxs_asym_ctx_get_algorithm" ref="ga2a91c6dc475ca7317225bacfe911b26" args="(const oxs_asym_ctx_t *ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* oxs_asym_ctx_get_algorithm           </td>
          <td>(</td>
          <td class="paramtype">const oxs_asym_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_env_t *&nbsp;</td>
          <td class="paramname"> <em>env</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 algorithm used to encrypt  pointer to the OMXMLSec asymmetric context struct  pointer to environment struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7db08338c7167945ade61a9dbe2a0428"></a><!-- doxytag: member="oxs_asym_ctx.h::oxs_asym_ctx_get_certificate" ref="g7db08338c7167945ade61a9dbe2a0428" args="(const oxs_asym_ctx_t *ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN oxs_x509_cert_t* oxs_asym_ctx_get_certificate           </td>
          <td>(</td>
          <td class="paramtype">const oxs_asym_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_env_t *&nbsp;</td>
          <td class="paramname"> <em>env</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 x509 crtificate used.  pointer to the OMXMLSec asymmetric context struct  pointer to environment struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gab0fa68e130e8f3e71c4d0da061e78f1"></a><!-- doxytag: member="oxs_asym_ctx.h::oxs_asym_ctx_get_operation" ref="gab0fa68e130e8f3e71c4d0da061e78f1" args="(const oxs_asym_ctx_t *ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN oxs_asym_ctx_operation_t oxs_asym_ctx_get_operation           </td>
          <td>(</td>
          <td class="paramtype">const oxs_asym_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_env_t *&nbsp;</td>
          <td class="paramname"> <em>env</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 operation. For ex: Public Key encrypt, Private Key Decrypt  pointer to the OMXMLSec asymmetric context struct  pointer to environment struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="ged4fefe630875bf8e82b551c0ef4b7fa"></a><!-- doxytag: member="oxs_asym_ctx.h::oxs_asym_ctx_get_private_key" ref="ged4fefe630875bf8e82b551c0ef4b7fa" args="(const oxs_asym_ctx_t *ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN <a class="el" href="group__openssl__pkey.html#g68d443d31f0dbbf2815f8c3330c60c8d">openssl_pkey_t</a>* oxs_asym_ctx_get_private_key           </td>
          <td>(</td>
          <td class="paramtype">const oxs_asym_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_env_t *&nbsp;</td>
          <td class="paramname"> <em>env</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 private key used  pointer to the OMXMLSec asymmetric context struct  pointer to environment struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2a2d9584457b97d301510d7ca0ee2cf3"></a><!-- doxytag: member="oxs_asym_ctx.h::oxs_asym_ctx_get_st_ref_pattern" ref="g2a2d9584457b97d301510d7ca0ee2cf3" args="(const oxs_asym_ctx_t *ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_char_t* oxs_asym_ctx_get_st_ref_pattern           </td>
          <td>(</td>
          <td class="paramtype">const oxs_asym_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axutil_env_t *&nbsp;</td>
          <td class="paramname"> <em>env</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 SecurityTokenReference pattern. For ex: IssuerSerial  pointer to the OMXMLSec asymmetric context struct  pointer to environment struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4e79554d32ea496562502d070a1f9996"></a><!-- doxytag: member="oxs_asym_ctx.h::oxs_asym_ctx_set_algorithm" ref="g4e79554d32ea496562502d070a1f9996" args="(oxs_asym_ctx_t *ctx, const axutil_env_t *env, axis2_char_t *algorithm)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t oxs_asym_ctx_set_algorithm           </td>
          <td>(</td>
          <td class="paramtype">oxs_asym_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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>algorithm</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>
Sets the algorithm used to encrypt  pointer to the OMXMLSec asymmetric context struct  pointer to environment struct  used to encrypt <dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g049adac8c282a3cb3f6cf4f331803cf0"></a><!-- doxytag: member="oxs_asym_ctx.h::oxs_asym_ctx_set_certificate" ref="g049adac8c282a3cb3f6cf4f331803cf0" args="(oxs_asym_ctx_t *ctx, const axutil_env_t *env, oxs_x509_cert_t *certificate)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t oxs_asym_ctx_set_certificate           </td>
          <td>(</td>
          <td class="paramtype">oxs_asym_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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">oxs_x509_cert_t *&nbsp;</td>
          <td class="paramname"> <em>certificate</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>
Sets the x509 crtificate used.  pointer to the OMXMLSec asymmetric context struct  pointer to environment struct  the x509 crtificate used. <dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf08ffc2e25f336eeb84070aaaf98009a"></a><!-- doxytag: member="oxs_asym_ctx.h::oxs_asym_ctx_set_operation" ref="gf08ffc2e25f336eeb84070aaaf98009a" args="(oxs_asym_ctx_t *ctx, const axutil_env_t *env, oxs_asym_ctx_operation_t operation)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t oxs_asym_ctx_set_operation           </td>
          <td>(</td>
          <td class="paramtype">oxs_asym_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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">oxs_asym_ctx_operation_t&nbsp;</td>
          <td class="paramname"> <em>operation</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>
Sets the operation. For ex: Public Key encrypt, Private Key Decrypt  pointer to the OMXMLSec asymmetric context struct  pointer to environment struct  the operation. For ex: Public Key encrypt, Private Key Decrypt <dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g677a1003582eb2b92585ad2905ef97b5"></a><!-- doxytag: member="oxs_asym_ctx.h::oxs_asym_ctx_set_private_key" ref="g677a1003582eb2b92585ad2905ef97b5" args="(oxs_asym_ctx_t *asym_ctx, const axutil_env_t *env, openssl_pkey_t *private_key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t oxs_asym_ctx_set_private_key           </td>
          <td>(</td>
          <td class="paramtype">oxs_asym_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>asym_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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"><a class="el" href="group__openssl__pkey.html#g68d443d31f0dbbf2815f8c3330c60c8d">openssl_pkey_t</a> *&nbsp;</td>
          <td class="paramname"> <em>private_key</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>
Sets private key used  pointer to the OMXMLSec asymmetric context struct  pointer to environment struct  private key used <dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g62000beb6335149909d0b79576a1e038"></a><!-- doxytag: member="oxs_asym_ctx.h::oxs_asym_ctx_set_st_ref_pattern" ref="g62000beb6335149909d0b79576a1e038" args="(oxs_asym_ctx_t *ctx, const axutil_env_t *env, axis2_char_t *st_ref_pattern)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t oxs_asym_ctx_set_st_ref_pattern           </td>
          <td>(</td>
          <td class="paramtype">oxs_asym_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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>st_ref_pattern</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>
Set the SecurityTokenReference pattern. For ex: IssuerSerial  pointer to the OMXMLSec asymmetric context struct  pointer to environment struct  SecurityTokenReference pattern. For ex: IssuerSerial <dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><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>
