<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>buffer</title> <meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7"> <link rel="HOME" title="XML Security Library Reference Manual" href="index.html"> <link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html"> <link rel="PREVIOUS" title="bn" href="xmlsec-bn.html"> <link rel="NEXT" title="dl" href="xmlsec-dl.html"> <meta name="GENERATOR" content="GTK-Doc V1.2 (SGML mode)"> <style type="text/css">.synopsis, .classsynopsis { background: #eeeeee; border: solid 1px #aaaaaa; padding: 0.5em; } .programlisting { background: #eeeeff; border: solid 1px #aaaaff; padding: 0.5em; } .variablelist { padding: 4px; margin-left: 3em; } .navigation { background: #ffeeee; border: solid 1px #ffaaaa; margin-top: 0.5em; margin-bottom: 0.5em; } .navigation a { color: #770000; } .navigation a:visited { color: #550000; } .navigation .title { font-size: 200%; }</style> </head> <body><table witdh="100%" valign="top"><tr valign="top"> <td valign="top" align="left" width="210"> <img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p> <ul> <li><a href="../index.html">Home</a></li> <li><a href="../download.html">Download</a></li> <li><a href="../news.html">News</a></li> <li><a href="../documentation.html">Documentation</a></li> <ul> <li><a href="../faq.html">FAQ</a></li> <li><a href="../api/xmlsec-notes.html">Tutorial</a></li> <li><a href="../api/xmlsec-reference.html">API reference</a></li> <li><a href="../api/xmlsec-examples.html">Examples</a></li> </ul> <li><a href="../xmldsig.html">XML Digital Signature</a></li> <ul><li><a href="http://www.aleksey.com/xmlsec/xmldsig-verifier.html">Online Verifier</a></li></ul> <li><a href="../xmlenc.html">XML Encryption</a></li> <li><a href="../c14n.html">XML Canonicalization</a></li> <li><a href="../bugs.html">Reporting Bugs</a></li> <li><a href="http://www.aleksey.com/pipermail/xmlsec">Mailing list</a></li> <li><a href="../related.html">Related</a></li> <li><a href="../authors.html">Authors</a></li> </ul> <table width="100%"> <tr> <td width="15"></td> <td><a href="http://xmlsoft.org/"><img src="../images/libxml2-logo.png" alt="LibXML2" border="0"></a></td> </tr> <tr> <td width="15"></td> <td><a href="http://xmlsoft.org/XSLT"><img src="../images/libxslt-logo.png" alt="LibXSLT" border="0"></a></td> </tr> <tr> <td width="15"></td> <td><a href="http://www.openssl.org/"><img src="../images/openssl-logo.png" alt="OpenSSL" border="0"></a></td> </tr> <!--Links - start--><!--Links - end--> </table> </td> <td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent"> <table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> <td><a accesskey="p" href="xmlsec-bn.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> <td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">XML Security Library Reference Manual</th> <td><a accesskey="n" href="xmlsec-dl.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr></table> <h1> <a name="XMLSEC-BUFFER"></a>buffer</h1> <div class="REFNAMEDIV"> <a name="AEN3785"></a><h2>Name</h2>buffer--Binary buffer implementation.</div> <div class="REFSYNOPSISDIV"> <a name="AEN3788"></a><h2>Synopsis</h2> <pre class="SYNOPSIS"> enum <a href="xmlsec-buffer.html#XMLSECALLOCMODE">xmlSecAllocMode</a>; struct <a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBuffer</a>; <font>void</font> <a href="xmlsec-buffer.html#XMLSECBUFFERSETDEFAULTALLOCMODE">xmlSecBufferSetDefaultAllocMode</a> (<a href="xmlsec-buffer.html#XMLSECALLOCMODE">xmlSecAllocMode</a> defAllocMode, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> defInitialSize); <a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> <a href="xmlsec-buffer.html#XMLSECBUFFERCREATE">xmlSecBufferCreate</a> (<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size); <font>void</font> <a href="xmlsec-buffer.html#XMLSECBUFFERDESTROY">xmlSecBufferDestroy</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf); <font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERINITIALIZE">xmlSecBufferInitialize</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size); <font>void</font> <a href="xmlsec-buffer.html#XMLSECBUFFERFINALIZE">xmlSecBufferFinalize</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf); <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a>* <a href="xmlsec-buffer.html#XMLSECBUFFERGETDATA">xmlSecBufferGetData</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf); <font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERSETDATA">xmlSecBufferSetData</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size); <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <a href="xmlsec-buffer.html#XMLSECBUFFERGETSIZE">xmlSecBufferGetSize</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf); <font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERSETSIZE">xmlSecBufferSetSize</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size); <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <a href="xmlsec-buffer.html#XMLSECBUFFERGETMAXSIZE">xmlSecBufferGetMaxSize</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf); <font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERSETMAXSIZE">xmlSecBufferSetMaxSize</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size); <font>void</font> <a href="xmlsec-buffer.html#XMLSECBUFFEREMPTY">xmlSecBufferEmpty</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf); <font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERAPPEND">xmlSecBufferAppend</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size); <font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERPREPEND">xmlSecBufferPrepend</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size); <font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERREMOVEHEAD">xmlSecBufferRemoveHead</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size); <font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERREMOVETAIL">xmlSecBufferRemoveTail</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size); <font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERREADFILE">xmlSecBufferReadFile</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, const <font>char</font> *filename); <font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERBASE64NODECONTENTREAD">xmlSecBufferBase64NodeContentRead</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, <font>xmlNodePtr</font> node); <font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERBASE64NODECONTENTWRITE">xmlSecBufferBase64NodeContentWrite</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, <font>xmlNodePtr</font> node, <font>int</font> columns); <font>xmlOutputBufferPtr</font> <a href="xmlsec-buffer.html#XMLSECBUFFERCREATEOUTPUTBUFFER">xmlSecBufferCreateOutputBuffer</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);</pre> </div> <div class="REFSECT1"> <a name="AEN3869"></a><h2>Description</h2> <p>Binary buffer implementation.</p> </div> <div class="REFSECT1"> <a name="AEN3872"></a><h2>Details</h2> <div class="REFSECT2"> <a name="AEN3874"></a><h3> <a name="XMLSECALLOCMODE"></a>enum xmlSecAllocMode</h3> <pre class="PROGRAMLISTING">typedef enum { xmlSecAllocModeExact = 0, xmlSecAllocModeDouble } xmlSecAllocMode;</pre> <p>The memory allocation mode (used by <var class="PARAMETER">xmlSecBuffer</var> and <var class="PARAMETER">xmlSecList</var>).</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN3885"><span style="white-space: nowrap"><var class="LITERAL">xmlSecAllocModeExact</var></span></a></td> <td align="LEFT" valign="TOP"><p> the memory allocation mode that minimizes total allocated memory size.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN3890"><span style="white-space: nowrap"><var class="LITERAL">xmlSecAllocModeDouble</var></span></a></td> <td align="LEFT" valign="TOP"><p> the memory allocation mode that tries to minimize the number of malloc calls.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN3895"></a><h3> <a name="XMLSECBUFFER"></a>struct xmlSecBuffer</h3> <pre class="PROGRAMLISTING">struct xmlSecBuffer { xmlSecByte* data; xmlSecSize size; xmlSecSize maxSize; xmlSecAllocMode allocMode; };</pre> <p>Binary data buffer.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN3904"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *<code class="STRUCTFIELD">data</code></span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer data.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN3910"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">size</code></span></a></td> <td align="LEFT" valign="TOP"><p> the current data size.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN3916"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">maxSize</code></span></a></td> <td align="LEFT" valign="TOP"><p> the max data size (allocated buffer size).</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN3922"><span style="white-space: nowrap"><a href="xmlsec-buffer.html#XMLSECALLOCMODE">xmlSecAllocMode</a> <code class="STRUCTFIELD">allocMode</code></span></a></td> <td align="LEFT" valign="TOP"><p> the buffer memory allocation mode.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN3928"></a><h3> <a name="XMLSECBUFFERSETDEFAULTALLOCMODE"></a>xmlSecBufferSetDefaultAllocMode ()</h3> <pre class="PROGRAMLISTING"><font>void</font> xmlSecBufferSetDefaultAllocMode (<a href="xmlsec-buffer.html#XMLSECALLOCMODE">xmlSecAllocMode</a> defAllocMode, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> defInitialSize);</pre> <p>Sets new global default allocation mode and minimal intial size.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN3940"><span style="white-space: nowrap"><var class="PARAMETER">defAllocMode</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the new default buffer allocation mode.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN3945"><span style="white-space: nowrap"><var class="PARAMETER">defInitialSize</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the new default buffer minimal intial size.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN3950"></a><h3> <a name="XMLSECBUFFERCREATE"></a>xmlSecBufferCreate ()</h3> <pre class="PROGRAMLISTING"><a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> xmlSecBufferCreate (<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre> <p>Allocates and initalizes new memory buffer with given size. Caller is responsible for calling <a href="xmlsec-buffer.html#XMLSECBUFFERDESTROY"><span class="TYPE">xmlSecBufferDestroy</span></a> function to free the buffer.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN3963"><span style="white-space: nowrap"><var class="PARAMETER">size</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the intial size.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN3968"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>pointer to newly allocated buffer or NULL if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN3973"></a><h3> <a name="XMLSECBUFFERDESTROY"></a>xmlSecBufferDestroy ()</h3> <pre class="PROGRAMLISTING"><font>void</font> xmlSecBufferDestroy (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);</pre> <p>Desrtoys buffer object created with <a href="xmlsec-buffer.html#XMLSECBUFFERCREATE"><span class="TYPE">xmlSecBufferCreate</span></a> function.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr> <td align="LEFT" valign="TOP"><a name="AEN3986"><span style="white-space: nowrap"><var class="PARAMETER">buf</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td> </tr></tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN3991"></a><h3> <a name="XMLSECBUFFERINITIALIZE"></a>xmlSecBufferInitialize ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferInitialize (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre> <p>Initializes buffer object <var class="PARAMETER">buf</var>. Caller is responsible for calling <a href="xmlsec-buffer.html#XMLSECBUFFERFINALIZE"><span class="TYPE">xmlSecBufferFinalize</span></a> function to free allocated resources.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN4006"><span style="white-space: nowrap"><var class="PARAMETER">buf</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4011"><span style="white-space: nowrap"><var class="PARAMETER">size</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the initial buffer size.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4016"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN4021"></a><h3> <a name="XMLSECBUFFERFINALIZE"></a>xmlSecBufferFinalize ()</h3> <pre class="PROGRAMLISTING"><font>void</font> xmlSecBufferFinalize (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);</pre> <p>Frees allocated resource for a buffer intialized with <a href="xmlsec-buffer.html#XMLSECBUFFERINITIALIZE"><span class="TYPE">xmlSecBufferInitialize</span></a> function.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr> <td align="LEFT" valign="TOP"><a name="AEN4034"><span style="white-space: nowrap"><var class="PARAMETER">buf</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td> </tr></tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN4039"></a><h3> <a name="XMLSECBUFFERGETDATA"></a>xmlSecBufferGetData ()</h3> <pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a>* xmlSecBufferGetData (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);</pre> <p>Gets pointer to buffer's data.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN4050"><span style="white-space: nowrap"><var class="PARAMETER">buf</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4055"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>pointer to buffer's data.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN4060"></a><h3> <a name="XMLSECBUFFERSETDATA"></a>xmlSecBufferSetData ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferSetData (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre> <p>Sets the value of the buffer to <var class="PARAMETER">data</var>.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN4074"><span style="white-space: nowrap"><var class="PARAMETER">buf</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4079"><span style="white-space: nowrap"><var class="PARAMETER">data</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the data.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4084"><span style="white-space: nowrap"><var class="PARAMETER">size</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the data size.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4089"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN4094"></a><h3> <a name="XMLSECBUFFERGETSIZE"></a>xmlSecBufferGetSize ()</h3> <pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> xmlSecBufferGetSize (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);</pre> <p>Gets the current buffer data size.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN4105"><span style="white-space: nowrap"><var class="PARAMETER">buf</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4110"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>the current data size.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN4115"></a><h3> <a name="XMLSECBUFFERSETSIZE"></a>xmlSecBufferSetSize ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferSetSize (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre> <p>Sets new buffer data size. If necessary, buffer grows to have at least <var class="PARAMETER">size</var> bytes.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN4128"><span style="white-space: nowrap"><var class="PARAMETER">buf</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4133"><span style="white-space: nowrap"><var class="PARAMETER">size</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the new data size.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4138"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN4143"></a><h3> <a name="XMLSECBUFFERGETMAXSIZE"></a>xmlSecBufferGetMaxSize ()</h3> <pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> xmlSecBufferGetMaxSize (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);</pre> <p>Gets the maximum (allocated) buffer size.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN4154"><span style="white-space: nowrap"><var class="PARAMETER">buf</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4159"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>the maximum (allocated) buffer size.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN4164"></a><h3> <a name="XMLSECBUFFERSETMAXSIZE"></a>xmlSecBufferSetMaxSize ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferSetMaxSize (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre> <p>Sets new buffer maximum size. If necessary, buffer grows to have at least <var class="PARAMETER">size</var> bytes.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN4177"><span style="white-space: nowrap"><var class="PARAMETER">buf</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4182"><span style="white-space: nowrap"><var class="PARAMETER">size</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the new maximum size.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4187"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN4192"></a><h3> <a name="XMLSECBUFFEREMPTY"></a>xmlSecBufferEmpty ()</h3> <pre class="PROGRAMLISTING"><font>void</font> xmlSecBufferEmpty (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);</pre> <p>Empties the buffer.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr> <td align="LEFT" valign="TOP"><a name="AEN4203"><span style="white-space: nowrap"><var class="PARAMETER">buf</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td> </tr></tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN4208"></a><h3> <a name="XMLSECBUFFERAPPEND"></a>xmlSecBufferAppend ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferAppend (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre> <p>Appends the <var class="PARAMETER">data</var> after the current data stored in the buffer.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN4222"><span style="white-space: nowrap"><var class="PARAMETER">buf</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4227"><span style="white-space: nowrap"><var class="PARAMETER">data</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the data.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4232"><span style="white-space: nowrap"><var class="PARAMETER">size</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the data size.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4237"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN4242"></a><h3> <a name="XMLSECBUFFERPREPEND"></a>xmlSecBufferPrepend ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferPrepend (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre> <p>Prepends the <var class="PARAMETER">data</var> before the current data stored in the buffer.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN4256"><span style="white-space: nowrap"><var class="PARAMETER">buf</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4261"><span style="white-space: nowrap"><var class="PARAMETER">data</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the data.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4266"><span style="white-space: nowrap"><var class="PARAMETER">size</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the data size.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4271"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN4276"></a><h3> <a name="XMLSECBUFFERREMOVEHEAD"></a>xmlSecBufferRemoveHead ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferRemoveHead (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre> <p>Removes <var class="PARAMETER">size</var> bytes from the beginning of the current buffer.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN4289"><span style="white-space: nowrap"><var class="PARAMETER">buf</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4294"><span style="white-space: nowrap"><var class="PARAMETER">size</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the number of bytes to be removed.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4299"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN4304"></a><h3> <a name="XMLSECBUFFERREMOVETAIL"></a>xmlSecBufferRemoveTail ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferRemoveTail (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre> <p>Removes <var class="PARAMETER">size</var> bytes from the end of current buffer.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN4317"><span style="white-space: nowrap"><var class="PARAMETER">buf</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4322"><span style="white-space: nowrap"><var class="PARAMETER">size</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the number of bytes to be removed.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4327"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN4332"></a><h3> <a name="XMLSECBUFFERREADFILE"></a>xmlSecBufferReadFile ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferReadFile (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, const <font>char</font> *filename);</pre> <p>Reads the content of the file <var class="PARAMETER">filename</var> in the buffer.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN4345"><span style="white-space: nowrap"><var class="PARAMETER">buf</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4350"><span style="white-space: nowrap"><var class="PARAMETER">filename</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the filename.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4355"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN4360"></a><h3> <a name="XMLSECBUFFERBASE64NODECONTENTREAD"></a>xmlSecBufferBase64NodeContentRead ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferBase64NodeContentRead (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, <font>xmlNodePtr</font> node);</pre> <p>Reads the content of the <var class="PARAMETER">node</var>, base64 decodes it and stores the result in the buffer.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN4373"><span style="white-space: nowrap"><var class="PARAMETER">buf</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4378"><span style="white-space: nowrap"><var class="PARAMETER">node</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to node.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4383"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN4388"></a><h3> <a name="XMLSECBUFFERBASE64NODECONTENTWRITE"></a>xmlSecBufferBase64NodeContentWrite ()</h3> <pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferBase64NodeContentWrite (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf, <font>xmlNodePtr</font> node, <font>int</font> columns);</pre> <p>Sets the content of the <var class="PARAMETER">node</var> to the base64 encoded buffer data.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN4402"><span style="white-space: nowrap"><var class="PARAMETER">buf</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4407"><span style="white-space: nowrap"><var class="PARAMETER">node</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to a node.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4412"><span style="white-space: nowrap"><var class="PARAMETER">columns</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the max line size fro base64 encoded data.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4417"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>0 on success or a negative value if an error occurs.</p></td> </tr> </tbody></table> </div> <hr> <div class="REFSECT2"> <a name="AEN4422"></a><h3> <a name="XMLSECBUFFERCREATEOUTPUTBUFFER"></a>xmlSecBufferCreateOutputBuffer ()</h3> <pre class="PROGRAMLISTING"><font>xmlOutputBufferPtr</font> xmlSecBufferCreateOutputBuffer (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);</pre> <p>Creates new LibXML output buffer to store data in the <var class="PARAMETER">buf</var>. Caller is responsible for destroying <var class="PARAMETER">buf</var> when processing is done.</p> <p></p> <p></p> <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody> <tr> <td align="LEFT" valign="TOP"><a name="AEN4435"><span style="white-space: nowrap"><var class="PARAMETER">buf</var>:</span></a></td> <td align="LEFT" valign="TOP"><p> the pointer to buffer.</p></td> </tr> <tr> <td align="LEFT" valign="TOP"><a name="AEN4440"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td> <td align="LEFT" valign="TOP"><p>pointer to newly allocated output buffer or NULL if an error occurs.</p></td> </tr> </tbody></table> </div> </div> <table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle"> <td align="left"><a accesskey="p" href="xmlsec-bn.html"><b><<<bn</b></a></td> <td align="right"><a accesskey="n" href="xmlsec-dl.html"><b>dl>>></b></a></td> </tr></table> </td></tr></table></td> </tr></table></body> </html>