<!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: Signature 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>Signature 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="g871b7abfff8424124ec830e9eda6a770"></a><!-- doxytag: member="oxs_sign_ctx::oxs_sign_ctx_t" ref="g871b7abfff8424124ec830e9eda6a770" args="" -->
typedef struct oxs_sign_ctx_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>oxs_sign_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_sign_operation_t</b> { <b>OXS_SIGN_OPERATION_NONE</b> =  0, 
<b>OXS_SIGN_OPERATION_SIGN</b>, 
<b>OXS_SIGN_OPERATION_VERIFY</b>
 }</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN oxs_sign_ctx_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oxs__sign__ctx.html#g8ed285bbbd1ac373f273500f382105c4">oxs_sign_ctx_create</a> (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__sign__ctx.html#ge2105010f159854c2e1b787188992fc7">oxs_sign_ctx_free</a> (oxs_sign_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__sign__ctx.html#gf1efd9a43cd0722af552b0ae9e06aaa4">oxs_sign_ctx_get_sign_mtd_algo</a> (const oxs_sign_ctx_t *sign_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__sign__ctx.html#gfd3f0e447b0c4a65dea46690d58ec4b0">oxs_sign_ctx_get_c14n_mtd</a> (const oxs_sign_ctx_t *sign_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__sign__ctx.html#ge7e80fc53657171e16f25c8a8fcb9d58">oxs_sign_ctx_get_sig_val</a> (const oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN axutil_array_list_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oxs__sign__ctx.html#g81252fb66dd6b60a623adc2d89e35c8d">oxs_sign_ctx_get_sign_parts</a> (const oxs_sign_ctx_t *sign_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__sign__ctx.html#gf56f16d45c8917ad630e0a427fe15154">oxs_sign_ctx_get_certificate</a> (const oxs_sign_ctx_t *sign_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__sign__ctx.html#g026e0d8c484a27d5169c4d987899b453">oxs_sign_ctx_get_private_key</a> (const oxs_sign_ctx_t *sign_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__sign__ctx.html#gc6c23e1bff018bbcba020a65ddfc0a59">oxs_sign_ctx_get_public_key</a> (const oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <a class="el" href="group__oxs__key.html#g6336c79b9592fb630903079b14a99206">oxs_key_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oxs__sign__ctx.html#gacb9c0dd43aabdabe90d66c7e5e4fd8e">oxs_sign_ctx_get_secret</a> (const oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN oxs_sign_operation_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__oxs__sign__ctx.html#gef7e150392558b6fe9631147eb93df51">oxs_sign_ctx_get_operation</a> (const oxs_sign_ctx_t *sign_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__sign__ctx.html#g7220100c2e5419bf90a2ee94b3fbc9e6">oxs_sign_ctx_set_sign_mtd_algo</a> (oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env, axis2_char_t *sign_mtd_algo)</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__sign__ctx.html#g35c4dcd9ff76e32dbfc4c953ef8399b9">oxs_sign_ctx_set_c14n_mtd</a> (oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env, axis2_char_t *c14n_mtd)</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__sign__ctx.html#gb8a21c64393b79acdc9ddd6dc34b403c">oxs_sign_ctx_set_sig_val</a> (oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env, axis2_char_t *sig_val)</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__sign__ctx.html#g09644f321b7d7d5fc2bc88d526511d7e">oxs_sign_ctx_set_sign_parts</a> (oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env, axutil_array_list_t *sign_parts)</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__sign__ctx.html#g99337f5afc82a92fb1bc5de6d0fa693a">oxs_sign_ctx_set_certificate</a> (oxs_sign_ctx_t *sign_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__sign__ctx.html#gfb450817ba3ac7cc62ead4e1d64cb7f1">oxs_sign_ctx_set_private_key</a> (oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env, <a class="el" href="group__openssl__pkey.html#g68d443d31f0dbbf2815f8c3330c60c8d">openssl_pkey_t</a> *prv_key)</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__sign__ctx.html#gcd7e4d1aae6cd324df0e23620d32e605">oxs_sign_ctx_set_public_key</a> (oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env, <a class="el" href="group__openssl__pkey.html#g68d443d31f0dbbf2815f8c3330c60c8d">openssl_pkey_t</a> *pub_key)</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__sign__ctx.html#gcff40a0a96c410b7d6c9c1d997a7d2f8">oxs_sign_ctx_set_secret</a> (oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env, <a class="el" href="group__oxs__key.html#g6336c79b9592fb630903079b14a99206">oxs_key_t</a> *secret)</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__sign__ctx.html#g16131730596b94bf0c478d80459abba3">oxs_sign_ctx_set_operation</a> (oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env, oxs_sign_operation_t operation)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g8ed285bbbd1ac373f273500f382105c4"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_create" ref="g8ed285bbbd1ac373f273500f382105c4" args="(const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN oxs_sign_ctx_t* oxs_sign_ctx_create           </td>
          <td>(</td>
          <td class="paramtype">const axutil_env_t *&nbsp;</td>
          <td class="paramname"> <em>env</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a signature context  the environemnt struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>created signature context </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge2105010f159854c2e1b787188992fc7"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_free" ref="ge2105010f159854c2e1b787188992fc7" args="(oxs_sign_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_sign_ctx_free           </td>
          <td>(</td>
          <td class="paramtype">oxs_sign_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 a signature context.  signature context  the environemnt struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>AXIS2_SUCCESS on success or AXIS2_FAILURE on failure </dd></dl>

</div>
</div><p>
<a class="anchor" name="gfd3f0e447b0c4a65dea46690d58ec4b0"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_get_c14n_mtd" ref="gfd3f0e447b0c4a65dea46690d58ec4b0" args="(const oxs_sign_ctx_t *sign_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_sign_ctx_get_c14n_mtd           </td>
          <td>(</td>
          <td class="paramtype">const oxs_sign_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>sign_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 cannocanicalization method of the signature context  the signature context  the environemnt struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>cannocanicalization method </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf56f16d45c8917ad630e0a427fe15154"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_get_certificate" ref="gf56f16d45c8917ad630e0a427fe15154" args="(const oxs_sign_ctx_t *sign_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_sign_ctx_get_certificate           </td>
          <td>(</td>
          <td class="paramtype">const oxs_sign_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>sign_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 x509 certificate of the signature context  the signature context  the environemnt struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>x509 certificate </dd></dl>

</div>
</div><p>
<a class="anchor" name="gef7e150392558b6fe9631147eb93df51"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_get_operation" ref="gef7e150392558b6fe9631147eb93df51" args="(const oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN oxs_sign_operation_t oxs_sign_ctx_get_operation           </td>
          <td>(</td>
          <td class="paramtype">const oxs_sign_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>sign_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 of the signature context  the signature context  the environemnt struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>operation SIGN/VERIFY/NONE </dd></dl>

</div>
</div><p>
<a class="anchor" name="g026e0d8c484a27d5169c4d987899b453"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_get_private_key" ref="g026e0d8c484a27d5169c4d987899b453" args="(const oxs_sign_ctx_t *sign_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_sign_ctx_get_private_key           </td>
          <td>(</td>
          <td class="paramtype">const oxs_sign_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>sign_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 private key of the signature context  the signature context  the environemnt struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>private key </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc6c23e1bff018bbcba020a65ddfc0a59"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_get_public_key" ref="gc6c23e1bff018bbcba020a65ddfc0a59" args="(const oxs_sign_ctx_t *sign_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_sign_ctx_get_public_key           </td>
          <td>(</td>
          <td class="paramtype">const oxs_sign_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>sign_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 public key of the signature context  the signature context  the environemnt struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>public key </dd></dl>

</div>
</div><p>
<a class="anchor" name="gacb9c0dd43aabdabe90d66c7e5e4fd8e"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_get_secret" ref="gacb9c0dd43aabdabe90d66c7e5e4fd8e" args="(const oxs_sign_ctx_t *sign_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__oxs__key.html#g6336c79b9592fb630903079b14a99206">oxs_key_t</a>* oxs_sign_ctx_get_secret           </td>
          <td>(</td>
          <td class="paramtype">const oxs_sign_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>sign_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 shared secret of the signature context  the signature context  the environemnt struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>the shared secret </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge7e80fc53657171e16f25c8a8fcb9d58"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_get_sig_val" ref="ge7e80fc53657171e16f25c8a8fcb9d58" args="(const oxs_sign_ctx_t *sign_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_sign_ctx_get_sig_val           </td>
          <td>(</td>
          <td class="paramtype">const oxs_sign_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>sign_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 sginature valueof the signature context  the signature context  the environemnt struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>signature value </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf1efd9a43cd0722af552b0ae9e06aaa4"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_get_sign_mtd_algo" ref="gf1efd9a43cd0722af552b0ae9e06aaa4" args="(const oxs_sign_ctx_t *sign_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_sign_ctx_get_sign_mtd_algo           </td>
          <td>(</td>
          <td class="paramtype">const oxs_sign_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>sign_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 signature algorithm of the signature context  the signature context  the environemnt struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>signature algorithm </dd></dl>

</div>
</div><p>
<a class="anchor" name="g81252fb66dd6b60a623adc2d89e35c8d"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_get_sign_parts" ref="g81252fb66dd6b60a623adc2d89e35c8d" args="(const oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axutil_array_list_t* oxs_sign_ctx_get_sign_parts           </td>
          <td>(</td>
          <td class="paramtype">const oxs_sign_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>sign_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 signature parts of the signature context  the signature context  the environemnt struct <dl class="return" compact><dt><b>Returns:</b></dt><dd>sgnature parts as a list </dd></dl>

</div>
</div><p>
<a class="anchor" name="g35c4dcd9ff76e32dbfc4c953ef8399b9"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_set_c14n_mtd" ref="g35c4dcd9ff76e32dbfc4c953ef8399b9" args="(oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env, axis2_char_t *c14n_mtd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t oxs_sign_ctx_set_c14n_mtd           </td>
          <td>(</td>
          <td class="paramtype">oxs_sign_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>sign_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>c14n_mtd</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 Cannocanicalization method of the signature context   the signature context  the environemnt struct  Cannocanicalization method <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="g99337f5afc82a92fb1bc5de6d0fa693a"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_set_certificate" ref="g99337f5afc82a92fb1bc5de6d0fa693a" args="(oxs_sign_ctx_t *sign_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_sign_ctx_set_certificate           </td>
          <td>(</td>
          <td class="paramtype">oxs_sign_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>sign_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>
Set the x509 certificate of the signature context   the signature context  the environemnt struct  the x509 certificate <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="g16131730596b94bf0c478d80459abba3"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_set_operation" ref="g16131730596b94bf0c478d80459abba3" args="(oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env, oxs_sign_operation_t operation)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t oxs_sign_ctx_set_operation           </td>
          <td>(</td>
          <td class="paramtype">oxs_sign_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>sign_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_sign_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>
Set the operation of the signature context   the signature context  the environemnt struct  the operation <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="gfb450817ba3ac7cc62ead4e1d64cb7f1"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_set_private_key" ref="gfb450817ba3ac7cc62ead4e1d64cb7f1" args="(oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env, openssl_pkey_t *prv_key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t oxs_sign_ctx_set_private_key           </td>
          <td>(</td>
          <td class="paramtype">oxs_sign_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>sign_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>prv_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>
Set private key of the signature context   the signature context  the environemnt struct  private key <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="gcd7e4d1aae6cd324df0e23620d32e605"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_set_public_key" ref="gcd7e4d1aae6cd324df0e23620d32e605" args="(oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env, openssl_pkey_t *pub_key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t oxs_sign_ctx_set_public_key           </td>
          <td>(</td>
          <td class="paramtype">oxs_sign_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>sign_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>pub_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>
Set the public key of the signature context   the signature context  the environemnt struct  the public key <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="gcff40a0a96c410b7d6c9c1d997a7d2f8"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_set_secret" ref="gcff40a0a96c410b7d6c9c1d997a7d2f8" args="(oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env, oxs_key_t *secret)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t oxs_sign_ctx_set_secret           </td>
          <td>(</td>
          <td class="paramtype">oxs_sign_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>sign_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__oxs__key.html#g6336c79b9592fb630903079b14a99206">oxs_key_t</a> *&nbsp;</td>
          <td class="paramname"> <em>secret</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 shared secret of the signature context   the signature context  the environemnt struct  the shared secret <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="gb8a21c64393b79acdc9ddd6dc34b403c"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_set_sig_val" ref="gb8a21c64393b79acdc9ddd6dc34b403c" args="(oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env, axis2_char_t *sig_val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t oxs_sign_ctx_set_sig_val           </td>
          <td>(</td>
          <td class="paramtype">oxs_sign_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>sign_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>sig_val</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 signature value of the signature context   the signature context  the environemnt struct  signature value <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="g7220100c2e5419bf90a2ee94b3fbc9e6"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_set_sign_mtd_algo" ref="g7220100c2e5419bf90a2ee94b3fbc9e6" args="(oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env, axis2_char_t *sign_mtd_algo)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t oxs_sign_ctx_set_sign_mtd_algo           </td>
          <td>(</td>
          <td class="paramtype">oxs_sign_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>sign_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>sign_mtd_algo</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 Signature algorithm of the signature context   the signature context  the environemnt struct  Signature algorithm <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="g09644f321b7d7d5fc2bc88d526511d7e"></a><!-- doxytag: member="oxs_sign_ctx.h::oxs_sign_ctx_set_sign_parts" ref="g09644f321b7d7d5fc2bc88d526511d7e" args="(oxs_sign_ctx_t *sign_ctx, const axutil_env_t *env, axutil_array_list_t *sign_parts)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t oxs_sign_ctx_set_sign_parts           </td>
          <td>(</td>
          <td class="paramtype">oxs_sign_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>sign_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">axutil_array_list_t *&nbsp;</td>
          <td class="paramname"> <em>sign_parts</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 signature parts of the signature context   the signature context  the environemnt struct  signature parts <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>
