<!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 Cipher 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>OpenSSL Cipher Context<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>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__openssl__cipher__ctx.html#g5356562aa4c4804311403b0bac336a81">openssl_cipher_ctx_free</a> (<a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *ctx, const axutil_env_t *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__openssl__cipher__ctx.html#g3968513bd61c588fe6b231b28b5c1277">openssl_cipher_ctx_get_cipher</a> (<a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *ctx, const axutil_env_t *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><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__openssl__cipher__ctx.html#gf3a027da46bdea8eef627bbad730c8ba">openssl_cipher_ctx_get_key</a> (<a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *ctx, const axutil_env_t *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__openssl__cipher__ctx.html#g906801c027cb3f93eb0bf4b0a465ab96">openssl_cipher_ctx_get_iv</a> (<a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *ctx, const axutil_env_t *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_char_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__openssl__cipher__ctx.html#ge70e7ac0c1c9fca1540eeebc51b4bf34">openssl_cipher_ctx_get_pad</a> (<a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *ctx, const axutil_env_t *env)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__openssl__cipher__ctx.html#g5a369e35cdcad15eab021bc00c4da939">openssl_cipher_ctx_set_cipher</a> (<a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *ctx, const axutil_env_t *env, const EVP_CIPHER *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__openssl__cipher__ctx.html#g0624a011c4d8004470fabb9b43d409e3">openssl_cipher_ctx_set_key</a> (<a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *ctx, const axutil_env_t *env, <a class="el" href="group__oxs__key.html#g6336c79b9592fb630903079b14a99206">oxs_key_t</a> *key)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__openssl__cipher__ctx.html#gb05cd9d187e3e52895ca687f24925798">openssl_cipher_ctx_set_iv</a> (<a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *ctx, const axutil_env_t *env, axis2_char_t *iv)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">axis2_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__openssl__cipher__ctx.html#g87a83f624dcd21dd24297e2814e60dc8">openssl_cipher_ctx_set_pad</a> (<a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *ctx, const axutil_env_t *env, axis2_char_t *pad)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">AXIS2_EXTERN <a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__openssl__cipher__ctx.html#g04906d62ed8d23220fe50994efb29d3c">openssl_cipher_ctx_create</a> (const axutil_env_t *env)</td></tr>

</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gd9180f202f53aa2722a17abe22a19057"></a><!-- doxytag: member="openssl_cipher_ctx.h::openssl_cipher_ctx_t" ref="gd9180f202f53aa2722a17abe22a19057" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> <a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type name for struct openssl_cipher_ctx 
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g04906d62ed8d23220fe50994efb29d3c"></a><!-- doxytag: member="openssl_cipher_ctx.h::openssl_cipher_ctx_create" ref="g04906d62ed8d23220fe50994efb29d3c" args="(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__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a>* openssl_cipher_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 new cipher context. All the fields carry NULL values at the begining. <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>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Fresh Cipher Context </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5356562aa4c4804311403b0bac336a81"></a><!-- doxytag: member="openssl_cipher_ctx.h::openssl_cipher_ctx_free" ref="g5356562aa4c4804311403b0bac336a81" args="(openssl_cipher_ctx_t *ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t openssl_cipher_ctx_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *&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 <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>to the openssl cipher ctx struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </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="g3968513bd61c588fe6b231b28b5c1277"></a><!-- doxytag: member="openssl_cipher_ctx.h::openssl_cipher_ctx_get_cipher" ref="g3968513bd61c588fe6b231b28b5c1277" args="(openssl_cipher_ctx_t *ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const EVP_CIPHER* openssl_cipher_ctx_get_cipher           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *&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>
Given the ctx return the CIPHER <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>to the openssl cipher ctx struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>RVP_CIPHER the cipher </dd></dl>

</div>
</div><p>
<a class="anchor" name="g906801c027cb3f93eb0bf4b0a465ab96"></a><!-- doxytag: member="openssl_cipher_ctx.h::openssl_cipher_ctx_get_iv" ref="g906801c027cb3f93eb0bf4b0a465ab96" args="(openssl_cipher_ctx_t *ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_char_t* openssl_cipher_ctx_get_iv           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *&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>
Given the ctx return iv <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>to the openssl cipher ctx struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>iv </dd></dl>

</div>
</div><p>
<a class="anchor" name="gf3a027da46bdea8eef627bbad730c8ba"></a><!-- doxytag: member="openssl_cipher_ctx.h::openssl_cipher_ctx_get_key" ref="gf3a027da46bdea8eef627bbad730c8ba" args="(openssl_cipher_ctx_t *ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__oxs__key.html#g6336c79b9592fb630903079b14a99206">oxs_key_t</a>* openssl_cipher_ctx_get_key           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *&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>
Given the ctx return key <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>to the openssl cipher ctx struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>key </dd></dl>

</div>
</div><p>
<a class="anchor" name="ge70e7ac0c1c9fca1540eeebc51b4bf34"></a><!-- doxytag: member="openssl_cipher_ctx.h::openssl_cipher_ctx_get_pad" ref="ge70e7ac0c1c9fca1540eeebc51b4bf34" args="(openssl_cipher_ctx_t *ctx, const axutil_env_t *env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_char_t* openssl_cipher_ctx_get_pad           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *&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>
Given the ctx return the padding <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>to the openssl cipher ctx struct </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>env</em>&nbsp;</td><td>pointer to environment struct </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>padding </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5a369e35cdcad15eab021bc00c4da939"></a><!-- doxytag: member="openssl_cipher_ctx.h::openssl_cipher_ctx_set_cipher" ref="g5a369e35cdcad15eab021bc00c4da939" args="(openssl_cipher_ctx_t *ctx, const axutil_env_t *env, const EVP_CIPHER *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t openssl_cipher_ctx_set_cipher           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *&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">const EVP_CIPHER *&nbsp;</td>
          <td class="paramname"></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 Cipher for the cipher context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>to the openssl cipher ctx struct </td></tr>
    <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>EVP_CIPHER</em>&nbsp;</td><td>The pointer for the Cipher to be set in the cipher context </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="gb05cd9d187e3e52895ca687f24925798"></a><!-- doxytag: member="openssl_cipher_ctx.h::openssl_cipher_ctx_set_iv" ref="gb05cd9d187e3e52895ca687f24925798" args="(openssl_cipher_ctx_t *ctx, const axutil_env_t *env, axis2_char_t *iv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t openssl_cipher_ctx_set_iv           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *&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>iv</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 Initial Value for the cipher context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>to the openssl cipher ctx struct </td></tr>
    <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>iv</em>&nbsp;</td><td>The Initial Value to be set in the cipher context </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="g0624a011c4d8004470fabb9b43d409e3"></a><!-- doxytag: member="openssl_cipher_ctx.h::openssl_cipher_ctx_set_key" ref="g0624a011c4d8004470fabb9b43d409e3" args="(openssl_cipher_ctx_t *ctx, const axutil_env_t *env, oxs_key_t *key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t openssl_cipher_ctx_set_key           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *&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"><a class="el" href="group__oxs__key.html#g6336c79b9592fb630903079b14a99206">oxs_key_t</a> *&nbsp;</td>
          <td class="paramname"> <em>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 Key for the cipher context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>to the openssl cipher ctx struct </td></tr>
    <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>key</em>&nbsp;</td><td>The key to be set in the cipher context </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="g87a83f624dcd21dd24297e2814e60dc8"></a><!-- doxytag: member="openssl_cipher_ctx.h::openssl_cipher_ctx_set_pad" ref="g87a83f624dcd21dd24297e2814e60dc8" args="(openssl_cipher_ctx_t *ctx, const axutil_env_t *env, axis2_char_t *pad)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">axis2_status_t openssl_cipher_ctx_set_pad           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__openssl__cipher__ctx.html#gd9180f202f53aa2722a17abe22a19057">openssl_cipher_ctx_t</a> *&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>pad</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 pad for the cipher context. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>to the openssl cipher ctx struct </td></tr>
    <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>pad</em>&nbsp;</td><td>the pad to be set in the cipher context </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: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>
