xref: /dflybsd-src/share/man/man4/aesni.4 (revision 755d70b8f2c28b016b6c0330273e7daa38038f27)
1d884cb81SSascha Wildner.\" Copyright (c) 2010 Konstantin Belousov <kib@FreeBSD.org>
2d884cb81SSascha Wildner.\" All rights reserved.
3d884cb81SSascha Wildner.\"
4d884cb81SSascha Wildner.\" Redistribution and use in source and binary forms, with or without
5d884cb81SSascha Wildner.\" modification, are permitted provided that the following conditions
6d884cb81SSascha Wildner.\" are met:
7d884cb81SSascha Wildner.\" 1. Redistributions of source code must retain the above copyright
8d884cb81SSascha Wildner.\"    notice, this list of conditions and the following disclaimer.
9d884cb81SSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright
10d884cb81SSascha Wildner.\"    notice, this list of conditions and the following disclaimer in the
11d884cb81SSascha Wildner.\"    documentation and/or other materials provided with the distribution.
12d884cb81SSascha Wildner.\"
13d884cb81SSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14d884cb81SSascha Wildner.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15d884cb81SSascha Wildner.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16d884cb81SSascha Wildner.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17d884cb81SSascha Wildner.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18d884cb81SSascha Wildner.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19d884cb81SSascha Wildner.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20d884cb81SSascha Wildner.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21d884cb81SSascha Wildner.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22d884cb81SSascha Wildner.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23d884cb81SSascha Wildner.\" SUCH DAMAGE.
24d884cb81SSascha Wildner.\"
25d884cb81SSascha Wildner.\" $FreeBSD: src/share/man/man4/aesni.4,v 1.3 2010/09/09 21:37:05 brueffer Exp $
26d884cb81SSascha Wildner.\"
27*755d70b8SSascha Wildner.Dd April 21, 2018
28d884cb81SSascha Wildner.Dt AESNI 4
29d884cb81SSascha Wildner.Os
30d884cb81SSascha Wildner.Sh NAME
31d884cb81SSascha Wildner.Nm aesni
32d884cb81SSascha Wildner.Nd "driver for the AES accelerator on Intel CPUs"
33d884cb81SSascha Wildner.Sh SYNOPSIS
34d884cb81SSascha WildnerTo compile this driver into the kernel,
35d884cb81SSascha Wildnerplace the following lines in your
36d884cb81SSascha Wildnerkernel configuration file:
37d884cb81SSascha Wildner.Bd -ragged -offset indent
38d884cb81SSascha Wildner.Cd "device crypto"
39d884cb81SSascha Wildner.Cd "device aesni"
40d884cb81SSascha Wildner.Ed
41d884cb81SSascha Wildner.Pp
42d884cb81SSascha WildnerAlternatively, to load the driver as a
43d884cb81SSascha Wildnermodule at boot time, place the following line in
44d884cb81SSascha Wildner.Xr loader.conf 5 :
45d884cb81SSascha Wildner.Bd -literal -offset indent
46d884cb81SSascha Wildneraesni_load="YES"
47d884cb81SSascha Wildner.Ed
48d884cb81SSascha Wildner.Sh DESCRIPTION
49d884cb81SSascha WildnerStarting with some models of Core i5/i7, Intel processors implement
50d884cb81SSascha Wildnera new set of instructions called AESNI.
51d884cb81SSascha WildnerThe set of six instructions accelerates the calculation of the key
52d884cb81SSascha Wildnerschedule for key lengths of 128, 192, and 256 of the Advanced
53d884cb81SSascha WildnerEncryption Standard (AES) symmetric cipher, and provides a hardware
54d884cb81SSascha Wildnerimplementation of the regular and the last encryption and decryption
55d884cb81SSascha Wildnerrounds.
56d884cb81SSascha Wildner.Pp
57d884cb81SSascha WildnerThe processor capability is reported as AESNI in the Features2 line at boot.
58d884cb81SSascha WildnerThe
59d884cb81SSascha Wildner.Nm
60d884cb81SSascha Wildnerdriver does not attach on systems that lack the required CPU capability.
61d884cb81SSascha Wildner.Pp
62d884cb81SSascha WildnerThe
63d884cb81SSascha Wildner.Nm
64d884cb81SSascha Wildnerdriver registers itself to accelerate AES operations for
65d884cb81SSascha Wildner.Xr crypto 4 .
66d884cb81SSascha WildnerBesides speed, the advantage of using the
67d884cb81SSascha Wildner.Nm
68d884cb81SSascha Wildnerdriver is that the AESNI operation
69d884cb81SSascha Wildneris data-independent, thus eliminating some attack vectors based on
70d884cb81SSascha Wildnermeasuring cache use and timings typically present in table-driven
71d884cb81SSascha Wildnerimplementations.
72d884cb81SSascha Wildner.Sh SEE ALSO
73d884cb81SSascha Wildner.Xr crypt 3 ,
74d884cb81SSascha Wildner.Xr crypto 4 ,
75d884cb81SSascha Wildner.Xr intro 4 ,
76d884cb81SSascha Wildner.Xr padlock 4 ,
77d884cb81SSascha Wildner.Xr random 4 ,
78d884cb81SSascha Wildner.Xr crypto 9
79d884cb81SSascha Wildner.Sh HISTORY
80d884cb81SSascha WildnerThe
81d884cb81SSascha Wildner.Nm
82d884cb81SSascha Wildnerdriver first appeared in
83d884cb81SSascha Wildner.Fx 9.0 .
84d884cb81SSascha WildnerIt was ported to
85d884cb81SSascha Wildner.Dx
86d884cb81SSascha Wildnerby
87d884cb81SSascha Wildner.An Alex Hornung .
88d884cb81SSascha Wildner.Sh AUTHORS
89d884cb81SSascha Wildner.An -nosplit
90d884cb81SSascha WildnerThe
91d884cb81SSascha Wildner.Nm
92d884cb81SSascha Wildnerdriver was written by
93b2a6f486SFranco Fichtner.An Konstantin Belousov Aq Mt kib@FreeBSD.org .
94d884cb81SSascha WildnerThe key schedule calculation code was adopted from the sample provided
95d884cb81SSascha Wildnerby Intel and used in the analogous
96d884cb81SSascha Wildner.Ox
97d884cb81SSascha Wildnerdriver.
98