~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/crypto/intro.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 Kernel Crypto API Interface Specification
  2 =========================================
  3 
  4 Introduction
  5 ------------
  6 
  7 The kernel crypto API offers a rich set of cryptographic ciphers as well
  8 as other data transformation mechanisms and methods to invoke these.
  9 This document contains a description of the API and provides example
 10 code.
 11 
 12 To understand and properly use the kernel crypto API a brief explanation
 13 of its structure is given. Based on the architecture, the API can be
 14 separated into different components. Following the architecture
 15 specification, hints to developers of ciphers are provided. Pointers to
 16 the API function call documentation are given at the end.
 17 
 18 The kernel crypto API refers to all algorithms as "transformations".
 19 Therefore, a cipher handle variable usually has the name "tfm". Besides
 20 cryptographic operations, the kernel crypto API also knows compression
 21 transformations and handles them the same way as ciphers.
 22 
 23 The kernel crypto API serves the following entity types:
 24 
 25 -  consumers requesting cryptographic services
 26 
 27 -  data transformation implementations (typically ciphers) that can be
 28    called by consumers using the kernel crypto API
 29 
 30 This specification is intended for consumers of the kernel crypto API as
 31 well as for developers implementing ciphers. This API specification,
 32 however, does not discuss all API calls available to data transformation
 33 implementations (i.e. implementations of ciphers and other
 34 transformations (such as CRC or even compression algorithms) that can
 35 register with the kernel crypto API).
 36 
 37 Note: The terms "transformation" and cipher algorithm are used
 38 interchangeably.
 39 
 40 Terminology
 41 -----------
 42 
 43 The transformation implementation is an actual code or interface to
 44 hardware which implements a certain transformation with precisely
 45 defined behavior.
 46 
 47 The transformation object (TFM) is an instance of a transformation
 48 implementation. There can be multiple transformation objects associated
 49 with a single transformation implementation. Each of those
 50 transformation objects is held by a crypto API consumer or another
 51 transformation. Transformation object is allocated when a crypto API
 52 consumer requests a transformation implementation. The consumer is then
 53 provided with a structure, which contains a transformation object (TFM).
 54 
 55 The structure that contains transformation objects may also be referred
 56 to as a "cipher handle". Such a cipher handle is always subject to the
 57 following phases that are reflected in the API calls applicable to such
 58 a cipher handle:
 59 
 60 1. Initialization of a cipher handle.
 61 
 62 2. Execution of all intended cipher operations applicable for the handle
 63    where the cipher handle must be furnished to every API call.
 64 
 65 3. Destruction of a cipher handle.
 66 
 67 When using the initialization API calls, a cipher handle is created and
 68 returned to the consumer. Therefore, please refer to all initialization
 69 API calls that refer to the data structure type a consumer is expected
 70 to receive and subsequently to use. The initialization API calls have
 71 all the same naming conventions of crypto_alloc\*.
 72 
 73 The transformation context is private data associated with the
 74 transformation object.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php