/usr/share/doc/libkcapi/html/API-kcapi-cipher-stream-update.html is in libkcapi-doc 1.0.3-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>kcapi_cipher_stream_update</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Linux Kernel Crypto API User Space Interface Library"><link rel="up" href="ch03s06.html" title="Synchronous Symmetric Cipher API - Stream"><link rel="prev" href="API-kcapi-cipher-stream-init-dec.html" title="kcapi_cipher_stream_init_dec"><link rel="next" href="API-kcapi-cipher-stream-op.html" title="kcapi_cipher_stream_op"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">kcapi_cipher_stream_update</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-kcapi-cipher-stream-init-dec.html">Prev</a> </td><th width="60%" align="center">Synchronous Symmetric Cipher API - Stream</th><td width="20%" align="right"> <a accesskey="n" href="API-kcapi-cipher-stream-op.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-kcapi-cipher-stream-update"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>kcapi_cipher_stream_update —
send more data for processing (stream)
</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int32_t <b class="fsfunc">kcapi_cipher_stream_update </b>(</code></td><td>struct kcapi_handle * <var class="pdparam">handle</var>, </td></tr><tr><td> </td><td>struct iovec * <var class="pdparam">iov</var>, </td></tr><tr><td> </td><td>uint32_t <var class="pdparam">iovlen</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm1385"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>handle</code></em></span></dt><dd><p>
[in] cipher handle
</p></dd><dt><span class="term"><em class="parameter"><code>iov</code></em></span></dt><dd><p>
[in] scatter/gather list with data to be processed by the
cipher operation.
</p></dd><dt><span class="term"><em class="parameter"><code>iovlen</code></em></span></dt><dd><p>
[in] number of scatter/gather list elements.
</p></dd></dl></div></div><div class="refsect1"><a name="idm1403"></a><h2>Description</h2><p>
Using this function call, more plaintext for encryption or ciphertext for
decryption can be submitted to the kernel.
</p><p>
This function may cause the caller to sleep if the kernel buffer holding
the data is getting full. The process will be woken up once more buffer
space becomes available by calling <code class="function">kcapi_cipher_stream_op</code>.
</p></div><div class="refsect1"><a name="idm1408"></a><h2>Note</h2><p>
with the separate API calls of <code class="function">kcapi_cipher_stream_update</code> and
<code class="function">kcapi_cipher_stream_op</code> a multi-threaded application can be implemented
where one thread sends data to be processed and one thread picks up data
processed by the cipher operation.
</p></div><div class="refsect1"><a name="idm1413"></a><h2>IMPORTANT NOTE</h2><p>
The kernel will only process
sysconf(_SC_PAGESIZE) * ALG_MAX_PAGES at one time. If your input data is
larger than this threshold, you MUST segment it into chunks of at most
sysconf(_SC_PAGESIZE) * ALG_MAX_PAGES and invoke the
<code class="function">kcapi_cipher_stream_update</code> on that segment followed by
<code class="function">kcapi_cipher_stream_op</code> before the next chunk is processed. If this
rule is not obeyed, the thread invoking <code class="function">kcapi_cipher_stream_update</code>
will be put to sleep until another thread invokes <code class="function">kcapi_cipher_stream_op</code>.
</p></div><div class="refsect1"><a name="idm1420"></a><h2>WARNING</h2><p>
The memory referenced by <em class="parameter"><code>iov</code></em> is not accessed by the kernel
during this call. The memory is first accessed when <code class="function">kcapi_cipher_stream_op</code>
is called. Thus, you MUST make sure that the referenced memory is still
present at the time <code class="function">kcapi_cipher_stream_op</code> is called.
</p><p>
<em class="parameter"><code>return</code></em> number of bytes sent to the kernel upon success;
a negative errno-style error code if an error occurred
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-kcapi-cipher-stream-init-dec.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch03s06.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-kcapi-cipher-stream-op.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">kcapi_cipher_stream_init_dec</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">kcapi_cipher_stream_op</span></td></tr></table></div></body></html>
|