1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Chapter&#160;4.&#160;User Space Interface</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux Kernel Crypto API"><link rel="up" href="index.html" title="Linux Kernel Crypto API"><link rel="prev" href="ch03s04.html" title="Hashing [HASH]"><link rel="next" href="ch04s02.html" title="User Space API General Remarks"></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">Chapter&#160;4.&#160;User Space Interface</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s04.html">Prev</a>&#160;</td><th width="60%" align="center">&#160;</th><td width="20%" align="right">&#160;<a accesskey="n" href="ch04s02.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="User"></a>Chapter&#160;4.&#160;User Space Interface</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="User.html#idp1097345644">Introduction</a></span></dt><dt><span class="sect1"><a href="ch04s02.html">User Space API General Remarks</a></span></dt><dt><span class="sect1"><a href="ch04s03.html">In-place Cipher operation</a></span></dt><dt><span class="sect1"><a href="ch04s04.html">Message Digest API</a></span></dt><dt><span class="sect1"><a href="ch04s05.html">Symmetric Cipher API</a></span></dt><dt><span class="sect1"><a href="ch04s06.html">AEAD Cipher API</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s06.html#idp1097375068">AEAD Memory Structure</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch04s07.html">Random Number Generator API</a></span></dt><dt><span class="sect1"><a href="ch04s08.html">Zero-Copy Interface</a></span></dt><dt><span class="sect1"><a href="ch04s09.html">Setsockopt Interface</a></span></dt><dt><span class="sect1"><a href="ch04s10.html">User space API example</a></span></dt></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp1097345644"></a>Introduction</h2></div></div></div><p>
2     The concepts of the kernel crypto API visible to kernel space is fully
3     applicable to the user space interface as well. Therefore, the kernel
4     crypto API high level discussion for the in-kernel use cases applies
5     here as well.
6    </p><p>
7     The major difference, however, is that user space can only act as a
8     consumer and never as a provider of a transformation or cipher algorithm.
9    </p><p>
10     The following covers the user space interface exported by the kernel
11     crypto API. A working example of this description is libkcapi that
12     can be obtained from [1]. That library can be used by user space
13     applications that require cryptographic services from the kernel.
14    </p><p>
15     Some details of the in-kernel kernel crypto API aspects do not
16     apply to user space, however. This includes the difference between
17     synchronous and asynchronous invocations. The user space API call
18     is fully synchronous.
19    </p><p>
20     [1] http://www.chronox.de/libkcapi.html
21    </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch03s04.html">Prev</a>&#160;</td><td width="20%" align="center">&#160;</td><td width="40%" align="right">&#160;<a accesskey="n" href="ch04s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Hashing [HASH]&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;User Space API General Remarks</td></tr></table></div></body></html>
22