<!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__oxs.html">OMXMLSecurity</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__oxs__encryption.html#gc702b12ce4cd09f696924469575ae47a">oxs_encryption_symmetric_crypt</a> (const axutil_env_t *env, <a class="el" href="group__oxs__ctx.html#g795415d5d6b4ae62260a5a093b368378">oxs_ctx_t</a> *enc_ctx, <a class="el" href="group__oxs__buffer.html#g0c4b78066ec1762a58cbec685dd60537">oxs_buffer_t</a> *input, <a class="el" href="group__oxs__buffer.html#g0c4b78066ec1762a58cbec685dd60537">oxs_buffer_t</a> *result)</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__encryption.html#ge59b242f2c005e5c83bc0727d1d4b0f4">oxs_encryption_asymmetric_crypt</a> (const axutil_env_t *env, oxs_asym_ctx_t *asym_ctx, <a class="el" href="group__oxs__buffer.html#g0c4b78066ec1762a58cbec685dd60537">oxs_buffer_t</a> *input, <a class="el" href="group__oxs__buffer.html#g0c4b78066ec1762a58cbec685dd60537">oxs_buffer_t</a> *result)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="ge59b242f2c005e5c83bc0727d1d4b0f4"></a><!-- doxytag: member="oxs_encryption.h::oxs_encryption_asymmetric_crypt" ref="ge59b242f2c005e5c83bc0727d1d4b0f4" args="(const axutil_env_t *env, oxs_asym_ctx_t *asym_ctx, oxs_buffer_t *input, oxs_buffer_t *result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t oxs_encryption_asymmetric_crypt           </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_t *&nbsp;</td>
          <td class="paramname"> <em>asym_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__oxs__buffer.html#g0c4b78066ec1762a58cbec685dd60537">oxs_buffer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__oxs__buffer.html#g0c4b78066ec1762a58cbec685dd60537">oxs_buffer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>result</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>
En/Decrypts given data buffer deoending on the information avalable in the encryption context using an asymmetric key, which can be a publik key extracted from a certificate or a private key. The resulted data will be placed on the result buffer. Data are not valid only if the method returns AXIS2_SUCCESS  pointer to the OMXMLSec asymmetric encryption context struct  pointer to environment struct  the input buffer <dl class="return" compact><dt><b>Returns:</b></dt><dd>the ouput or the ressulted data buffer <p>
AXIS2_SUCCESS on success, else AXIS2_FAILURE </dd></dl>

</div>
</div><p>
<a class="anchor" name="gc702b12ce4cd09f696924469575ae47a"></a><!-- doxytag: member="oxs_encryption.h::oxs_encryption_symmetric_crypt" ref="gc702b12ce4cd09f696924469575ae47a" args="(const axutil_env_t *env, oxs_ctx_t *enc_ctx, oxs_buffer_t *input, oxs_buffer_t *result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AXIS2_EXTERN axis2_status_t oxs_encryption_symmetric_crypt           </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__ctx.html#g795415d5d6b4ae62260a5a093b368378">oxs_ctx_t</a> *&nbsp;</td>
          <td class="paramname"> <em>enc_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__oxs__buffer.html#g0c4b78066ec1762a58cbec685dd60537">oxs_buffer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__oxs__buffer.html#g0c4b78066ec1762a58cbec685dd60537">oxs_buffer_t</a> *&nbsp;</td>
          <td class="paramname"> <em>result</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>
En/Decrypts given data buffer depending on the information avalable in the encryption context using a symmetric key. The resulted data will be placed on the result buffer. Data are not valid only if the method returns AXIS2_SUCCESS  pointer to the OMXMLSec symmetric encryption context struct  pointer to environment struct  the input buffer <dl class="return" compact><dt><b>Returns:</b></dt><dd>the ouput or the ressulted data buffer <p>
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>
