1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Chapter&#160;1.&#160;Kernel Crypto API Interface Specification</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="index.html" title="Linux Kernel Crypto API"><link rel="next" href="ch01s02.html" title="Terminology"></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;1.&#160;Kernel Crypto API Interface Specification</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a>&#160;</td><th width="60%" align="center">&#160;</th><td width="20%" align="right">&#160;<a accesskey="n" href="ch01s02.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="Intro"></a>Chapter&#160;1.&#160;Kernel Crypto API Interface Specification</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="sect1"><a href="Intro.html#idp1096767556">Introduction</a></span></dt><dt><span class="sect1"><a href="ch01s02.html">Terminology</a></span></dt></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp1096767556"></a>Introduction</h2></div></div></div><p>
2     The kernel crypto API offers a rich set of cryptographic ciphers as
3     well as other data transformation mechanisms and methods to invoke
4     these. This document contains a description of the API and provides
5     example code.
6    </p><p>
7     To understand and properly use the kernel crypto API a brief
8     explanation of its structure is given. Based on the architecture,
9     the API can be separated into different components. Following the
10     architecture specification, hints to developers of ciphers are
11     provided. Pointers to the API function call  documentation are
12     given at the end.
13    </p><p>
14     The kernel crypto API refers to all algorithms as "transformations".
15     Therefore, a cipher handle variable usually has the name "tfm".
16     Besides cryptographic operations, the kernel crypto API also knows
17     compression transformations and handles them the same way as ciphers.
18    </p><p>
19     The kernel crypto API serves the following entity types:
20
21     </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>consumers requesting cryptographic services</p></li><li class="listitem"><p>data transformation implementations (typically ciphers)
22       that can be called by consumers using the kernel crypto
23       API</p></li></ul></div><p>
24    </p><p>
25     This specification is intended for consumers of the kernel crypto
26     API as well as for developers implementing ciphers. This API
27     specification, however, does not discuss all API calls available
28     to data transformation implementations (i.e. implementations of
29     ciphers and other transformations (such as CRC or even compression
30     algorithms) that can register with the kernel crypto API).
31    </p><p>
32     Note: The terms "transformation" and cipher algorithm are used
33     interchangably.
34    </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a>&#160;</td><td width="20%" align="center">&#160;</td><td width="40%" align="right">&#160;<a accesskey="n" href="ch01s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Linux Kernel Crypto API&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;Terminology</td></tr></table></div></body></html>
35