<!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: Encryption</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>Encryption<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__rampart__encryption.html#gf631fdca0a8c2dc060f4a1df1e1c51ff">rampart_enc_encrypt_message</a> (const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx, rampart_context_t *rampart_context, axiom_soap_envelope_t *soap_envelope, axiom_node_t *sec_node)</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__encryption.html#g50b9b22a6482a3789616932687b2ced9">rampart_enc_dk_encrypt_message</a> (const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx, rampart_context_t *rampart_context, axiom_soap_envelope_t *soap_envelope, axiom_node_t *sec_node)</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__encryption.html#ge9d43e6eed3127f84596f6923b83f6c8">rampart_enc_add_key_info</a> (const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx, rampart_context_t *rampart_context, axiom_soap_envelope_t *soap_envelope, axiom_node_t *sec_node)</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__encryption.html#g7b9ee59c3d3a16b00d293ff466722271">rampart_enc_encrypt_signature</a> (const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx, rampart_context_t *rampart_context, axiom_soap_envelope_t *soap_envelope, axiom_node_t *sec_node)</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__encryption.html#g7b1a8146af13a98d2471236a9db9763d">rampart_enc_encrypt_session_key</a> (const axutil_env_t *env, <a class="el" href="group__oxs__key.html#g6336c79b9592fb630903079b14a99206">oxs_key_t</a> *session_key, axis2_msg_ctx_t *msg_ctx, rampart_context_t *rampart_context, axiom_node_t *sec_node, axutil_array_list_t *id_list)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="ge9d43e6eed3127f84596f6923b83f6c8"></a><!-- doxytag: member="rampart_encryption.h::rampart_enc_add_key_info" ref="ge9d43e6eed3127f84596f6923b83f6c8" args="(const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx, rampart_context_t *rampart_context, axiom_soap_envelope_t *soap_envelope, axiom_node_t *sec_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t rampart_enc_add_key_info           </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_msg_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">rampart_context_t *&nbsp;</td>
          <td class="paramname"> <em>rampart_context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_soap_envelope_t *&nbsp;</td>
          <td class="paramname"> <em>soap_envelope</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>sec_node</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>
<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>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_envelope</em>&nbsp;</td><td>the SOAP envelope </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sec_node</em>&nbsp;</td><td>The security element </td></tr>
  </table>
</dl>
<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="g50b9b22a6482a3789616932687b2ced9"></a><!-- doxytag: member="rampart_encryption.h::rampart_enc_dk_encrypt_message" ref="g50b9b22a6482a3789616932687b2ced9" args="(const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx, rampart_context_t *rampart_context, axiom_soap_envelope_t *soap_envelope, axiom_node_t *sec_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t rampart_enc_dk_encrypt_message           </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_msg_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">rampart_context_t *&nbsp;</td>
          <td class="paramname"> <em>rampart_context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_soap_envelope_t *&nbsp;</td>
          <td class="paramname"> <em>soap_envelope</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>sec_node</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>
Encrypt the message using derived keys. Uses symmetric encryption <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>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rampart_context</em>&nbsp;</td><td>rampart context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_envelope</em>&nbsp;</td><td>the SOAP envelope </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sec_node</em>&nbsp;</td><td>The security element </td></tr>
  </table>
</dl>
<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="gf631fdca0a8c2dc060f4a1df1e1c51ff"></a><!-- doxytag: member="rampart_encryption.h::rampart_enc_encrypt_message" ref="gf631fdca0a8c2dc060f4a1df1e1c51ff" args="(const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx, rampart_context_t *rampart_context, axiom_soap_envelope_t *soap_envelope, axiom_node_t *sec_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t rampart_enc_encrypt_message           </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_msg_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">rampart_context_t *&nbsp;</td>
          <td class="paramname"> <em>rampart_context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_soap_envelope_t *&nbsp;</td>
          <td class="paramname"> <em>soap_envelope</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>sec_node</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>
<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>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_envelope</em>&nbsp;</td><td>the SOAP envelope </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sec_node</em>&nbsp;</td><td>The security element </td></tr>
  </table>
</dl>
<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="g7b1a8146af13a98d2471236a9db9763d"></a><!-- doxytag: member="rampart_encryption.h::rampart_enc_encrypt_session_key" ref="g7b1a8146af13a98d2471236a9db9763d" args="(const axutil_env_t *env, oxs_key_t *session_key, axis2_msg_ctx_t *msg_ctx, rampart_context_t *rampart_context, axiom_node_t *sec_node, axutil_array_list_t *id_list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t rampart_enc_encrypt_session_key           </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>session_key</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>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">rampart_context_t *&nbsp;</td>
          <td class="paramname"> <em>rampart_context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>sec_node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axutil_array_list_t *&nbsp;</td>
          <td class="paramname"> <em>id_list</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>
Encrypts the session key using assymmetric encription <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>session_key</em>&nbsp;</td><td>the session key to be encrypted </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rampart_context</em>&nbsp;</td><td>the rampart context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sec_node</em>&nbsp;</td><td>The security element </td></tr>
  </table>
</dl>
<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="g7b9ee59c3d3a16b00d293ff466722271"></a><!-- doxytag: member="rampart_encryption.h::rampart_enc_encrypt_signature" ref="g7b9ee59c3d3a16b00d293ff466722271" args="(const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx, rampart_context_t *rampart_context, axiom_soap_envelope_t *soap_envelope, axiom_node_t *sec_node)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t rampart_enc_encrypt_signature           </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_msg_ctx_t *&nbsp;</td>
          <td class="paramname"> <em>msg_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">rampart_context_t *&nbsp;</td>
          <td class="paramname"> <em>rampart_context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_soap_envelope_t *&nbsp;</td>
          <td class="paramname"> <em>soap_envelope</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">axiom_node_t *&nbsp;</td>
          <td class="paramname"> <em>sec_node</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>
<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>msg_ctx</em>&nbsp;</td><td>message context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>soap_envelope</em>&nbsp;</td><td>the SOAP envelope </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sec_node</em>&nbsp;</td><td>The security element </td></tr>
  </table>
</dl>
<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: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>
