mirror of
https://codeberg.org/scip/pcp.git
synced 2025-12-17 12:00:56 +01:00
added Pcpstream example
This commit is contained in:
@@ -8,7 +8,6 @@ extern "C" {
|
|||||||
#include "pcp/config.h"
|
#include "pcp/config.h"
|
||||||
#include "pcp/base85.h"
|
#include "pcp/base85.h"
|
||||||
#include "pcp/buffer.h"
|
#include "pcp/buffer.h"
|
||||||
#include "pcp/config.h"
|
|
||||||
#include "pcp/crypto.h"
|
#include "pcp/crypto.h"
|
||||||
#include "pcp/defines.h"
|
#include "pcp/defines.h"
|
||||||
#include "pcp/digital_crc32.h"
|
#include "pcp/digital_crc32.h"
|
||||||
|
|||||||
@@ -45,6 +45,10 @@
|
|||||||
Streams are, just like iostreams in c++, either output or
|
Streams are, just like iostreams in c++, either output or
|
||||||
input mode.
|
input mode.
|
||||||
|
|
||||||
|
Sample usage:
|
||||||
|
|
||||||
|
\include tests/streamtest.c
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -61,7 +61,7 @@
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -183,7 +183,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -125,7 +125,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -167,7 +167,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ Files</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ Directories</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -107,7 +107,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -72,7 +72,7 @@
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -266,7 +266,7 @@
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -266,7 +266,7 @@
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -74,7 +74,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -1518,7 +1518,7 @@ be 0 in case of errors. See also: fatals_ifany(), buffer_done() and buffer_left(
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -587,7 +587,7 @@ Encrypted Output Format</h1>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -434,7 +434,7 @@ Functions</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -213,7 +213,7 @@ Variables</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -396,7 +396,7 @@ Variables</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -702,7 +702,7 @@ Functions</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -100,8 +100,81 @@ Functions</h2></td></tr>
|
|||||||
<p>I/O wrapper for files or buffers. </p>
|
<p>I/O wrapper for files or buffers. </p>
|
||||||
<p>Simple wrapper around FILE streams or Buffers, depending how the user initialized them. The Pcpstream object behaves always the same and it doesn't matter how it's backed.</p>
|
<p>Simple wrapper around FILE streams or Buffers, depending how the user initialized them. The Pcpstream object behaves always the same and it doesn't matter how it's backed.</p>
|
||||||
<p>We use it in the lib, e.g. in the crypto routines. That way we can support blockwise crypto on buffers or files.</p>
|
<p>We use it in the lib, e.g. in the crypto routines. That way we can support blockwise crypto on buffers or files.</p>
|
||||||
<p>Streams are, just like iostreams in c++, either output or input mode. </p>
|
<p>Streams are, just like iostreams in c++, either output or input mode.</p>
|
||||||
<h2 class="groupheader">Typedef Documentation</h2>
|
<p>Sample usage:</p>
|
||||||
|
<div class="fragment"><div class="line"><span class="preprocessor">#include <stdio.h></span></div>
|
||||||
|
<div class="line"><span class="preprocessor">#include <stdlib.h></span></div>
|
||||||
|
<div class="line"><span class="preprocessor">#include <limits.h></span></div>
|
||||||
|
<div class="line"></div>
|
||||||
|
<div class="line"><span class="preprocessor">#include <pcp.h></span></div>
|
||||||
|
<div class="line"></div>
|
||||||
|
<div class="line"><span class="keywordtype">int</span> main() {</div>
|
||||||
|
<div class="line"> <span class="comment">/* create a file with "encrypted" data */</span></div>
|
||||||
|
<div class="line"> FILE *out, *in;</div>
|
||||||
|
<div class="line"> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> clear[8] = <span class="stringliteral">"ABCDEFGH"</span>;</div>
|
||||||
|
<div class="line"> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> key[8] = <span class="stringliteral">"IxD8Lq1K"</span>;</div>
|
||||||
|
<div class="line"> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> crypt[8] = {0};</div>
|
||||||
|
<div class="line"> <span class="keywordtype">int</span> blocks = 8;</div>
|
||||||
|
<div class="line"> <span class="keywordtype">int</span> i = 0;</div>
|
||||||
|
<div class="line"></div>
|
||||||
|
<div class="line"> <span class="keywordflow">if</span>((out = fopen(<span class="stringliteral">"teststream.out"</span>, <span class="stringliteral">"wb+"</span>)) == NULL) {</div>
|
||||||
|
<div class="line"> fprintf(stderr, <span class="stringliteral">"oops, could not open file!\n"</span>);</div>
|
||||||
|
<div class="line"> <span class="keywordflow">return</span> 1;</div>
|
||||||
|
<div class="line"> }</div>
|
||||||
|
<div class="line"> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *pout = <a class="code" href="group__Pcpstream.html#ga6733979d79704b2e3ce914662b0cebc8" title="Create a new stream, backed with an open file.">ps_new_file</a>(out);</div>
|
||||||
|
<div class="line"></div>
|
||||||
|
<div class="line"> <span class="comment">/* "encrypt" a couple of times into the file */</span></div>
|
||||||
|
<div class="line"> <span class="keywordflow">for</span>(i=0; i<blocks; i++) {</div>
|
||||||
|
<div class="line"> memcpy(crypt, clear, 8);</div>
|
||||||
|
<div class="line"> <a class="code" href="group__UTILs.html#gaad81054336208b62739f1e20091213a6" title="XOR an input buffer with another buffer.">_xorbuf</a>(key, crypt, 8);</div>
|
||||||
|
<div class="line"> <a class="code" href="group__Pcpstream.html#gab8e98ef81e802a242fbdb788b4387873" title="Write bytes from the given buffer into the current stream.">ps_write</a>(pout, crypt, 8);</div>
|
||||||
|
<div class="line"> }</div>
|
||||||
|
<div class="line"> <a class="code" href="group__Pcpstream.html#ga4a68da22eca6e9bd854d54467a071d0a" title="Close the stream and frees allocated memory.">ps_close</a>(pout);</div>
|
||||||
|
<div class="line"> fclose(out);</div>
|
||||||
|
<div class="line"></div>
|
||||||
|
<div class="line"> <span class="comment">/* read it in again using an in and an out stream */</span></div>
|
||||||
|
<div class="line"> <span class="keywordflow">if</span>((in = fopen(<span class="stringliteral">"teststream.out"</span>, <span class="stringliteral">"rb"</span>)) == NULL) {</div>
|
||||||
|
<div class="line"> fprintf(stderr, <span class="stringliteral">"oops, could not open file!\n"</span>);</div>
|
||||||
|
<div class="line"> <span class="keywordflow">return</span> 1;</div>
|
||||||
|
<div class="line"> }</div>
|
||||||
|
<div class="line"> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *pin = <a class="code" href="group__Pcpstream.html#ga6733979d79704b2e3ce914662b0cebc8" title="Create a new stream, backed with an open file.">ps_new_file</a>(in);</div>
|
||||||
|
<div class="line"> </div>
|
||||||
|
<div class="line"> <span class="comment">/* we'll use this stream to put the "decrypted" data in.</span></div>
|
||||||
|
<div class="line"><span class="comment"> note, that this could be a file as well. */</span></div>
|
||||||
|
<div class="line"> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *pclear = <a class="code" href="group__Pcpstream.html#ga13ec0245b579949e6d586e1817615d2e" title="Create a new output stream, backed with a buffer.">ps_new_outbuffer</a>();</div>
|
||||||
|
<div class="line"></div>
|
||||||
|
<div class="line"> <span class="comment">/* read and "decrypt" */</span></div>
|
||||||
|
<div class="line"> <span class="keywordflow">for</span>(i=0; i<blocks; i++) {</div>
|
||||||
|
<div class="line"> <a class="code" href="group__Pcpstream.html#gacfede4b1e9fa1ce0ccd7a55379ff6f15" title="Read bytes into the given buffer from the current stream.">ps_read</a>(pin, crypt, 8);</div>
|
||||||
|
<div class="line"> <a class="code" href="group__UTILs.html#gaad81054336208b62739f1e20091213a6" title="XOR an input buffer with another buffer.">_xorbuf</a>(key, crypt, 8);</div>
|
||||||
|
<div class="line"> <a class="code" href="group__Pcpstream.html#gab8e98ef81e802a242fbdb788b4387873" title="Write bytes from the given buffer into the current stream.">ps_write</a>(pclear, crypt, 8);</div>
|
||||||
|
<div class="line"> }</div>
|
||||||
|
<div class="line"> <a class="code" href="group__Pcpstream.html#ga4a68da22eca6e9bd854d54467a071d0a" title="Close the stream and frees allocated memory.">ps_close</a>(pin);</div>
|
||||||
|
<div class="line"> fclose(in);</div>
|
||||||
|
<div class="line"></div>
|
||||||
|
<div class="line"> <span class="comment">/* now extract the buffer from the output stream */</span></div>
|
||||||
|
<div class="line"> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *result = <a class="code" href="group__Pcpstream.html#ga64bc34dfbc1b3951c3d62e82a1ae8c34" title="Access the Buffer backend pointer.">ps_buffer</a>(pclear);</div>
|
||||||
|
<div class="line"></div>
|
||||||
|
<div class="line"> <span class="comment">/* and verify if it's "decrypted" (re-use crypt) */</span></div>
|
||||||
|
<div class="line"> <span class="keywordflow">for</span>(i=0; i<blocks; i++) {</div>
|
||||||
|
<div class="line"> <a class="code" href="group__Buffer.html#gaddf2e52378c6cd765b940617cdef2bd2" title="Read some chunk of data from the Buffer.">buffer_get_chunk</a>(result, crypt, 8);</div>
|
||||||
|
<div class="line"> <span class="keywordflow">if</span>(memcmp(crypt, clear, 8) != 0) {</div>
|
||||||
|
<div class="line"> fprintf(stderr, <span class="stringliteral">"Oops, block %d doesn't match\n"</span>, i);</div>
|
||||||
|
<div class="line"> <span class="keywordflow">goto</span> error;</div>
|
||||||
|
<div class="line"> }</div>
|
||||||
|
<div class="line"> }</div>
|
||||||
|
<div class="line"></div>
|
||||||
|
<div class="line"> <a class="code" href="group__Pcpstream.html#ga4a68da22eca6e9bd854d54467a071d0a" title="Close the stream and frees allocated memory.">ps_close</a>(pclear);</div>
|
||||||
|
<div class="line"></div>
|
||||||
|
<div class="line"> fprintf(stderr, <span class="stringliteral">"done\n"</span>);</div>
|
||||||
|
<div class="line"></div>
|
||||||
|
<div class="line"> <span class="keywordflow">return</span> 0;</div>
|
||||||
|
<div class="line"></div>
|
||||||
|
<div class="line"> error:</div>
|
||||||
|
<div class="line"> <a class="code" href="group__Pcpstream.html#ga4a68da22eca6e9bd854d54467a071d0a" title="Close the stream and frees allocated memory.">ps_close</a>(pclear);</div>
|
||||||
|
<div class="line"> <span class="keywordflow">return</span> 1;</div>
|
||||||
|
<div class="line">}</div>
|
||||||
|
</div><!-- fragment --> <h2 class="groupheader">Typedef Documentation</h2>
|
||||||
<a class="anchor" id="gaec72241f86d5391d5cae7477c66cdd73"></a>
|
<a class="anchor" id="gaec72241f86d5391d5cae7477c66cdd73"></a>
|
||||||
<div class="memitem">
|
<div class="memitem">
|
||||||
<div class="memproto">
|
<div class="memproto">
|
||||||
@@ -114,7 +187,7 @@ Functions</h2></td></tr>
|
|||||||
|
|
||||||
<p>The name used everywhere. </p>
|
<p>The name used everywhere. </p>
|
||||||
|
|
||||||
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00063">63</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00067">67</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -459,7 +532,7 @@ Functions</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -302,7 +302,7 @@ Functions</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -231,7 +231,7 @@ Functions</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -360,7 +360,7 @@ Vault File Format</h1>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -300,7 +300,7 @@ Functions</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ Sample usage</h1>
|
|||||||
</div><!-- fragment --> </div></div><!-- contents -->
|
</div><!-- fragment --> </div></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -219,7 +219,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -125,7 +125,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -111,7 +111,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -105,7 +105,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -99,7 +99,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -191,7 +191,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -80,50 +80,50 @@
|
|||||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "defines.h"</span></div>
|
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "defines.h"</span></div>
|
||||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "buffer.h"</span></div>
|
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "buffer.h"</span></div>
|
||||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
|
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
|
||||||
<div class="line"><a name="l00054"></a><span class="lineno"><a class="code" href="struct__pcp__stream__t.html"> 54</a></span> <span class="keyword">struct </span><a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">_pcp_stream_t</a> {</div>
|
<div class="line"><a name="l00058"></a><span class="lineno"><a class="code" href="struct__pcp__stream__t.html"> 58</a></span> <span class="keyword">struct </span><a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">_pcp_stream_t</a> {</div>
|
||||||
<div class="line"><a name="l00055"></a><span class="lineno"><a class="code" href="struct__pcp__stream__t.html#ab3be4b7b5c57f456ed996cb0b5d53f27"> 55</a></span>  FILE *<a class="code" href="struct__pcp__stream__t.html#ab3be4b7b5c57f456ed996cb0b5d53f27" title="The backend FILE stream.">fd</a>; </div>
|
<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="struct__pcp__stream__t.html#ab3be4b7b5c57f456ed996cb0b5d53f27"> 59</a></span>  FILE *<a class="code" href="struct__pcp__stream__t.html#ab3be4b7b5c57f456ed996cb0b5d53f27" title="The backend FILE stream.">fd</a>; </div>
|
||||||
<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="struct__pcp__stream__t.html#a320a3c593ebcf0a651700f9263e5d9b4"> 56</a></span>  <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<a class="code" href="struct__pcp__stream__t.html#a320a3c593ebcf0a651700f9263e5d9b4" title="The backend Buffer object.">b</a>; </div>
|
<div class="line"><a name="l00060"></a><span class="lineno"><a class="code" href="struct__pcp__stream__t.html#a320a3c593ebcf0a651700f9263e5d9b4"> 60</a></span>  <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<a class="code" href="struct__pcp__stream__t.html#a320a3c593ebcf0a651700f9263e5d9b4" title="The backend Buffer object.">b</a>; </div>
|
||||||
<div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="struct__pcp__stream__t.html#a5fc108c71fb18d9835f7083e1b2ff5fa"> 57</a></span>  uint8_t <a class="code" href="struct__pcp__stream__t.html#a5fc108c71fb18d9835f7083e1b2ff5fa" title="Set to 1 if the backend is a Buffer.">is_buffer</a>; </div>
|
<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="struct__pcp__stream__t.html#a5fc108c71fb18d9835f7083e1b2ff5fa"> 61</a></span>  uint8_t <a class="code" href="struct__pcp__stream__t.html#a5fc108c71fb18d9835f7083e1b2ff5fa" title="Set to 1 if the backend is a Buffer.">is_buffer</a>; </div>
|
||||||
<div class="line"><a name="l00058"></a><span class="lineno"><a class="code" href="struct__pcp__stream__t.html#a4b0242f83eec494ee19ad41e08e924af"> 58</a></span>  uint8_t <a class="code" href="struct__pcp__stream__t.html#a4b0242f83eec494ee19ad41e08e924af" title="Set to 1 if EOF reached.">eof</a>; </div>
|
<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="struct__pcp__stream__t.html#a4b0242f83eec494ee19ad41e08e924af"> 62</a></span>  uint8_t <a class="code" href="struct__pcp__stream__t.html#a4b0242f83eec494ee19ad41e08e924af" title="Set to 1 if EOF reached.">eof</a>; </div>
|
||||||
<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="struct__pcp__stream__t.html#aaed1bd389ba84b3cd87839088b4057ea"> 59</a></span>  uint8_t <a class="code" href="struct__pcp__stream__t.html#aaed1bd389ba84b3cd87839088b4057ea" title="Set to 1 if an error occured.">err</a>; </div>
|
<div class="line"><a name="l00063"></a><span class="lineno"><a class="code" href="struct__pcp__stream__t.html#aaed1bd389ba84b3cd87839088b4057ea"> 63</a></span>  uint8_t <a class="code" href="struct__pcp__stream__t.html#aaed1bd389ba84b3cd87839088b4057ea" title="Set to 1 if an error occured.">err</a>; </div>
|
||||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> };</div>
|
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> };</div>
|
||||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
|
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
|
||||||
<div class="line"><a name="l00063"></a><span class="lineno"><a class="code" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73"> 63</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">_pcp_stream_t</a> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a>;</div>
|
<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73"> 67</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">_pcp_stream_t</a> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a>;</div>
|
||||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
|
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
|
||||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">/* initialize a new empty stream */</span></div>
|
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment">/* initialize a new empty stream */</span></div>
|
||||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *ps_init(<span class="keywordtype">void</span>);</div>
|
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *ps_init(<span class="keywordtype">void</span>);</div>
|
||||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
|
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
|
||||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *<a class="code" href="group__Pcpstream.html#ga6733979d79704b2e3ce914662b0cebc8" title="Create a new stream, backed with an open file.">ps_new_file</a>(FILE *backendfd);</div>
|
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *<a class="code" href="group__Pcpstream.html#ga6733979d79704b2e3ce914662b0cebc8" title="Create a new stream, backed with an open file.">ps_new_file</a>(FILE *backendfd);</div>
|
||||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
|
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
|
||||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *<a class="code" href="group__Pcpstream.html#ga1b50c92fdad290e59317af2404460662" title="Create a new input stream, backed with filled a buffer.">ps_new_inbuffer</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<a class="code" href="struct__pcp__stream__t.html#a320a3c593ebcf0a651700f9263e5d9b4" title="The backend Buffer object.">b</a>);</div>
|
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *<a class="code" href="group__Pcpstream.html#ga1b50c92fdad290e59317af2404460662" title="Create a new input stream, backed with filled a buffer.">ps_new_inbuffer</a>(<a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<a class="code" href="struct__pcp__stream__t.html#a320a3c593ebcf0a651700f9263e5d9b4" title="The backend Buffer object.">b</a>);</div>
|
||||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
|
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
|
||||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *<a class="code" href="group__Pcpstream.html#ga13ec0245b579949e6d586e1817615d2e" title="Create a new output stream, backed with a buffer.">ps_new_outbuffer</a>();</div>
|
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *<a class="code" href="group__Pcpstream.html#ga13ec0245b579949e6d586e1817615d2e" title="Create a new output stream, backed with a buffer.">ps_new_outbuffer</a>();</div>
|
||||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
|
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
|
||||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
|
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
|
||||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keywordtype">size_t</span> <a class="code" href="group__Pcpstream.html#gacfede4b1e9fa1ce0ccd7a55379ff6f15" title="Read bytes into the given buffer from the current stream.">ps_read</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream, <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> readbytes);</div>
|
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keywordtype">size_t</span> <a class="code" href="group__Pcpstream.html#gacfede4b1e9fa1ce0ccd7a55379ff6f15" title="Read bytes into the given buffer from the current stream.">ps_read</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream, <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> readbytes);</div>
|
||||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
|
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
|
||||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keywordtype">size_t</span> <a class="code" href="group__Pcpstream.html#gab8e98ef81e802a242fbdb788b4387873" title="Write bytes from the given buffer into the current stream.">ps_write</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream, <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> writebytes);</div>
|
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keywordtype">size_t</span> <a class="code" href="group__Pcpstream.html#gab8e98ef81e802a242fbdb788b4387873" title="Write bytes from the given buffer into the current stream.">ps_write</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream, <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> writebytes);</div>
|
||||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
|
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
|
||||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keywordtype">size_t</span> <a class="code" href="group__Pcpstream.html#gafd50eb5e9c8ba399e133b6029eca8856" title="Write a formatted string to the stream.">ps_print</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream, <span class="keyword">const</span> <span class="keywordtype">char</span> * fmt, ...);</div>
|
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keywordtype">size_t</span> <a class="code" href="group__Pcpstream.html#gafd50eb5e9c8ba399e133b6029eca8856" title="Write a formatted string to the stream.">ps_print</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream, <span class="keyword">const</span> <span class="keywordtype">char</span> * fmt, ...);</div>
|
||||||
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
|
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
|
||||||
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keywordtype">size_t</span> <a class="code" href="group__Pcpstream.html#ga72812698d6b6aca964c7289be41eccf8" title="Tell the current read or write offset.">ps_tell</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
|
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="keywordtype">size_t</span> <a class="code" href="group__Pcpstream.html#ga72812698d6b6aca964c7289be41eccf8" title="Tell the current read or write offset.">ps_tell</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
|
||||||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
|
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
|
||||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<a class="code" href="group__Pcpstream.html#ga64bc34dfbc1b3951c3d62e82a1ae8c34" title="Access the Buffer backend pointer.">ps_buffer</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
|
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <a class="code" href="struct__pcp__buffer.html" title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<a class="code" href="group__Pcpstream.html#ga64bc34dfbc1b3951c3d62e82a1ae8c34" title="Access the Buffer backend pointer.">ps_buffer</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
|
||||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
|
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
|
||||||
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keywordtype">void</span> <a class="code" href="group__Pcpstream.html#ga4a68da22eca6e9bd854d54467a071d0a" title="Close the stream and frees allocated memory.">ps_close</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
|
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keywordtype">void</span> <a class="code" href="group__Pcpstream.html#ga4a68da22eca6e9bd854d54467a071d0a" title="Close the stream and frees allocated memory.">ps_close</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
|
||||||
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
|
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div>
|
||||||
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keywordtype">int</span> <a class="code" href="group__Pcpstream.html#gac845e4dc3677aeef5e4de343d3f8033d" title="Check if EOF have been reached.">ps_end</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
|
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="keywordtype">int</span> <a class="code" href="group__Pcpstream.html#gac845e4dc3677aeef5e4de343d3f8033d" title="Check if EOF have been reached.">ps_end</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
|
||||||
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
|
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
|
||||||
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="keywordtype">int</span> <a class="code" href="group__Pcpstream.html#ga97b83164ecda8fd66897863ec7976890" title="Check if an error occurred during a read or write operation.">ps_err</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
|
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keywordtype">int</span> <a class="code" href="group__Pcpstream.html#ga97b83164ecda8fd66897863ec7976890" title="Check if an error occurred during a read or write operation.">ps_err</a>(<a class="code" href="struct__pcp__stream__t.html" title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
|
||||||
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
|
|
||||||
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div>
|
|
||||||
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="preprocessor">#endif // HAVE_PCP_PCPSTEAM_H</span></div>
|
|
||||||
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor"></span></div>
|
|
||||||
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div>
|
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div>
|
||||||
|
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div>
|
||||||
|
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="preprocessor">#endif // HAVE_PCP_PCPSTEAM_H</span></div>
|
||||||
|
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor"></span></div>
|
||||||
|
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
|
||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -128,7 +128,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -106,7 +106,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -94,7 +94,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
</table></div><!-- contents -->
|
</table></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -222,7 +222,7 @@ Public Attributes</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
</table></div><!-- contents -->
|
</table></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -365,7 +365,7 @@ Public Attributes</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -65,7 +65,7 @@
|
|||||||
</table></div><!-- contents -->
|
</table></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -317,7 +317,7 @@ Public Attributes</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -56,7 +56,7 @@
|
|||||||
</table></div><!-- contents -->
|
</table></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ Public Attributes</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
</table></div><!-- contents -->
|
</table></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ Public Attributes</h2></td></tr>
|
|||||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
<div class="textblock"><p>An I/O wrapper object backed by a file or a buffer. </p>
|
<div class="textblock"><p>An I/O wrapper object backed by a file or a buffer. </p>
|
||||||
|
|
||||||
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00054">54</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00058">58</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
||||||
</div><h2 class="groupheader">Member Data Documentation</h2>
|
</div><h2 class="groupheader">Member Data Documentation</h2>
|
||||||
<a class="anchor" id="a320a3c593ebcf0a651700f9263e5d9b4"></a>
|
<a class="anchor" id="a320a3c593ebcf0a651700f9263e5d9b4"></a>
|
||||||
<div class="memitem">
|
<div class="memitem">
|
||||||
@@ -90,7 +90,7 @@ Public Attributes</h2></td></tr>
|
|||||||
|
|
||||||
<p>The backend Buffer object. </p>
|
<p>The backend Buffer object. </p>
|
||||||
|
|
||||||
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00056">56</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00060">60</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -106,7 +106,7 @@ Public Attributes</h2></td></tr>
|
|||||||
|
|
||||||
<p>Set to 1 if EOF reached. </p>
|
<p>Set to 1 if EOF reached. </p>
|
||||||
|
|
||||||
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00058">58</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00062">62</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -122,7 +122,7 @@ Public Attributes</h2></td></tr>
|
|||||||
|
|
||||||
<p>Set to 1 if an error occured. </p>
|
<p>Set to 1 if an error occured. </p>
|
||||||
|
|
||||||
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00059">59</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00063">63</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -138,7 +138,7 @@ Public Attributes</h2></td></tr>
|
|||||||
|
|
||||||
<p>The backend FILE stream. </p>
|
<p>The backend FILE stream. </p>
|
||||||
|
|
||||||
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00055">55</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00059">59</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -154,7 +154,7 @@ Public Attributes</h2></td></tr>
|
|||||||
|
|
||||||
<p>Set to 1 if the backend is a Buffer. </p>
|
<p>Set to 1 if the backend is a Buffer. </p>
|
||||||
|
|
||||||
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00057">57</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
<p>Definition at line <a class="el" href="pcpstream_8h_source.html#l00061">61</a> of file <a class="el" href="pcpstream_8h_source.html">pcpstream.h</a>.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -164,7 +164,7 @@ Public Attributes</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -55,7 +55,7 @@
|
|||||||
</table></div><!-- contents -->
|
</table></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ Public Attributes</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -56,7 +56,7 @@
|
|||||||
</table></div><!-- contents -->
|
</table></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ Public Attributes</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -61,7 +61,7 @@
|
|||||||
</table></div><!-- contents -->
|
</table></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -240,7 +240,7 @@ Public Attributes</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -98,7 +98,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -171,7 +171,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -89,7 +89,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -101,7 +101,7 @@
|
|||||||
</div><!-- fragment --></div><!-- contents -->
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Thu Feb 20 2014 19:59:14 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.2
|
</a> 1.8.2
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
72
tests/streamtest.c
Normal file
72
tests/streamtest.c
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
|
#include <pcp.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
/* create a file with "encrypted" data */
|
||||||
|
FILE *out, *in;
|
||||||
|
unsigned char clear[8] = "ABCDEFGH";
|
||||||
|
unsigned char key[8] = "IxD8Lq1K";
|
||||||
|
unsigned char crypt[8] = {0};
|
||||||
|
int blocks = 8;
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
if((out = fopen("teststream.out", "wb+")) == NULL) {
|
||||||
|
fprintf(stderr, "oops, could not open file!\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
Pcpstream *pout = ps_new_file(out);
|
||||||
|
|
||||||
|
/* "encrypt" a couple of times into the file */
|
||||||
|
for(i=0; i<blocks; i++) {
|
||||||
|
memcpy(crypt, clear, 8);
|
||||||
|
_xorbuf(key, crypt, 8);
|
||||||
|
ps_write(pout, crypt, 8);
|
||||||
|
}
|
||||||
|
ps_close(pout);
|
||||||
|
fclose(out);
|
||||||
|
|
||||||
|
/* read it in again using an in and an out stream */
|
||||||
|
if((in = fopen("teststream.out", "rb")) == NULL) {
|
||||||
|
fprintf(stderr, "oops, could not open file!\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
Pcpstream *pin = ps_new_file(in);
|
||||||
|
|
||||||
|
/* we'll use this stream to put the "decrypted" data in.
|
||||||
|
note, that this could be a file as well. */
|
||||||
|
Pcpstream *pclear = ps_new_outbuffer();
|
||||||
|
|
||||||
|
/* read and "decrypt" */
|
||||||
|
for(i=0; i<blocks; i++) {
|
||||||
|
ps_read(pin, crypt, 8);
|
||||||
|
_xorbuf(key, crypt, 8);
|
||||||
|
ps_write(pclear, crypt, 8);
|
||||||
|
}
|
||||||
|
ps_close(pin);
|
||||||
|
fclose(in);
|
||||||
|
|
||||||
|
/* now extract the buffer from the output stream */
|
||||||
|
Buffer *result = ps_buffer(pclear);
|
||||||
|
|
||||||
|
/* and verify if it's "decrypted" (re-use crypt) */
|
||||||
|
for(i=0; i<blocks; i++) {
|
||||||
|
buffer_get_chunk(result, crypt, 8);
|
||||||
|
if(memcmp(crypt, clear, 8) != 0) {
|
||||||
|
fprintf(stderr, "Oops, block %d doesn't match\n", i);
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ps_close(pclear);
|
||||||
|
|
||||||
|
fprintf(stderr, "done\n");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
error:
|
||||||
|
ps_close(pclear);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user