1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Chapter 1. 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 1. Kernel Crypto API Interface Specification</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <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 1. 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> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch01s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Linux Kernel Crypto API </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Terminology</td></tr></table></div></body></html> 35