<!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: OpenSSL RSA</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>OpenSSL RSA<br>
<small>
[<a class="el" href="group__openssl.html">OpenSSL wrapper</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">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__openssl__rsa.html#gbfe076108b7ea202de6821eb3003aff4">openssl_rsa_prv_decrypt</a> (const axutil_env_t *env, const <a class="el" href="group__openssl__pkey.html#g68d443d31f0dbbf2815f8c3330c60c8d">openssl_pkey_t</a> *pkey, const axis2_char_t *padding, <a class="el" href="group__oxs__buffer.html#g0c4b78066ec1762a58cbec685dd60537">oxs_buffer_t</a> *in, <a class="el" href="group__oxs__buffer.html#g0c4b78066ec1762a58cbec685dd60537">oxs_buffer_t</a> *out)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__openssl__rsa.html#g8657287718f063de9c78e9087cfa35bd">openssl_rsa_pub_encrypt</a> (const axutil_env_t *env, const <a class="el" href="group__openssl__pkey.html#g68d443d31f0dbbf2815f8c3330c60c8d">openssl_pkey_t</a> *pkey, const axis2_char_t *padding, <a class="el" href="group__oxs__buffer.html#g0c4b78066ec1762a58cbec685dd60537">oxs_buffer_t</a> *in, <a class="el" href="group__oxs__buffer.html#g0c4b78066ec1762a58cbec685dd60537">oxs_buffer_t</a> *out)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__openssl__rsa.html#gaad1aca00dc26b94915abedf1c67bc58">openssl_rsa_prv_encrypt</a> (const axutil_env_t *env, const <a class="el" href="group__openssl__pkey.html#g68d443d31f0dbbf2815f8c3330c60c8d">openssl_pkey_t</a> *pkey, const axis2_char_t *padding, <a class="el" href="group__oxs__buffer.html#g0c4b78066ec1762a58cbec685dd60537">oxs_buffer_t</a> *in, <a class="el" href="group__oxs__buffer.html#g0c4b78066ec1762a58cbec685dd60537">oxs_buffer_t</a> *out)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__openssl__rsa.html#g89504d57482157dbd8cfec0074015101">openssl_rsa_pub_decrypt</a> (const axutil_env_t *env, const <a class="el" href="group__openssl__pkey.html#g68d443d31f0dbbf2815f8c3330c60c8d">openssl_pkey_t</a> *pkey, const axis2_char_t *padding, <a class="el" href="group__oxs__buffer.html#g0c4b78066ec1762a58cbec685dd60537">oxs_buffer_t</a> *in, <a class="el" href="group__oxs__buffer.html#g0c4b78066ec1762a58cbec685dd60537">oxs_buffer_t</a> *out)</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gbfe076108b7ea202de6821eb3003aff4"></a><!-- doxytag: member="openssl_rsa.h::openssl_rsa_prv_decrypt" ref="gbfe076108b7ea202de6821eb3003aff4" args="(const axutil_env_t *env, const openssl_pkey_t *pkey, const axis2_char_t *padding, oxs_buffer_t *in, oxs_buffer_t *out)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int openssl_rsa_prv_decrypt           </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">const <a class="el" href="group__openssl__pkey.html#g68d443d31f0dbbf2815f8c3330c60c8d">openssl_pkey_t</a> *&nbsp;</td>
          <td class="paramname"> <em>pkey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>padding</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>in</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>out</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>
Decrypts data using a private key specified in   pointer to openssl_rsa struct  pointer to environment struct  private key for decryption  input data  output data <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="gaad1aca00dc26b94915abedf1c67bc58"></a><!-- doxytag: member="openssl_rsa.h::openssl_rsa_prv_encrypt" ref="gaad1aca00dc26b94915abedf1c67bc58" args="(const axutil_env_t *env, const openssl_pkey_t *pkey, const axis2_char_t *padding, oxs_buffer_t *in, oxs_buffer_t *out)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int openssl_rsa_prv_encrypt           </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">const <a class="el" href="group__openssl__pkey.html#g68d443d31f0dbbf2815f8c3330c60c8d">openssl_pkey_t</a> *&nbsp;</td>
          <td class="paramname"> <em>pkey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>padding</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>in</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>out</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>
Sign data using a private key specified in   pointer to openssl_rsa struct  pointer to environment struct  private key for decryption  input data  output data <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="g89504d57482157dbd8cfec0074015101"></a><!-- doxytag: member="openssl_rsa.h::openssl_rsa_pub_decrypt" ref="g89504d57482157dbd8cfec0074015101" args="(const axutil_env_t *env, const openssl_pkey_t *pkey, const axis2_char_t *padding, oxs_buffer_t *in, oxs_buffer_t *out)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int openssl_rsa_pub_decrypt           </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">const <a class="el" href="group__openssl__pkey.html#g68d443d31f0dbbf2815f8c3330c60c8d">openssl_pkey_t</a> *&nbsp;</td>
          <td class="paramname"> <em>pkey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>padding</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>in</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>out</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>
Verifies data using a public key specified in   pointer to openssl_rsa struct  pointer to environment struct  public key for encryption  input data  output data <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="g8657287718f063de9c78e9087cfa35bd"></a><!-- doxytag: member="openssl_rsa.h::openssl_rsa_pub_encrypt" ref="g8657287718f063de9c78e9087cfa35bd" args="(const axutil_env_t *env, const openssl_pkey_t *pkey, const axis2_char_t *padding, oxs_buffer_t *in, oxs_buffer_t *out)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int openssl_rsa_pub_encrypt           </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">const <a class="el" href="group__openssl__pkey.html#g68d443d31f0dbbf2815f8c3330c60c8d">openssl_pkey_t</a> *&nbsp;</td>
          <td class="paramname"> <em>pkey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const axis2_char_t *&nbsp;</td>
          <td class="paramname"> <em>padding</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>in</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>out</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 data using a public key specified in   pointer to openssl_rsa struct  pointer to environment struct  public key for encryption  input data  output data <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>
