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