\hypertarget{cryptodev_8h_source}{}\doxysection{cryptodev.\+h}
\label{cryptodev_8h_source}\index{opencrypto/cryptodev.h@{opencrypto/cryptodev.h}}
\mbox{\hyperlink{cryptodev_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00001}00001 \textcolor{comment}{/*      \$FreeBSD\$       */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00002}00002 \textcolor{comment}{/*      \$OpenBSD: cryptodev.h,v 1.31 2002/06/11 11:14:29 beck Exp \$     */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00003}00003 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00004}00004 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00005}00005 \textcolor{comment}{ * The author of this code is Angelos D. Keromytis (angelos@cis.upenn.edu)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00006}00006 \textcolor{comment}{ * Copyright (c) 2002-\/2006 Sam Leffler, Errno Consulting}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00007}00007 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00008}00008 \textcolor{comment}{ * This code was written by Angelos D. Keromytis in Athens, Greece, in}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00009}00009 \textcolor{comment}{ * February 2000. Network Security Technologies Inc. (NSTI) kindly}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00010}00010 \textcolor{comment}{ * supported the development of this code.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00011}00011 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00012}00012 \textcolor{comment}{ * Copyright (c) 2000 Angelos D. Keromytis}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00013}00013 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00014}00014 \textcolor{comment}{ * Permission to use, copy, and modify this software with or without fee}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00015}00015 \textcolor{comment}{ * is hereby granted, provided that this entire notice is included in}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00016}00016 \textcolor{comment}{ * all source code copies of any software which is or includes a copy or}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00017}00017 \textcolor{comment}{ * modification of this software.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00018}00018 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00019}00019 \textcolor{comment}{ * THIS SOFTWARE IS BEING PROVIDED "{}AS IS"{}, WITHOUT ANY EXPRESS OR}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00020}00020 \textcolor{comment}{ * IMPLIED WARRANTY. IN PARTICULAR, NONE OF THE AUTHORS MAKES ANY}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00021}00021 \textcolor{comment}{ * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00022}00022 \textcolor{comment}{ * MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00023}00023 \textcolor{comment}{ * PURPOSE.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00024}00024 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00025}00025 \textcolor{comment}{ * Copyright (c) 2001 Theo de Raadt}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00026}00026 \textcolor{comment}{ * Copyright (c) 2014-\/2021 The FreeBSD Foundation}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00027}00027 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00028}00028 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00029}00029 \textcolor{comment}{ * Portions of this software were developed by John-\/Mark Gurney}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00030}00030 \textcolor{comment}{ * under sponsorship of the FreeBSD Foundation and}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00031}00031 \textcolor{comment}{ * Rubicon Communications, LLC (Netgate).}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00032}00032 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00033}00033 \textcolor{comment}{ * Portions of this software were developed by Ararat River}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00034}00034 \textcolor{comment}{ * Consulting, LLC under sponsorship of the FreeBSD Foundation.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00035}00035 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00036}00036 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00037}00037 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00038}00038 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00039}00039 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00040}00040 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00041}00041 \textcolor{comment}{ *   notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00042}00042 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00043}00043 \textcolor{comment}{ *   notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00044}00044 \textcolor{comment}{ *   documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00045}00045 \textcolor{comment}{ * 3. The name of the author may not be used to endorse or promote products}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00046}00046 \textcolor{comment}{ *   derived from this software without specific prior written permission.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00047}00047 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00048}00048 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00049}00049 \textcolor{comment}{ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00050}00050 \textcolor{comment}{ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00051}00051 \textcolor{comment}{ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00052}00052 \textcolor{comment}{ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00053}00053 \textcolor{comment}{ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00054}00054 \textcolor{comment}{ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00055}00055 \textcolor{comment}{ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00056}00056 \textcolor{comment}{ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00057}00057 \textcolor{comment}{ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00058}00058 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00059}00059 \textcolor{comment}{ * Effort sponsored in part by the Defense Advanced Research Projects}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00060}00060 \textcolor{comment}{ * Agency (DARPA) and Air Force Research Laboratory, Air Force}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00061}00061 \textcolor{comment}{ * Materiel Command, USAF, under agreement number F30602-\/01-\/2-\/0537.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00062}00062 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00063}00063 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00064}00064 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00065}00065 \textcolor{preprocessor}{\#ifndef \_CRYPTO\_CRYPTO\_H\_}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00066}00066 \textcolor{preprocessor}{\#define \_CRYPTO\_CRYPTO\_H\_}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00067}00067 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00068}00068 \textcolor{preprocessor}{\#include <sys/ioccom.h>}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00069}00069 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00070}00070 \textcolor{preprocessor}{\#ifdef \_KERNEL}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00071}00071 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{__cryptodev_8h}{opencrypto/\_cryptodev.h}}>}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00072}00072 \textcolor{preprocessor}{\#include <sys/\_task.h>}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00073}00073 \textcolor{preprocessor}{\#include <sys/libkern.h>}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00074}00074 \textcolor{preprocessor}{\#include <sys/time.h>}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00075}00075 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00076}00076 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00077}00077 \textcolor{comment}{/* Some initial values */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00078}\mbox{\hyperlink{cryptodev_8h_ae7f6718be776218fc89dbad37904adf8}{00078}} \textcolor{preprocessor}{\#define CRYPTO\_DRIVERS\_INITIAL  4}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00079}00079 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00080}00080 \textcolor{comment}{/* Hash values */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00081}\mbox{\hyperlink{cryptodev_8h_af81010a522a9d7069529c69739ce2e6b}{00081}} \textcolor{preprocessor}{\#define NULL\_HASH\_LEN           16}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00082}\mbox{\hyperlink{cryptodev_8h_abc253430c98bab25e98aa93483fd6ce7}{00082}} \textcolor{preprocessor}{\#define SHA1\_HASH\_LEN           20}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00083}\mbox{\hyperlink{cryptodev_8h_aa57b4cdc9b6169917910983f735b1dd7}{00083}} \textcolor{preprocessor}{\#define RIPEMD160\_HASH\_LEN      20}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00084}\mbox{\hyperlink{cryptodev_8h_a88ff3d35ea5fb8ce0a327a8d59437c2d}{00084}} \textcolor{preprocessor}{\#define SHA2\_224\_HASH\_LEN       28}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00085}\mbox{\hyperlink{cryptodev_8h_afbd4febd20a225f5503ad4162ea74251}{00085}} \textcolor{preprocessor}{\#define SHA2\_256\_HASH\_LEN       32}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00086}\mbox{\hyperlink{cryptodev_8h_a65adb708ef4c0abd4722885ec8740e60}{00086}} \textcolor{preprocessor}{\#define SHA2\_384\_HASH\_LEN       48}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00087}\mbox{\hyperlink{cryptodev_8h_a24a6c8e9035ab59b4ed73bdc97fd4366}{00087}} \textcolor{preprocessor}{\#define SHA2\_512\_HASH\_LEN       64}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00088}\mbox{\hyperlink{cryptodev_8h_a95bcdcbda80aacecdac6d55a25c79893}{00088}} \textcolor{preprocessor}{\#define AES\_GMAC\_HASH\_LEN       16}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00089}\mbox{\hyperlink{cryptodev_8h_aea4eabbeeb4ef6aa2f4b6dd53c0c5add}{00089}} \textcolor{preprocessor}{\#define POLY1305\_HASH\_LEN       16}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00090}\mbox{\hyperlink{cryptodev_8h_ac2ae88aad7e64defa5f4f33f9befcbe8}{00090}} \textcolor{preprocessor}{\#define AES\_CBC\_MAC\_HASH\_LEN    16}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00091}00091 \textcolor{comment}{/* Maximum hash algorithm result length */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00092}\mbox{\hyperlink{cryptodev_8h_ada74e6ad20b83b152004b396206c2e95}{00092}} \textcolor{preprocessor}{\#define HASH\_MAX\_LEN            SHA2\_512\_HASH\_LEN }\textcolor{comment}{/* Keep this updated */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00093}00093 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00094}\mbox{\hyperlink{cryptodev_8h_ab29ebd3b274e21e96fb89f5993e0ed4b}{00094}} \textcolor{preprocessor}{\#define SHA1\_BLOCK\_LEN          64}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00095}\mbox{\hyperlink{cryptodev_8h_a8658db3ec47e83e65c49d98d1ca660bc}{00095}} \textcolor{preprocessor}{\#define RIPEMD160\_BLOCK\_LEN     64}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00096}\mbox{\hyperlink{cryptodev_8h_a694dd1a98f6feeb98e28d6c6e7d10549}{00096}} \textcolor{preprocessor}{\#define SHA2\_224\_BLOCK\_LEN      64}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00097}\mbox{\hyperlink{cryptodev_8h_a4cb517c0b7c86f621a0bd888618a0b22}{00097}} \textcolor{preprocessor}{\#define SHA2\_256\_BLOCK\_LEN      64}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00098}\mbox{\hyperlink{cryptodev_8h_af83dc37508af6580b73476f0c56915b0}{00098}} \textcolor{preprocessor}{\#define SHA2\_384\_BLOCK\_LEN      128}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00099}\mbox{\hyperlink{cryptodev_8h_a9aacaa168f168e2a2ae5a8b3009444f5}{00099}} \textcolor{preprocessor}{\#define SHA2\_512\_BLOCK\_LEN      128}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00100}\mbox{\hyperlink{cryptodev_8h_a1f2e6bffea0e4978d96105e69a8997b6}{00100}} \textcolor{preprocessor}{\#define POLY1305\_BLOCK\_LEN      16}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00101}00101 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00102}00102 \textcolor{comment}{/* HMAC values */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00103}\mbox{\hyperlink{cryptodev_8h_ac1b87d062903edea28e77c30ec936201}{00103}} \textcolor{preprocessor}{\#define NULL\_HMAC\_BLOCK\_LEN             64}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00104}00104 \textcolor{comment}{/* Maximum HMAC block length */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00105}\mbox{\hyperlink{cryptodev_8h_af5aed8f2aac70f2999ebde381e79b26a}{00105}} \textcolor{preprocessor}{\#define HMAC\_MAX\_BLOCK\_LEN      SHA2\_512\_BLOCK\_LEN }\textcolor{comment}{/* Keep this updated */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00106}\mbox{\hyperlink{cryptodev_8h_adfb98296250b66e15591e555a419d69f}{00106}} \textcolor{preprocessor}{\#define HMAC\_IPAD\_VAL                   0x36}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00107}\mbox{\hyperlink{cryptodev_8h_ad4dc02464360d7718efb3a73a7869253}{00107}} \textcolor{preprocessor}{\#define HMAC\_OPAD\_VAL                   0x5C}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00108}00108 \textcolor{comment}{/* HMAC Key Length */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00109}\mbox{\hyperlink{cryptodev_8h_a562483fa5988a413bf0d34714347a063}{00109}} \textcolor{preprocessor}{\#define AES\_128\_GMAC\_KEY\_LEN            16}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00110}\mbox{\hyperlink{cryptodev_8h_a1212f8ebb5895736db08e6493bee5325}{00110}} \textcolor{preprocessor}{\#define AES\_192\_GMAC\_KEY\_LEN            24}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00111}\mbox{\hyperlink{cryptodev_8h_a7dcc5099e3d589048c12b3dbb256533a}{00111}} \textcolor{preprocessor}{\#define AES\_256\_GMAC\_KEY\_LEN            32}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00112}\mbox{\hyperlink{cryptodev_8h_a94a963a2818f5cfee29d64809e211a74}{00112}} \textcolor{preprocessor}{\#define AES\_128\_CBC\_MAC\_KEY\_LEN         16}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00113}\mbox{\hyperlink{cryptodev_8h_a25d969b40e482179fdf32f2661b224e1}{00113}} \textcolor{preprocessor}{\#define AES\_192\_CBC\_MAC\_KEY\_LEN         24}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00114}\mbox{\hyperlink{cryptodev_8h_a2ee3041732ed8b7e3a5d9b0a3708b653}{00114}} \textcolor{preprocessor}{\#define AES\_256\_CBC\_MAC\_KEY\_LEN         32}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00115}00115 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00116}\mbox{\hyperlink{cryptodev_8h_a48676f3578a9fb4bc4ca54676b0a114b}{00116}} \textcolor{preprocessor}{\#define POLY1305\_KEY\_LEN                32}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00117}00117 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00118}00118 \textcolor{comment}{/* Encryption algorithm block sizes */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00119}\mbox{\hyperlink{cryptodev_8h_a4afc9e972e18a0663e1c5cf128796521}{00119}} \textcolor{preprocessor}{\#define NULL\_BLOCK\_LEN          4       }\textcolor{comment}{/* IPsec to maintain alignment */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00120}\mbox{\hyperlink{cryptodev_8h_a41b766b381287e296333b13ea08c303c}{00120}} \textcolor{preprocessor}{\#define RIJNDAEL128\_BLOCK\_LEN   16}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00121}\mbox{\hyperlink{cryptodev_8h_a17c02e9378a5051e9520ae097b090d23}{00121}} \textcolor{preprocessor}{\#define AES\_BLOCK\_LEN           16}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00122}\mbox{\hyperlink{cryptodev_8h_a40cf3d59705dae36c7c97a038b84e9a9}{00122}} \textcolor{preprocessor}{\#define AES\_ICM\_BLOCK\_LEN       1}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00123}\mbox{\hyperlink{cryptodev_8h_a3040ae49bd134c59966cd72f8b1cb4ad}{00123}} \textcolor{preprocessor}{\#define CAMELLIA\_BLOCK\_LEN      16}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00124}\mbox{\hyperlink{cryptodev_8h_a2c6baeb606c4a5c37b9610b73d8cb922}{00124}} \textcolor{preprocessor}{\#define CHACHA20\_NATIVE\_BLOCK\_LEN       64}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00125}\mbox{\hyperlink{cryptodev_8h_a41d03c23326c43b9616af3a007a34eff}{00125}} \textcolor{preprocessor}{\#define EALG\_MAX\_BLOCK\_LEN      CHACHA20\_NATIVE\_BLOCK\_LEN }\textcolor{comment}{/* Keep this updated */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00126}00126 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00127}00127 \textcolor{comment}{/* IV Lengths */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00128}00128 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00129}\mbox{\hyperlink{cryptodev_8h_ab56cf0e4c330a877c149eb5d41a4fa8f}{00129}} \textcolor{preprocessor}{\#define AES\_GCM\_IV\_LEN          12}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00130}\mbox{\hyperlink{cryptodev_8h_af79746ba18cd6c38719533594cbc41e3}{00130}} \textcolor{preprocessor}{\#define AES\_CCM\_IV\_LEN          12}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00131}\mbox{\hyperlink{cryptodev_8h_a20e500042f8b0d49ff23685e25edbda6}{00131}} \textcolor{preprocessor}{\#define AES\_XTS\_IV\_LEN          8}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00132}\mbox{\hyperlink{cryptodev_8h_aec25404674081ef2634e3085037934e4}{00132}} \textcolor{preprocessor}{\#define AES\_XTS\_ALPHA           0x87    }\textcolor{comment}{/* GF(2\string^128) generator polynomial */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00133}\mbox{\hyperlink{cryptodev_8h_ace9ce46ec91c53b7ab0eb75311a58deb}{00133}} \textcolor{preprocessor}{\#define CHACHA20\_POLY1305\_IV\_LEN        12}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00134}\mbox{\hyperlink{cryptodev_8h_a28ce911d3a66e8cbb55b594037284b87}{00134}} \textcolor{preprocessor}{\#define XCHACHA20\_POLY1305\_IV\_LEN       24}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00135}00135 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00136}00136 \textcolor{comment}{/* Min and Max Encryption Key Sizes */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00137}\mbox{\hyperlink{cryptodev_8h_ae8dce422d1ef18ddbe4fbbf61c82fc03}{00137}} \textcolor{preprocessor}{\#define NULL\_MIN\_KEY            0}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00138}\mbox{\hyperlink{cryptodev_8h_aa4a5e5510787cf1f036ef2cc879726f0}{00138}} \textcolor{preprocessor}{\#define NULL\_MAX\_KEY            256 }\textcolor{comment}{/* 2048 bits, max key */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00139}\mbox{\hyperlink{cryptodev_8h_ae70baf91ab08a7eb388c5fb4010e260e}{00139}} \textcolor{preprocessor}{\#define RIJNDAEL\_MIN\_KEY        16}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00140}\mbox{\hyperlink{cryptodev_8h_a61fa7f275de44757c4e0fb9f46082bf7}{00140}} \textcolor{preprocessor}{\#define RIJNDAEL\_MAX\_KEY        32}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00141}\mbox{\hyperlink{cryptodev_8h_aa1a42152bce43a6da898d7f8f0b98626}{00141}} \textcolor{preprocessor}{\#define AES\_MIN\_KEY             RIJNDAEL\_MIN\_KEY}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00142}\mbox{\hyperlink{cryptodev_8h_a5834e264c875ffd65fc88724a4dbf7b1}{00142}} \textcolor{preprocessor}{\#define AES\_MAX\_KEY             RIJNDAEL\_MAX\_KEY}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00143}\mbox{\hyperlink{cryptodev_8h_a41e14a44684a8c9e23dfb8a5b84503c2}{00143}} \textcolor{preprocessor}{\#define AES\_XTS\_MIN\_KEY         (2 * AES\_MIN\_KEY)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00144}\mbox{\hyperlink{cryptodev_8h_aa55d8c8e74a46d9c269db65ed2d58fa5}{00144}} \textcolor{preprocessor}{\#define AES\_XTS\_MAX\_KEY         (2 * AES\_MAX\_KEY)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00145}\mbox{\hyperlink{cryptodev_8h_a3efdd401efb108d915c2554b7f4452f2}{00145}} \textcolor{preprocessor}{\#define CAMELLIA\_MIN\_KEY        16}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00146}\mbox{\hyperlink{cryptodev_8h_a34c8e2e2085ea5d7a56ec778cf75fbbd}{00146}} \textcolor{preprocessor}{\#define CAMELLIA\_MAX\_KEY        32}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00147}\mbox{\hyperlink{cryptodev_8h_ab4662e0cf7356df33e931a85a49e0e87}{00147}} \textcolor{preprocessor}{\#define CHACHA20\_POLY1305\_KEY   32}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00148}\mbox{\hyperlink{cryptodev_8h_ab345f924de7a1f1c714cc0de113d39d8}{00148}} \textcolor{preprocessor}{\#define XCHACHA20\_POLY1305\_KEY  32}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00149}00149 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00150}00150 \textcolor{comment}{/* Maximum hash algorithm result length */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00151}\mbox{\hyperlink{cryptodev_8h_abbd91fda61e806b4b362920cf2547771}{00151}} \textcolor{preprocessor}{\#define AALG\_MAX\_RESULT\_LEN     64 }\textcolor{comment}{/* Keep this updated */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00152}00152 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00153}\mbox{\hyperlink{cryptodev_8h_ab3c021050fbfae6bb1541afa33c3dcd4}{00153}} \textcolor{preprocessor}{\#define CRYPTO\_ALGORITHM\_MIN    1}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00154}\mbox{\hyperlink{cryptodev_8h_a884cf283ff330e7e401e017bc3a037eb}{00154}} \textcolor{preprocessor}{\#define CRYPTO\_DES\_CBC          1}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00155}\mbox{\hyperlink{cryptodev_8h_a1102b8e221c5f6a6c6c0d29df5a2e6fa}{00155}} \textcolor{preprocessor}{\#define CRYPTO\_3DES\_CBC         2}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00156}\mbox{\hyperlink{cryptodev_8h_a2b5c8bcb9e5d298ef74054c35866ab60}{00156}} \textcolor{preprocessor}{\#define CRYPTO\_BLF\_CBC          3}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00157}\mbox{\hyperlink{cryptodev_8h_ac2bc87652f2b66631c2566caf83fb480}{00157}} \textcolor{preprocessor}{\#define CRYPTO\_CAST\_CBC         4}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00158}\mbox{\hyperlink{cryptodev_8h_ade99f7f34181a2c31d077d1cd8db600b}{00158}} \textcolor{preprocessor}{\#define CRYPTO\_SKIPJACK\_CBC     5}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00159}\mbox{\hyperlink{cryptodev_8h_a42178cd17635b9d68f38ea7360cb96e9}{00159}} \textcolor{preprocessor}{\#define CRYPTO\_MD5\_HMAC         6}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00160}\mbox{\hyperlink{cryptodev_8h_a3e1d6229f4614428d2f10c58fbc5a807}{00160}} \textcolor{preprocessor}{\#define CRYPTO\_SHA1\_HMAC        7}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00161}\mbox{\hyperlink{cryptodev_8h_afd0aa309bb6f101b0709b35b644390c6}{00161}} \textcolor{preprocessor}{\#define CRYPTO\_RIPEMD160\_HMAC   8}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00162}\mbox{\hyperlink{cryptodev_8h_a4e3b93c85048a8bcb899ff83b7ab3488}{00162}} \textcolor{preprocessor}{\#define CRYPTO\_MD5\_KPDK         9}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00163}\mbox{\hyperlink{cryptodev_8h_ac7125a8e28129ec0d83632ea01d30806}{00163}} \textcolor{preprocessor}{\#define CRYPTO\_SHA1\_KPDK        10}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00164}\mbox{\hyperlink{cryptodev_8h_a2569b8b5f05604abd70c6f8507daed1e}{00164}} \textcolor{preprocessor}{\#define CRYPTO\_RIJNDAEL128\_CBC  11 }\textcolor{comment}{/* 128 bit blocksize */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00165}\mbox{\hyperlink{cryptodev_8h_a28e9f7ce2ceb8ae28fc19c18c65f97f6}{00165}} \textcolor{preprocessor}{\#define CRYPTO\_AES\_CBC          11 }\textcolor{comment}{/* 128 bit blocksize -\/-\/ the same as above */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00166}\mbox{\hyperlink{cryptodev_8h_ab8d3df5a0eab371651ca1284e7f22ef8}{00166}} \textcolor{preprocessor}{\#define CRYPTO\_ARC4             12}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00167}\mbox{\hyperlink{cryptodev_8h_a1f414b4e8693a725acbadc8dd916a0ab}{00167}} \textcolor{preprocessor}{\#define CRYPTO\_MD5              13}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00168}\mbox{\hyperlink{cryptodev_8h_a782ed7b7cd4f74c489ad1ed0ed7bbfe0}{00168}} \textcolor{preprocessor}{\#define CRYPTO\_SHA1             14}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00169}\mbox{\hyperlink{cryptodev_8h_a57ec92ae57b017c0e45a488d9355eb4d}{00169}} \textcolor{preprocessor}{\#define CRYPTO\_NULL\_HMAC        15}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00170}\mbox{\hyperlink{cryptodev_8h_a4c02cc7c3a960c981c5dffbf910f5668}{00170}} \textcolor{preprocessor}{\#define CRYPTO\_NULL\_CBC         16}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00171}\mbox{\hyperlink{cryptodev_8h_a2efcf7675434390159eb2bdef9cde7a2}{00171}} \textcolor{preprocessor}{\#define CRYPTO\_DEFLATE\_COMP     17 }\textcolor{comment}{/* Deflate compression algorithm */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00172}\mbox{\hyperlink{cryptodev_8h_ac358ddc2cec141463613a1be15ea8dc5}{00172}} \textcolor{preprocessor}{\#define CRYPTO\_SHA2\_256\_HMAC    18}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00173}\mbox{\hyperlink{cryptodev_8h_a8b54ddf724dd5b486d955a0a3f4abcd3}{00173}} \textcolor{preprocessor}{\#define CRYPTO\_SHA2\_384\_HMAC    19}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00174}\mbox{\hyperlink{cryptodev_8h_a14065706e3b9be22817fecbe1965429b}{00174}} \textcolor{preprocessor}{\#define CRYPTO\_SHA2\_512\_HMAC    20}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00175}\mbox{\hyperlink{cryptodev_8h_a06038fbfefa71c03d91a61fd5790e276}{00175}} \textcolor{preprocessor}{\#define CRYPTO\_CAMELLIA\_CBC     21}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00176}\mbox{\hyperlink{cryptodev_8h_ac2ab471b0c55c3e8a2aeca85977f458e}{00176}} \textcolor{preprocessor}{\#define CRYPTO\_AES\_XTS          22}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00177}\mbox{\hyperlink{cryptodev_8h_a6d972858d6763888febebea7bb50b76b}{00177}} \textcolor{preprocessor}{\#define CRYPTO\_AES\_ICM          23 }\textcolor{comment}{/* commonly known as CTR mode */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00178}\mbox{\hyperlink{cryptodev_8h_a936ecd160bcfdff371ac1e9994a46cf5}{00178}} \textcolor{preprocessor}{\#define CRYPTO\_AES\_NIST\_GMAC    24 }\textcolor{comment}{/* GMAC only */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00179}\mbox{\hyperlink{cryptodev_8h_a250e97ea4137501b4a8a7f28e20da3a6}{00179}} \textcolor{preprocessor}{\#define CRYPTO\_AES\_NIST\_GCM\_16  25 }\textcolor{comment}{/* 16 byte ICV */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00180}00180 \textcolor{preprocessor}{\#ifdef \_KERNEL}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00181}\mbox{\hyperlink{cryptodev_8h_a6e2b0bd611cfab1d73852cb509771623}{00181}} \textcolor{preprocessor}{\#define CRYPTO\_AES\_128\_NIST\_GMAC 26 }\textcolor{comment}{/* auth side */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00182}\mbox{\hyperlink{cryptodev_8h_a356bbd391c39d51b74d98324b39ddadf}{00182}} \textcolor{preprocessor}{\#define CRYPTO\_AES\_192\_NIST\_GMAC 27 }\textcolor{comment}{/* auth side */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00183}\mbox{\hyperlink{cryptodev_8h_a173a68e8ac5fa5c53a3b5bbfa67ed85b}{00183}} \textcolor{preprocessor}{\#define CRYPTO\_AES\_256\_NIST\_GMAC 28 }\textcolor{comment}{/* auth side */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00184}00184 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00185}\mbox{\hyperlink{cryptodev_8h_a2ab1896270e3632a47e367d073d7f7ee}{00185}} \textcolor{preprocessor}{\#define CRYPTO\_BLAKE2B          29 }\textcolor{comment}{/* Blake2b hash */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00186}\mbox{\hyperlink{cryptodev_8h_ac5e9b0ec52f4b4b6bee41571676bd17a}{00186}} \textcolor{preprocessor}{\#define CRYPTO\_BLAKE2S          30 }\textcolor{comment}{/* Blake2s hash */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00187}\mbox{\hyperlink{cryptodev_8h_ab5fc4e2b951fdd180a6fe95a6437554d}{00187}} \textcolor{preprocessor}{\#define CRYPTO\_CHACHA20         31 }\textcolor{comment}{/* Chacha20 stream cipher */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00188}\mbox{\hyperlink{cryptodev_8h_ae73b3cc9301509dd64350629b9dc3788}{00188}} \textcolor{preprocessor}{\#define CRYPTO\_SHA2\_224\_HMAC    32}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00189}\mbox{\hyperlink{cryptodev_8h_a230fa7a9bbc7cf966c7053e441781b01}{00189}} \textcolor{preprocessor}{\#define CRYPTO\_RIPEMD160        33}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00190}\mbox{\hyperlink{cryptodev_8h_ac5734a8fe2beb68c100fbb6fc7c5d1e0}{00190}} \textcolor{preprocessor}{\#define CRYPTO\_SHA2\_224         34}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00191}\mbox{\hyperlink{cryptodev_8h_a6ce8d1673710d8b41a4ad5d554ca5ab7}{00191}} \textcolor{preprocessor}{\#define CRYPTO\_SHA2\_256         35}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00192}\mbox{\hyperlink{cryptodev_8h_ac198511284e2aee2c70a0712af2a500c}{00192}} \textcolor{preprocessor}{\#define CRYPTO\_SHA2\_384         36}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00193}\mbox{\hyperlink{cryptodev_8h_a9b7fd3c9eef45dcbe2d0052d73ce063f}{00193}} \textcolor{preprocessor}{\#define CRYPTO\_SHA2\_512         37}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00194}\mbox{\hyperlink{cryptodev_8h_a8c12cc7bae88295fc19e5045974349cc}{00194}} \textcolor{preprocessor}{\#define CRYPTO\_POLY1305         38}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00195}\mbox{\hyperlink{cryptodev_8h_a5e01c46f380500faf191c414b9b25f7f}{00195}} \textcolor{preprocessor}{\#define CRYPTO\_AES\_CCM\_CBC\_MAC  39      }\textcolor{comment}{/* auth side */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00196}\mbox{\hyperlink{cryptodev_8h_ad2b05441f7f4a9a8a633914f45ccc648}{00196}} \textcolor{preprocessor}{\#define CRYPTO\_AES\_CCM\_16       40      }\textcolor{comment}{/* cipher side */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00197}\mbox{\hyperlink{cryptodev_8h_a802780bb96ef9c241b77c3a84d29a9a4}{00197}} \textcolor{preprocessor}{\#define CRYPTO\_CHACHA20\_POLY1305 41     }\textcolor{comment}{/* combined AEAD cipher per RFC 8439 */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00198}\mbox{\hyperlink{cryptodev_8h_a4fa16bbefbff7f811a9330860a1c0212}{00198}} \textcolor{preprocessor}{\#define CRYPTO\_XCHACHA20\_POLY1305 42}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00199}\mbox{\hyperlink{cryptodev_8h_ad9f5ab2e6126ffcb23358a3a415dbc68}{00199}} \textcolor{preprocessor}{\#define CRYPTO\_ALGORITHM\_MAX    42      }\textcolor{comment}{/* Keep updated -\/ see below */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00200}00200 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00201}\mbox{\hyperlink{cryptodev_8h_a0dc67d756ac18a4295da4245d347428f}{00201}} \textcolor{preprocessor}{\#define CRYPTO\_ALGO\_VALID(x)    ((x) >= CRYPTO\_ALGORITHM\_MIN \&\& \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00202}00202 \textcolor{preprocessor}{                                 (x) <= CRYPTO\_ALGORITHM\_MAX)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00203}00203 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00204}00204 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00205}00205 \textcolor{comment}{ * Crypto driver/device flags.  They can set in the crid}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00206}00206 \textcolor{comment}{ * parameter when creating a session or submitting a key}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00207}00207 \textcolor{comment}{ * op to affect the device/driver assigned.  If neither}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00208}00208 \textcolor{comment}{ * of these are specified then the crid is assumed to hold}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00209}00209 \textcolor{comment}{ * the driver id of an existing (and suitable) device that}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00210}00210 \textcolor{comment}{ * must be used to satisfy the request.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00211}00211 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00212}\mbox{\hyperlink{cryptodev_8h_a180a7849c8d85a662eaec80ce75e24e5}{00212}} \textcolor{preprocessor}{\#define CRYPTO\_FLAG\_HARDWARE    0x01000000      }\textcolor{comment}{/* hardware accelerated */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00213}\mbox{\hyperlink{cryptodev_8h_a6da30bc4a9ef5589e4fb58d5f6e630b7}{00213}} \textcolor{preprocessor}{\#define CRYPTO\_FLAG\_SOFTWARE    0x02000000      }\textcolor{comment}{/* software implementation */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00214}00214 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00215}00215 \textcolor{comment}{/* Does the kernel support vmpage buffers on this platform? */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00216}00216 \textcolor{preprocessor}{\#ifdef \_\_powerpc\_\_}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00217}00217 \textcolor{preprocessor}{\#define CRYPTO\_MAY\_HAVE\_VMPAGE  1}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00218}00218 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00219}\mbox{\hyperlink{cryptodev_8h_a726e8bb5594df8faccf30c60858e9fb2}{00219}} \textcolor{preprocessor}{\#define CRYPTO\_MAY\_HAVE\_VMPAGE  ( PMAP\_HAS\_DMAP )}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00220}00220 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00221}00221 \textcolor{comment}{/* Does the currently running system support vmpage buffers on this platform? */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00222}\mbox{\hyperlink{cryptodev_8h_a981faf4c172bcb68cc6a7505aaf4fb70}{00222}} \textcolor{preprocessor}{\#define CRYPTO\_HAS\_VMPAGE       ( PMAP\_HAS\_DMAP )}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00223}00223 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00224}00224 \textcolor{comment}{/* NB: deprecated */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00225}\mbox{\hyperlink{structsession__op}{00225}} \textcolor{keyword}{struct }\mbox{\hyperlink{structsession__op}{session\_op}} \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00226}\mbox{\hyperlink{structsession__op_ad37e9f835ca323f3ded5ea40f373d462}{00226}}         uint32\_t        \mbox{\hyperlink{structsession__op_ad37e9f835ca323f3ded5ea40f373d462}{cipher}};           \textcolor{comment}{/* ie. CRYPTO\_AES\_CBC */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00227}\mbox{\hyperlink{structsession__op_a8d957c5127cf2231dc4c1abb2c427b89}{00227}}         uint32\_t        \mbox{\hyperlink{structsession__op_a8d957c5127cf2231dc4c1abb2c427b89}{mac}};         \textcolor{comment}{/* ie. CRYPTO\_SHA2\_256\_HMAC */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00228}00228 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00229}\mbox{\hyperlink{structsession__op_a4bcb2b5592e38c00837f8cc7d1b95a41}{00229}}         uint32\_t        \mbox{\hyperlink{structsession__op_a4bcb2b5592e38c00837f8cc7d1b95a41}{keylen}};           \textcolor{comment}{/* cipher key */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00230}\mbox{\hyperlink{structsession__op_a92958331113bb057bb9bf90b9c303e75}{00230}}         \textcolor{keyword}{const} \textcolor{keywordtype}{void}      *\mbox{\hyperlink{structsession__op_a92958331113bb057bb9bf90b9c303e75}{key}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00231}\mbox{\hyperlink{structsession__op_a910003e92bb5b188061a9b229350f165}{00231}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structsession__op_a910003e92bb5b188061a9b229350f165}{mackeylen}};     \textcolor{comment}{/* mac key */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00232}\mbox{\hyperlink{structsession__op_af47807250971023fd5757c8e4e23683e}{00232}}         \textcolor{keyword}{const} \textcolor{keywordtype}{void}      *\mbox{\hyperlink{structsession__op_af47807250971023fd5757c8e4e23683e}{mackey}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00233}00233 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00234}\mbox{\hyperlink{structsession__op_a46310e1e320dd797a57c20388f1517b8}{00234}}         uint32\_t        \mbox{\hyperlink{structsession__op_a46310e1e320dd797a57c20388f1517b8}{ses}};         \textcolor{comment}{/* returns: session \# */} }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00235}00235 \};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00236}00236 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00237}00237 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00238}00238 \textcolor{comment}{ * session and crypt \_op structs are used by userspace programs to interact}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00239}00239 \textcolor{comment}{ * with /dev/crypto.  Confusingly, the internal kernel interface is named}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00240}00240 \textcolor{comment}{ * "{}cryptop"{} (no underscore).}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00241}00241 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00242}\mbox{\hyperlink{structsession2__op}{00242}} \textcolor{keyword}{struct }\mbox{\hyperlink{structsession2__op}{session2\_op}} \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00243}\mbox{\hyperlink{structsession2__op_a0f18abc94c820e2477e282f7a5bd210e}{00243}}         uint32\_t        \mbox{\hyperlink{structsession2__op_a0f18abc94c820e2477e282f7a5bd210e}{cipher}};           \textcolor{comment}{/* ie. CRYPTO\_AES\_CBC */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00244}\mbox{\hyperlink{structsession2__op_a9eb5f4ae48b33c6a680d14a7ef1601b5}{00244}}         uint32\_t        \mbox{\hyperlink{structsession2__op_a9eb5f4ae48b33c6a680d14a7ef1601b5}{mac}};         \textcolor{comment}{/* ie. CRYPTO\_SHA2\_256\_HMAC */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00245}00245 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00246}\mbox{\hyperlink{structsession2__op_a2213e9da12e64b8bc5c80ef679fadf1a}{00246}}         uint32\_t        \mbox{\hyperlink{structsession2__op_a2213e9da12e64b8bc5c80ef679fadf1a}{keylen}};           \textcolor{comment}{/* cipher key */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00247}\mbox{\hyperlink{structsession2__op_a5b6b27fbcefd31acde98b8ee1e4434ae}{00247}}         \textcolor{keyword}{const} \textcolor{keywordtype}{void}      *\mbox{\hyperlink{structsession2__op_a5b6b27fbcefd31acde98b8ee1e4434ae}{key}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00248}\mbox{\hyperlink{structsession2__op_acae88ddd74be92b5f7664fb0e10608d3}{00248}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structsession2__op_acae88ddd74be92b5f7664fb0e10608d3}{mackeylen}};     \textcolor{comment}{/* mac key */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00249}\mbox{\hyperlink{structsession2__op_a40d2402e64ded9326355cba42c191f37}{00249}}         \textcolor{keyword}{const} \textcolor{keywordtype}{void}      *\mbox{\hyperlink{structsession2__op_a40d2402e64ded9326355cba42c191f37}{mackey}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00250}00250 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00251}\mbox{\hyperlink{structsession2__op_a9740a4825576ad99826ee41583613cf1}{00251}}         uint32\_t        \mbox{\hyperlink{structsession2__op_a9740a4825576ad99826ee41583613cf1}{ses}};         \textcolor{comment}{/* returns: session \# */} }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00252}\mbox{\hyperlink{structsession2__op_a1632ee493138fb519384946b2f670707}{00252}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structsession2__op_a1632ee493138fb519384946b2f670707}{crid}};               \textcolor{comment}{/* driver id + flags (rw) */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00253}\mbox{\hyperlink{structsession2__op_aa9770d6466f468eff31e92c0d7b5bf84}{00253}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structsession2__op_aa9770d6466f468eff31e92c0d7b5bf84}{ivlen}};             \textcolor{comment}{/* length of nonce/IV */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00254}\mbox{\hyperlink{structsession2__op_a656d003dfd782925eaf8d413c3c3ed7f}{00254}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structsession2__op_a656d003dfd782925eaf8d413c3c3ed7f}{maclen}};           \textcolor{comment}{/* length of MAC/tag */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00255}\mbox{\hyperlink{structsession2__op_a517847d355a16ef9a81776d6b610bc07}{00255}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structsession2__op_a517847d355a16ef9a81776d6b610bc07}{pad}}[2];              \textcolor{comment}{/* for future expansion */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00256}00256 \};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00257}00257 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00258}\mbox{\hyperlink{structcrypt__op}{00258}} \textcolor{keyword}{struct }\mbox{\hyperlink{structcrypt__op}{crypt\_op}} \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00259}\mbox{\hyperlink{structcrypt__op_a7346f56590520b319e4a7d2316dbaa09}{00259}}         uint32\_t        \mbox{\hyperlink{structcrypt__op_a7346f56590520b319e4a7d2316dbaa09}{ses}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00260}\mbox{\hyperlink{structcrypt__op_afdcd255362407e9a9cd9615b4a64651f}{00260}}         uint16\_t        \mbox{\hyperlink{structcrypt__op_afdcd255362407e9a9cd9615b4a64651f}{op}};           \textcolor{comment}{/* i.e. COP\_ENCRYPT */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00261}\mbox{\hyperlink{cryptodev_8h_a30f4f5f37a6c62c0c12baeebf26c1426}{00261}} \textcolor{preprocessor}{\#define COP\_ENCRYPT     1}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00262}\mbox{\hyperlink{cryptodev_8h_a073b04be237f7c26322d1c8fc9bdcd02}{00262}} \textcolor{preprocessor}{\#define COP\_DECRYPT     2}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00263}\mbox{\hyperlink{structcrypt__op_abfda42b69989f68a0fd42dd3c17aa525}{00263}}         uint16\_t        \mbox{\hyperlink{structcrypt__op_abfda42b69989f68a0fd42dd3c17aa525}{flags}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00264}\mbox{\hyperlink{cryptodev_8h_ac725894c5cd86bad43ee2d0860bb3699}{00264}} \textcolor{preprocessor}{\#define COP\_F\_CIPHER\_FIRST      0x0001  }\textcolor{comment}{/* Cipher before MAC. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00265}\mbox{\hyperlink{cryptodev_8h_ae025ff71bbdf60f5c46d387b8b009111}{00265}} \textcolor{preprocessor}{\#define COP\_F\_BATCH             0x0008  }\textcolor{comment}{/* Batch op if possible */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00266}\mbox{\hyperlink{structcrypt__op_a98473a2bf47264750190a660ae64e1c8}{00266}}         u\_int           \mbox{\hyperlink{structcrypt__op_a98473a2bf47264750190a660ae64e1c8}{len}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00267}\mbox{\hyperlink{structcrypt__op_aae239441489dad1d037c7f3c7d433aaa}{00267}}         \textcolor{keyword}{const} \textcolor{keywordtype}{void}      *\mbox{\hyperlink{structcrypt__op_aae239441489dad1d037c7f3c7d433aaa}{src}};                \textcolor{comment}{/* become iov[] inside kernel */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00268}\mbox{\hyperlink{structcrypt__op_ae2b7999229a06bd4f134ea8d28ed72be}{00268}}         \textcolor{keywordtype}{void}            *\mbox{\hyperlink{structcrypt__op_ae2b7999229a06bd4f134ea8d28ed72be}{dst}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00269}\mbox{\hyperlink{structcrypt__op_a2c9122a0dd1cdea160ce8fd7ad29107f}{00269}}         \textcolor{keywordtype}{void}            *\mbox{\hyperlink{structcrypt__op_a2c9122a0dd1cdea160ce8fd7ad29107f}{mac}};                \textcolor{comment}{/* must be big enough for chosen MAC */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00270}\mbox{\hyperlink{structcrypt__op_af338126481e0337841645e86eaf16906}{00270}}         \textcolor{keyword}{const} \textcolor{keywordtype}{void}      *\mbox{\hyperlink{structcrypt__op_af338126481e0337841645e86eaf16906}{iv}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00271}00271 \};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00272}00272 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00273}00273 \textcolor{comment}{/* op and flags the same as crypt\_op */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00274}\mbox{\hyperlink{structcrypt__aead}{00274}} \textcolor{keyword}{struct }\mbox{\hyperlink{structcrypt__aead}{crypt\_aead}} \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00275}\mbox{\hyperlink{structcrypt__aead_a8c4bc0e361eb3f5859dc7f02dc0ae69f}{00275}}         uint32\_t        \mbox{\hyperlink{structcrypt__aead_a8c4bc0e361eb3f5859dc7f02dc0ae69f}{ses}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00276}\mbox{\hyperlink{structcrypt__aead_a1570c288053471e75e6a89d720934160}{00276}}         uint16\_t        \mbox{\hyperlink{structcrypt__aead_a1570c288053471e75e6a89d720934160}{op}};           \textcolor{comment}{/* i.e. COP\_ENCRYPT */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00277}\mbox{\hyperlink{structcrypt__aead_acaf225363ab6b7018686bd6d3a97e09b}{00277}}         uint16\_t        \mbox{\hyperlink{structcrypt__aead_acaf225363ab6b7018686bd6d3a97e09b}{flags}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00278}\mbox{\hyperlink{structcrypt__aead_ad87048c6beadd6996495756868f2c92c}{00278}}         u\_int           \mbox{\hyperlink{structcrypt__aead_ad87048c6beadd6996495756868f2c92c}{len}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00279}\mbox{\hyperlink{structcrypt__aead_ad0e714730cbdf90247b09343dc19c01b}{00279}}         u\_int           \mbox{\hyperlink{structcrypt__aead_ad0e714730cbdf90247b09343dc19c01b}{aadlen}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00280}\mbox{\hyperlink{structcrypt__aead_a9d48440b3438caa5ce1eb6c24e2c58b5}{00280}}         u\_int           \mbox{\hyperlink{structcrypt__aead_a9d48440b3438caa5ce1eb6c24e2c58b5}{ivlen}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00281}\mbox{\hyperlink{structcrypt__aead_acb70d9e3a7a3a7c6b177861417ad46de}{00281}}         \textcolor{keyword}{const} \textcolor{keywordtype}{void}      *\mbox{\hyperlink{structcrypt__aead_acb70d9e3a7a3a7c6b177861417ad46de}{src}};                \textcolor{comment}{/* become iov[] inside kernel */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00282}\mbox{\hyperlink{structcrypt__aead_a9eb67c28568037aa6b4c90ab62c0b6e9}{00282}}         \textcolor{keywordtype}{void}            *\mbox{\hyperlink{structcrypt__aead_a9eb67c28568037aa6b4c90ab62c0b6e9}{dst}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00283}\mbox{\hyperlink{structcrypt__aead_a075eb9ae5b11b7a6c84a5df03b7cf3e4}{00283}}         \textcolor{keyword}{const} \textcolor{keywordtype}{void}      *\mbox{\hyperlink{structcrypt__aead_a075eb9ae5b11b7a6c84a5df03b7cf3e4}{aad}};                \textcolor{comment}{/* additional authenticated data */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00284}\mbox{\hyperlink{structcrypt__aead_a623179358b95e432089043b7cf2547bc}{00284}}         \textcolor{keywordtype}{void}            *\mbox{\hyperlink{structcrypt__aead_a623179358b95e432089043b7cf2547bc}{tag}};                \textcolor{comment}{/* must fit for chosen TAG length */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00285}\mbox{\hyperlink{structcrypt__aead_accb5e35b66cf2bb1ed5e3f060e09eda8}{00285}}         \textcolor{keyword}{const} \textcolor{keywordtype}{void}      *\mbox{\hyperlink{structcrypt__aead_accb5e35b66cf2bb1ed5e3f060e09eda8}{iv}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00286}00286 \};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00287}00287 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00288}00288 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00289}00289 \textcolor{comment}{ * Parameters for looking up a crypto driver/device by}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00290}00290 \textcolor{comment}{ * device name or by id.  The latter are returned for}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00291}00291 \textcolor{comment}{ * created sessions (crid) and completed key operations.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00292}00292 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00293}\mbox{\hyperlink{structcrypt__find__op}{00293}} \textcolor{keyword}{struct }\mbox{\hyperlink{structcrypt__find__op}{crypt\_find\_op}} \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00294}\mbox{\hyperlink{structcrypt__find__op_ae964664fd0ff85f8e97b0288db4a90f8}{00294}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcrypt__find__op_ae964664fd0ff85f8e97b0288db4a90f8}{crid}};               \textcolor{comment}{/* driver id + flags */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00295}\mbox{\hyperlink{structcrypt__find__op_abc6b7ef8e72656532c6fdff2391d4377}{00295}}         \textcolor{keywordtype}{char}            \mbox{\hyperlink{structcrypt__find__op_abc6b7ef8e72656532c6fdff2391d4377}{name}}[32];   \textcolor{comment}{/* device/driver name */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00296}00296 \};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00297}00297 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00298}\mbox{\hyperlink{cryptodev_8h_a76ef4a0e76d830e45e516dc2503cd87d}{00298}} \textcolor{preprocessor}{\#define CIOCGSESSION    \_IOWR('c', 101, struct session\_op)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00299}\mbox{\hyperlink{cryptodev_8h_a4eb64cdfe46879da0ea8dd9e72cceb04}{00299}} \textcolor{preprocessor}{\#define CIOCFSESSION    \_IOW('c', 102, uint32\_t)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00300}\mbox{\hyperlink{cryptodev_8h_a2a2a9992c0ac10317529058377e40848}{00300}} \textcolor{preprocessor}{\#define CIOCCRYPT       \_IOWR('c', 103, struct crypt\_op)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00301}\mbox{\hyperlink{cryptodev_8h_a5a752e9587475ee7a2d1086e6786bea1}{00301}} \textcolor{preprocessor}{\#define CIOCGSESSION2   \_IOWR('c', 106, struct session2\_op)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00302}\mbox{\hyperlink{cryptodev_8h_ac1701d95d0531f4a6de6ebdff91c6a43}{00302}} \textcolor{preprocessor}{\#define CIOCFINDDEV     \_IOWR('c', 108, struct crypt\_find\_op)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00303}\mbox{\hyperlink{cryptodev_8h_ad4313b52ebc51f3d6bfbb3bcce58d8b3}{00303}} \textcolor{preprocessor}{\#define CIOCCRYPTAEAD   \_IOWR('c', 109, struct crypt\_aead)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00304}00304 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00305}\mbox{\hyperlink{structcryptostats}{00305}} \textcolor{keyword}{struct }\mbox{\hyperlink{structcryptostats}{cryptostats}} \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00306}\mbox{\hyperlink{structcryptostats_a503bf2202f2cbf4f9fe4e343b9fd811e}{00306}}         uint64\_t        \mbox{\hyperlink{structcryptostats_a503bf2202f2cbf4f9fe4e343b9fd811e}{cs\_ops}};           \textcolor{comment}{/* symmetric crypto ops submitted */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00307}\mbox{\hyperlink{structcryptostats_aef4d00d3d909b99a0c78304bcdbcd186}{00307}}         uint64\_t        \mbox{\hyperlink{structcryptostats_aef4d00d3d909b99a0c78304bcdbcd186}{cs\_errs}}; \textcolor{comment}{/* symmetric crypto ops that failed */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00308}\mbox{\hyperlink{structcryptostats_ad791862a3d32763b0dd44206aa3eee95}{00308}}         uint64\_t        \mbox{\hyperlink{structcryptostats_ad791862a3d32763b0dd44206aa3eee95}{cs\_kops}}; \textcolor{comment}{/* asymetric/key ops submitted */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00309}\mbox{\hyperlink{structcryptostats_a7f540254c182036a1c73f5fc5ce69459}{00309}}         uint64\_t        \mbox{\hyperlink{structcryptostats_a7f540254c182036a1c73f5fc5ce69459}{cs\_kerrs}};       \textcolor{comment}{/* asymetric/key ops that failed */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00310}\mbox{\hyperlink{structcryptostats_aef6ada0554ccdc36de3f8537e6a9bef8}{00310}}         uint64\_t        \mbox{\hyperlink{structcryptostats_aef6ada0554ccdc36de3f8537e6a9bef8}{cs\_intrs}};       \textcolor{comment}{/* crypto swi thread activations */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00311}\mbox{\hyperlink{structcryptostats_a2d925d1ce4249049c20d09a3450aefaf}{00311}}         uint64\_t        \mbox{\hyperlink{structcryptostats_a2d925d1ce4249049c20d09a3450aefaf}{cs\_rets}}; \textcolor{comment}{/* crypto return thread activations */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00312}\mbox{\hyperlink{structcryptostats_a7ede4d0485106df518214f43cbdf7912}{00312}}         uint64\_t        \mbox{\hyperlink{structcryptostats_a7ede4d0485106df518214f43cbdf7912}{cs\_blocks}};     \textcolor{comment}{/* symmetric op driver block */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00313}\mbox{\hyperlink{structcryptostats_af31f99fe76b1e73cdb296262af56e573}{00313}}         uint64\_t        \mbox{\hyperlink{structcryptostats_af31f99fe76b1e73cdb296262af56e573}{cs\_kblocks}};   \textcolor{comment}{/* symmetric op driver block */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00314}00314 \};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00315}00315 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00316}00316 \textcolor{preprocessor}{\#ifdef \_KERNEL}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00317}00317 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00318}00318 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00319}00319 \textcolor{comment}{ * Return values for cryptodev\_probesession methods.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00320}00320 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00321}\mbox{\hyperlink{cryptodev_8h_ad63b9b87432356d67c0387140d72415a}{00321}} \textcolor{preprocessor}{\#define CRYPTODEV\_PROBE\_HARDWARE        (-\/100)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00322}\mbox{\hyperlink{cryptodev_8h_ac3cf523ea56b2a23d75c0ac421cb7c44}{00322}} \textcolor{preprocessor}{\#define CRYPTODEV\_PROBE\_ACCEL\_SOFTWARE  (-\/200)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00323}\mbox{\hyperlink{cryptodev_8h_ac2a7ea7b47e4f8d9989b189a02bdd95a}{00323}} \textcolor{preprocessor}{\#define CRYPTODEV\_PROBE\_SOFTWARE        (-\/500)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00324}00324 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00325}00325 \textcolor{preprocessor}{\#if 0}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00326}00326 \textcolor{preprocessor}{\#define CRYPTDEB(s, ...) do \{                                           \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00327}00327 \textcolor{preprocessor}{        printf("{}\%s:\%d: "{}} s "{}\(\backslash\)n"{}, \_\_FILE\_\_, \_\_LINE\_\_, \#\# \_\_VA\_ARGS\_\_);   \(\backslash\)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00328}00328 \} while (0)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00329}00329 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00330}\mbox{\hyperlink{cryptodev_8h_acd6f236fdd136881f80cd7557d569aa3}{00330}} \textcolor{preprocessor}{\#define CRYPTDEB(...)   do \{ \} while (0)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00331}00331 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00332}00332 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00333}\mbox{\hyperlink{structcrypto__session__params}{00333}} \textcolor{keyword}{struct }\mbox{\hyperlink{structcrypto__session__params}{crypto\_session\_params}} \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00334}\mbox{\hyperlink{structcrypto__session__params_acfa0c09adfa2af792584f68c4e791ea0}{00334}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcrypto__session__params_acfa0c09adfa2af792584f68c4e791ea0}{csp\_mode}};       \textcolor{comment}{/* Type of operations to perform. */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00335}00335 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00336}\mbox{\hyperlink{cryptodev_8h_a54a2aabc68a896c51a007a50aa947bae}{00336}} \textcolor{preprocessor}{\#define CSP\_MODE\_NONE           0}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00337}\mbox{\hyperlink{cryptodev_8h_a84e292056eef4b839cc481e441fd4506}{00337}} \textcolor{preprocessor}{\#define CSP\_MODE\_COMPRESS       1       }\textcolor{comment}{/* Compression/decompression. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00338}\mbox{\hyperlink{cryptodev_8h_a75f7617514227e0eef21b50fe1809f1c}{00338}} \textcolor{preprocessor}{\#define CSP\_MODE\_CIPHER         2       }\textcolor{comment}{/* Encrypt/decrypt. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00339}\mbox{\hyperlink{cryptodev_8h_a1786cb220ec95419fca65e0a1116cae3}{00339}} \textcolor{preprocessor}{\#define CSP\_MODE\_DIGEST         3       }\textcolor{comment}{/* Compute/verify digest. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00340}\mbox{\hyperlink{cryptodev_8h_a192b14004af3e22e95f59aef515453ca}{00340}} \textcolor{preprocessor}{\#define CSP\_MODE\_AEAD           4       }\textcolor{comment}{/* Combined auth/encryption. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00341}\mbox{\hyperlink{cryptodev_8h_a09f1d4cf1a506f7df056ed8e6966f2b8}{00341}} \textcolor{preprocessor}{\#define CSP\_MODE\_ETA            5       }\textcolor{comment}{/* IPsec style encrypt-\/then-\/auth */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00342}00342 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00343}\mbox{\hyperlink{structcrypto__session__params_ac889cab24a8e813b238b40d5408590d7}{00343}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcrypto__session__params_ac889cab24a8e813b238b40d5408590d7}{csp\_flags}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00344}00344 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00345}\mbox{\hyperlink{cryptodev_8h_af47b09e6bd73edca92a70088b074963f}{00345}} \textcolor{preprocessor}{\#define CSP\_F\_SEPARATE\_OUTPUT   0x0001  }\textcolor{comment}{/* Requests can use separate output */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00346}\mbox{\hyperlink{cryptodev_8h_a07e30917d64f229cf8d0be6bb9dd18b6}{00346}} \textcolor{preprocessor}{\#define CSP\_F\_SEPARATE\_AAD      0x0002  }\textcolor{comment}{/* Requests can use separate AAD */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00347}\mbox{\hyperlink{cryptodev_8h_ab341cca909cf68ace2b1a08deb9d159d}{00347}} \textcolor{preprocessor}{\#define CSP\_F\_ESN               0x0004  }\textcolor{comment}{/* Requests can use seperate ESN field */}\textcolor{preprocessor}{ }}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00348}00348 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00349}\mbox{\hyperlink{structcrypto__session__params_a2842a4cc524d39f9a68e4bce28fcd429}{00349}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcrypto__session__params_a2842a4cc524d39f9a68e4bce28fcd429}{csp\_ivlen}};     \textcolor{comment}{/* IV length in bytes. */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00350}00350 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00351}\mbox{\hyperlink{structcrypto__session__params_aedcb92e9d97b3936065dd5d2f3e35795}{00351}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcrypto__session__params_aedcb92e9d97b3936065dd5d2f3e35795}{csp\_cipher\_alg}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00352}\mbox{\hyperlink{structcrypto__session__params_a2d1bde3549ba4427155118663392b568}{00352}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcrypto__session__params_a2d1bde3549ba4427155118663392b568}{csp\_cipher\_klen}}; \textcolor{comment}{/* Key length in bytes. */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00353}\mbox{\hyperlink{structcrypto__session__params_acb03603f2d528f63db6f04697d4f35fd}{00353}}         \textcolor{keyword}{const} \textcolor{keywordtype}{void}      *\mbox{\hyperlink{structcrypto__session__params_acb03603f2d528f63db6f04697d4f35fd}{csp\_cipher\_key}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00354}00354 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00355}\mbox{\hyperlink{structcrypto__session__params_a90c375669bd96c3f9b423788a469a413}{00355}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcrypto__session__params_a90c375669bd96c3f9b423788a469a413}{csp\_auth\_alg}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00356}\mbox{\hyperlink{structcrypto__session__params_a699c3e19c0c0ea86bcca5da38d7c8675}{00356}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcrypto__session__params_a699c3e19c0c0ea86bcca5da38d7c8675}{csp\_auth\_klen}};     \textcolor{comment}{/* Key length in bytes. */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00357}\mbox{\hyperlink{structcrypto__session__params_a2f67f04893c6ef7ddab12a5aca346a97}{00357}}         \textcolor{keyword}{const} \textcolor{keywordtype}{void}      *\mbox{\hyperlink{structcrypto__session__params_a2f67f04893c6ef7ddab12a5aca346a97}{csp\_auth\_key}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00358}\mbox{\hyperlink{structcrypto__session__params_ab7e52ecc3c661b10ead528061032c666}{00358}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcrypto__session__params_ab7e52ecc3c661b10ead528061032c666}{csp\_auth\_mlen}};     \textcolor{comment}{/* Number of digest bytes to use.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00359}00359 \textcolor{comment}{                                           0 means all. */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00360}00360 \};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00361}00361 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00362}\mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5}{00362}} \textcolor{keyword}{enum} \mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5}{crypto\_buffer\_type}} \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00363}\mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5a136256a6c685899595ca16bff80936db}{00363}}         \mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5a136256a6c685899595ca16bff80936db}{CRYPTO\_BUF\_NONE}} = 0,}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00364}\mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5ab59688e9377effd6d6169ad58103ed37}{00364}}         \mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5ab59688e9377effd6d6169ad58103ed37}{CRYPTO\_BUF\_CONTIG}},}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00365}\mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5ae83652abe504cd2d737d93d34e7f6e69}{00365}}         \mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5ae83652abe504cd2d737d93d34e7f6e69}{CRYPTO\_BUF\_UIO}},}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00366}\mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5af100823c9427b034973f48ccb67a0d57}{00366}}         \mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5af100823c9427b034973f48ccb67a0d57}{CRYPTO\_BUF\_MBUF}},}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00367}\mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5a84646836f5e7dd801e6826a594fbcf69}{00367}}         \mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5a84646836f5e7dd801e6826a594fbcf69}{CRYPTO\_BUF\_VMPAGE}},}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00368}\mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5a08189f808b314e96c84c1438426ce67e}{00368}}         \mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5a08189f808b314e96c84c1438426ce67e}{CRYPTO\_BUF\_SINGLE\_MBUF}},}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00369}00369         \mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5a6d3931e1e5bd61a1ff03328d6a062d63}{CRYPTO\_BUF\_LAST}} = \mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5a08189f808b314e96c84c1438426ce67e}{CRYPTO\_BUF\_SINGLE\_MBUF}}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00370}\mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5a6d3931e1e5bd61a1ff03328d6a062d63}{00370}} \};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00371}00371 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00372}00372 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00373}00373 \textcolor{comment}{ * Description of a data buffer for a request.  Requests can either}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00374}00374 \textcolor{comment}{ * have a single buffer that is modified in place or separate input}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00375}00375 \textcolor{comment}{ * and output buffers.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00376}00376 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00377}\mbox{\hyperlink{structcrypto__buffer}{00377}} \textcolor{keyword}{struct }\mbox{\hyperlink{structcrypto__buffer}{crypto\_buffer}} \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00378}00378         \textcolor{keyword}{union }\{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00379}00379                 \textcolor{keyword}{struct }\{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00380}\mbox{\hyperlink{structcrypto__buffer_a3b30423bbcc9a59790f05b9e54183205}{00380}}                         \textcolor{keywordtype}{char}    *\mbox{\hyperlink{structcrypto__buffer_a3b30423bbcc9a59790f05b9e54183205}{cb\_buf}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00381}\mbox{\hyperlink{structcrypto__buffer_ac86a9d0eab6e1c2cd8c07b8e17513fbc}{00381}}                         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structcrypto__buffer_ac86a9d0eab6e1c2cd8c07b8e17513fbc}{cb\_buf\_len}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00382}00382                 \};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00383}\mbox{\hyperlink{structcrypto__buffer_a87990b8a03339eb1d929a32197998e44}{00383}}                 \textcolor{keyword}{struct }mbuf *\mbox{\hyperlink{structcrypto__buffer_a87990b8a03339eb1d929a32197998e44}{cb\_mbuf}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00384}00384                 \textcolor{keyword}{struct }\{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00385}\mbox{\hyperlink{structcrypto__buffer_a26481846b4d8b82b6fd2681e7ec527fa}{00385}}                         vm\_page\_t *\mbox{\hyperlink{structcrypto__buffer_a26481846b4d8b82b6fd2681e7ec527fa}{cb\_vm\_page}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00386}\mbox{\hyperlink{structcrypto__buffer_a476e16dbe9334647756271b3b6b1b14c}{00386}}                         \textcolor{keywordtype}{int} \mbox{\hyperlink{structcrypto__buffer_a476e16dbe9334647756271b3b6b1b14c}{cb\_vm\_page\_len}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00387}\mbox{\hyperlink{structcrypto__buffer_accbcde2e11cfddc7d1849154a7c46c95}{00387}}                         \textcolor{keywordtype}{int} \mbox{\hyperlink{structcrypto__buffer_accbcde2e11cfddc7d1849154a7c46c95}{cb\_vm\_page\_offset}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00388}00388                 \};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00389}\mbox{\hyperlink{structcrypto__buffer_a7e1fa6b78093a84b6e78ec48fb5d8a17}{00389}}                 \textcolor{keyword}{struct }uio *\mbox{\hyperlink{structcrypto__buffer_a7e1fa6b78093a84b6e78ec48fb5d8a17}{cb\_uio}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00390}00390         \};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00391}\mbox{\hyperlink{structcrypto__buffer_a0e422a08b7ac6a027a541cdc3c0743dc}{00391}}         \textcolor{keyword}{enum} \mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5}{crypto\_buffer\_type}} \mbox{\hyperlink{structcrypto__buffer_a0e422a08b7ac6a027a541cdc3c0743dc}{cb\_type}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00392}00392 \};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00393}00393 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00394}00394 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00395}00395 \textcolor{comment}{ * A cursor is used to iterate through a crypto request data buffer.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00396}00396 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00397}\mbox{\hyperlink{structcrypto__buffer__cursor}{00397}} \textcolor{keyword}{struct }\mbox{\hyperlink{structcrypto__buffer__cursor}{crypto\_buffer\_cursor}} \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00398}00398         \textcolor{keyword}{union }\{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00399}\mbox{\hyperlink{structcrypto__buffer__cursor_ae25768323a2ea9b909cd71f3f531b862}{00399}}                 \textcolor{keywordtype}{char} *\mbox{\hyperlink{structcrypto__buffer__cursor_ae25768323a2ea9b909cd71f3f531b862}{cc\_buf}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00400}\mbox{\hyperlink{structcrypto__buffer__cursor_af4b0ee1762a9906ace317e11094d5797}{00400}}                 \textcolor{keyword}{struct }mbuf *\mbox{\hyperlink{structcrypto__buffer__cursor_af4b0ee1762a9906ace317e11094d5797}{cc\_mbuf}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00401}\mbox{\hyperlink{structcrypto__buffer__cursor_a29c63141d1ecad8439195a5a91fe7417}{00401}}                 \textcolor{keyword}{struct }iovec *\mbox{\hyperlink{structcrypto__buffer__cursor_a29c63141d1ecad8439195a5a91fe7417}{cc\_iov}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00402}\mbox{\hyperlink{structcrypto__buffer__cursor_a71f09d6f944f417df522b3fdc177a173}{00402}}                 vm\_page\_t *\mbox{\hyperlink{structcrypto__buffer__cursor_a71f09d6f944f417df522b3fdc177a173}{cc\_vmpage}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00403}00403         \};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00404}00404         \textcolor{comment}{/* Optional bytes of valid data remaining */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00405}\mbox{\hyperlink{structcrypto__buffer__cursor_ae95f65be07e789b363d6b6da0490e54d}{00405}}         \textcolor{keywordtype}{int} \mbox{\hyperlink{structcrypto__buffer__cursor_ae95f65be07e789b363d6b6da0490e54d}{cc\_buf\_len}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00406}00406         \textcolor{comment}{/* }}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00407}00407 \textcolor{comment}{         * Optional offset within the current buffer segment where}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00408}00408 \textcolor{comment}{         * valid data begins}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00409}00409 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00410}\mbox{\hyperlink{structcrypto__buffer__cursor_ac26ea0cf887e846ef3a2ade968b3b1f8}{00410}}         \textcolor{keywordtype}{size\_t} \mbox{\hyperlink{structcrypto__buffer__cursor_ac26ea0cf887e846ef3a2ade968b3b1f8}{cc\_offset}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00411}\mbox{\hyperlink{structcrypto__buffer__cursor_ab4b83111e1d40e72966009bf854ce74a}{00411}}         \textcolor{keyword}{enum} \mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5}{crypto\_buffer\_type}} \mbox{\hyperlink{structcrypto__buffer__cursor_ab4b83111e1d40e72966009bf854ce74a}{cc\_type}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00412}00412 \};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00413}00413 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00414}00414 \textcolor{comment}{/* Structure describing complete operation */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00415}\mbox{\hyperlink{structcryptop}{00415}} \textcolor{keyword}{struct }\mbox{\hyperlink{structcryptop}{cryptop}} \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00416}\mbox{\hyperlink{structcryptop_ab3912988dc006a553570f08a1ec390cc}{00416}}         \mbox{\hyperlink{structcryptop_ab3912988dc006a553570f08a1ec390cc}{TAILQ\_ENTRY}}(\mbox{\hyperlink{structcryptop}{cryptop}}) crp\_next;}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00417}00417 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00418}\mbox{\hyperlink{structcryptop_abde9b58d00a137dcddadef3ab7204697}{00418}}         \textcolor{keyword}{struct }task     \mbox{\hyperlink{structcryptop_abde9b58d00a137dcddadef3ab7204697}{crp\_task}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00419}00419 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00420}\mbox{\hyperlink{structcryptop_aa6e9681f39c803322322ece0f7739053}{00420}}         \mbox{\hyperlink{structcrypto__session}{crypto\_session\_t}} \mbox{\hyperlink{structcryptop_aa6e9681f39c803322322ece0f7739053}{crp\_session}};        \textcolor{comment}{/* Session */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00421}\mbox{\hyperlink{structcryptop_a334fd8a9274eef08242c1c7908d8469c}{00421}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcryptop_a334fd8a9274eef08242c1c7908d8469c}{crp\_olen}};       \textcolor{comment}{/* Result total length */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00422}00422 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00423}\mbox{\hyperlink{structcryptop_ae1d16088047f3e6b4592f5aa8e8d8279}{00423}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcryptop_ae1d16088047f3e6b4592f5aa8e8d8279}{crp\_etype}};     \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00424}00424 \textcolor{comment}{                                         * Error type (zero means no error).}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00425}00425 \textcolor{comment}{                                         * All error codes except EAGAIN}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00426}00426 \textcolor{comment}{                                         * indicate possible data corruption (as in,}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00427}00427 \textcolor{comment}{                                         * the data have been touched). On all}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00428}00428 \textcolor{comment}{                                         * errors, the crp\_session may have changed}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00429}00429 \textcolor{comment}{                                         * (reset to a new one), so the caller}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00430}00430 \textcolor{comment}{                                         * should always check and use the new}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00431}00431 \textcolor{comment}{                                         * value on future requests.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00432}00432 \textcolor{comment}{                                         */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00433}\mbox{\hyperlink{cryptodev_8h_a0b064fa7ce7b0fabd57c269351c5073a}{00433}} \textcolor{preprocessor}{\#define crp\_startcopy   crp\_flags}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00434}\mbox{\hyperlink{structcryptop_a920dac304b7724622e0e87f1c38f058f}{00434}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcryptop_a920dac304b7724622e0e87f1c38f058f}{crp\_flags}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00435}00435 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00436}\mbox{\hyperlink{cryptodev_8h_a2736b0220d0b0dc9243f4bb88aa6349c}{00436}} \textcolor{preprocessor}{\#define CRYPTO\_F\_CBIMM          0x0010  }\textcolor{comment}{/* Do callback immediately */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00437}\mbox{\hyperlink{cryptodev_8h_a95f7ade6654e943b069cca67f81da744}{00437}} \textcolor{preprocessor}{\#define CRYPTO\_F\_DONE           0x0020  }\textcolor{comment}{/* Operation completed */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00438}\mbox{\hyperlink{cryptodev_8h_a2b86ef90710c7b9a9112fbef6df6e605}{00438}} \textcolor{preprocessor}{\#define CRYPTO\_F\_CBIFSYNC       0x0040  }\textcolor{comment}{/* Do CBIMM if op is synchronous */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00439}\mbox{\hyperlink{cryptodev_8h_abe55857d393838abf15905c21cdf82bd}{00439}} \textcolor{preprocessor}{\#define CRYPTO\_F\_ASYNC\_ORDERED  0x0100  }\textcolor{comment}{/* Completions must happen in order */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00440}\mbox{\hyperlink{cryptodev_8h_a7d342342af088db7586c133d8ec27f28}{00440}} \textcolor{preprocessor}{\#define CRYPTO\_F\_IV\_SEPARATE    0x0200  }\textcolor{comment}{/* Use crp\_iv[] as IV. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00441}00441 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00442}\mbox{\hyperlink{structcryptop_afbee27b48615d717b2dd44252f5661ef}{00442}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcryptop_afbee27b48615d717b2dd44252f5661ef}{crp\_op}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00443}00443 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00444}\mbox{\hyperlink{structcryptop_a91dad50ab1fdda90473a691fe2cf3002}{00444}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structcrypto__buffer}{crypto\_buffer}} \mbox{\hyperlink{structcryptop_a91dad50ab1fdda90473a691fe2cf3002}{crp\_buf}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00445}\mbox{\hyperlink{structcryptop_a14b764bc36bcd3abc5cdc0c862a5830c}{00445}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structcrypto__buffer}{crypto\_buffer}} \mbox{\hyperlink{structcryptop_a14b764bc36bcd3abc5cdc0c862a5830c}{crp\_obuf}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00446}00446 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00447}\mbox{\hyperlink{structcryptop_a06af2a2f2bf8b27dd93f0703c8ccabec}{00447}}         \textcolor{keywordtype}{void}            *\mbox{\hyperlink{structcryptop_a06af2a2f2bf8b27dd93f0703c8ccabec}{crp\_aad}};        \textcolor{comment}{/* AAD buffer. */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00448}\mbox{\hyperlink{structcryptop_aca960d9275e8b6c804cef3dc7d410d40}{00448}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcryptop_aca960d9275e8b6c804cef3dc7d410d40}{crp\_aad\_start}};     \textcolor{comment}{/* Location of AAD. */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00449}\mbox{\hyperlink{structcryptop_ace579565d024d6be985951d78da0b42d}{00449}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcryptop_ace579565d024d6be985951d78da0b42d}{crp\_aad\_length}};   \textcolor{comment}{/* 0 => no AAD. */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00450}\mbox{\hyperlink{structcryptop_af649210df3452e48b51a3e0af85e2090}{00450}}         uint8\_t         \mbox{\hyperlink{structcryptop_af649210df3452e48b51a3e0af85e2090}{crp\_esn}}[4];      \textcolor{comment}{/* high-\/order ESN */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00451}00451 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00452}\mbox{\hyperlink{structcryptop_a6262a464cb71787f2c0584d257c0979e}{00452}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcryptop_a6262a464cb71787f2c0584d257c0979e}{crp\_iv\_start}};       \textcolor{comment}{/* Location of IV.  IV length is from}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00453}00453 \textcolor{comment}{                                         * the session.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00454}00454 \textcolor{comment}{                                         */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00455}\mbox{\hyperlink{structcryptop_a3a943098cd2d72c21d2b06ce4113b6ac}{00455}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcryptop_a3a943098cd2d72c21d2b06ce4113b6ac}{crp\_payload\_start}}; \textcolor{comment}{/* Location of ciphertext. */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00456}\mbox{\hyperlink{structcryptop_a9cda10efdf5fa346efc11f543e7ba42b}{00456}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcryptop_a9cda10efdf5fa346efc11f543e7ba42b}{crp\_payload\_output\_start}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00457}\mbox{\hyperlink{structcryptop_a3ded5aae79556d1fabcb71843b5d55ec}{00457}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcryptop_a3ded5aae79556d1fabcb71843b5d55ec}{crp\_payload\_length}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00458}\mbox{\hyperlink{structcryptop_ab21b34eea16b6607737a7e506af1605a}{00458}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structcryptop_ab21b34eea16b6607737a7e506af1605a}{crp\_digest\_start}}; \textcolor{comment}{/* Location of MAC/tag.  Length is}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00459}00459 \textcolor{comment}{                                           * from the session.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00460}00460 \textcolor{comment}{                                           */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00461}00461 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00462}\mbox{\hyperlink{structcryptop_a11aeb40d186d2b67cd35c60e78d6795e}{00462}}         uint8\_t         \mbox{\hyperlink{structcryptop_a11aeb40d186d2b67cd35c60e78d6795e}{crp\_iv}}[\mbox{\hyperlink{cryptodev_8h_a41d03c23326c43b9616af3a007a34eff}{EALG\_MAX\_BLOCK\_LEN}}]; \textcolor{comment}{/* IV if IV\_SEPARATE. */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00463}00463 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00464}\mbox{\hyperlink{structcryptop_ac75838cc358d535b6426ccd6ad01ee35}{00464}}         \textcolor{keyword}{const} \textcolor{keywordtype}{void}      *\mbox{\hyperlink{structcryptop_ac75838cc358d535b6426ccd6ad01ee35}{crp\_cipher\_key}}; \textcolor{comment}{/* New cipher key if non-\/NULL. */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00465}\mbox{\hyperlink{structcryptop_aa5db0a131dd24ff92179970cf5eb6733}{00465}}         \textcolor{keyword}{const} \textcolor{keywordtype}{void}      *\mbox{\hyperlink{structcryptop_aa5db0a131dd24ff92179970cf5eb6733}{crp\_auth\_key}};      \textcolor{comment}{/* New auth key if non-\/NULL. */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00466}\mbox{\hyperlink{cryptodev_8h_a7a5bfffabd21c0d4be22699bf3b95191}{00466}} \textcolor{preprocessor}{\#define crp\_endcopy     crp\_opaque}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00467}00467 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00468}\mbox{\hyperlink{structcryptop_ac6ec4c1169a454775d530401c7572788}{00468}}         \textcolor{keywordtype}{void}            *\mbox{\hyperlink{structcryptop_ac6ec4c1169a454775d530401c7572788}{crp\_opaque}};  \textcolor{comment}{/* Opaque pointer, passed along */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00469}00469 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00470}\mbox{\hyperlink{structcryptop_a01148b0a418c8a40bed58e74fa7d46c8}{00470}}         int (*\mbox{\hyperlink{structcryptop_a01148b0a418c8a40bed58e74fa7d46c8}{crp\_callback}})(\textcolor{keyword}{struct }\mbox{\hyperlink{structcryptop}{cryptop}} *); \textcolor{comment}{/* Callback function */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00471}00471 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00472}\mbox{\hyperlink{structcryptop_a2654bee9a308a912bcaf340a7b6d87b6}{00472}}         \textcolor{keyword}{struct }bintime  \mbox{\hyperlink{structcryptop_a2654bee9a308a912bcaf340a7b6d87b6}{crp\_tstamp}};   \textcolor{comment}{/* performance time stamp */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00473}\mbox{\hyperlink{structcryptop_a7b6d0c929b2ea9c8e8ab18a7e063602f}{00473}}         uint32\_t        \mbox{\hyperlink{structcryptop_a7b6d0c929b2ea9c8e8ab18a7e063602f}{crp\_seq}}; \textcolor{comment}{/* used for ordered dispatch */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00474}\mbox{\hyperlink{structcryptop_aecf87961f95be8aed26b323c4c6fa8c3}{00474}}         uint32\_t        \mbox{\hyperlink{structcryptop_aecf87961f95be8aed26b323c4c6fa8c3}{crp\_retw\_id}}; \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00475}00475 \textcolor{comment}{                                         * the return worker to be used,}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00476}00476 \textcolor{comment}{                                         *  used for ordered dispatch}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00477}00477 \textcolor{comment}{                                         */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00478}00478 \};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00479}00479 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00480}\mbox{\hyperlink{cryptodev_8h_a28662357fb067e55fa22c49542f24957}{00480}} \mbox{\hyperlink{cryptodev_8h_a28662357fb067e55fa22c49542f24957}{TAILQ\_HEAD}}(cryptopq, \mbox{\hyperlink{structcryptop}{cryptop}});}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00481}00481 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00482}00482 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00483}\mbox{\hyperlink{cryptodev_8h_a705c5f63a081b8855b44a8f88a82c7d9}{00483}} \mbox{\hyperlink{cryptodev_8h_a705c5f63a081b8855b44a8f88a82c7d9}{\_crypto\_use\_buf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__buffer}{crypto\_buffer}} *cb, \textcolor{keywordtype}{void} *buf, \textcolor{keywordtype}{int} len)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00484}00484 \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00485}00485         cb-\/>\mbox{\hyperlink{structcrypto__buffer_a3b30423bbcc9a59790f05b9e54183205}{cb\_buf}} = buf;}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00486}00486         cb-\/>\mbox{\hyperlink{structcrypto__buffer_ac86a9d0eab6e1c2cd8c07b8e17513fbc}{cb\_buf\_len}} = len;}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00487}00487         cb-\/>\mbox{\hyperlink{structcrypto__buffer_a0e422a08b7ac6a027a541cdc3c0743dc}{cb\_type}} = \mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5ab59688e9377effd6d6169ad58103ed37}{CRYPTO\_BUF\_CONTIG}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00488}00488 \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00489}00489 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00490}00490 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00491}\mbox{\hyperlink{cryptodev_8h_a99460fd4fef27910a53864c7e23c9ea5}{00491}} \mbox{\hyperlink{cryptodev_8h_a99460fd4fef27910a53864c7e23c9ea5}{\_crypto\_use\_mbuf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__buffer}{crypto\_buffer}} *cb, \textcolor{keyword}{struct} mbuf *m)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00492}00492 \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00493}00493         cb-\/>\mbox{\hyperlink{structcrypto__buffer_a87990b8a03339eb1d929a32197998e44}{cb\_mbuf}} = m;}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00494}00494         cb-\/>\mbox{\hyperlink{structcrypto__buffer_a0e422a08b7ac6a027a541cdc3c0743dc}{cb\_type}} = \mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5af100823c9427b034973f48ccb67a0d57}{CRYPTO\_BUF\_MBUF}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00495}00495 \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00496}00496 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00497}00497 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00498}\mbox{\hyperlink{cryptodev_8h_ac66418a3d4f3c27fc1744717ca915cd1}{00498}} \mbox{\hyperlink{cryptodev_8h_ac66418a3d4f3c27fc1744717ca915cd1}{\_crypto\_use\_single\_mbuf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__buffer}{crypto\_buffer}} *cb, \textcolor{keyword}{struct} mbuf *m)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00499}00499 \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00500}00500         cb-\/>\mbox{\hyperlink{structcrypto__buffer_a87990b8a03339eb1d929a32197998e44}{cb\_mbuf}} = m;}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00501}00501         cb-\/>\mbox{\hyperlink{structcrypto__buffer_a0e422a08b7ac6a027a541cdc3c0743dc}{cb\_type}} = \mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5a08189f808b314e96c84c1438426ce67e}{CRYPTO\_BUF\_SINGLE\_MBUF}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00502}00502 \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00503}00503 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00504}00504 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00505}\mbox{\hyperlink{cryptodev_8h_a76158b7fa1e2dbf1be151601b2510a21}{00505}} \mbox{\hyperlink{cryptodev_8h_a76158b7fa1e2dbf1be151601b2510a21}{\_crypto\_use\_vmpage}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__buffer}{crypto\_buffer}} *cb, vm\_page\_t *pages, \textcolor{keywordtype}{int} len,}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00506}00506     \textcolor{keywordtype}{int} offset)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00507}00507 \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00508}00508         cb-\/>\mbox{\hyperlink{structcrypto__buffer_a26481846b4d8b82b6fd2681e7ec527fa}{cb\_vm\_page}} = pages;}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00509}00509         cb-\/>\mbox{\hyperlink{structcrypto__buffer_a476e16dbe9334647756271b3b6b1b14c}{cb\_vm\_page\_len}} = len;}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00510}00510         cb-\/>\mbox{\hyperlink{structcrypto__buffer_accbcde2e11cfddc7d1849154a7c46c95}{cb\_vm\_page\_offset}} = offset;}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00511}00511         cb-\/>\mbox{\hyperlink{structcrypto__buffer_a0e422a08b7ac6a027a541cdc3c0743dc}{cb\_type}} = \mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5a84646836f5e7dd801e6826a594fbcf69}{CRYPTO\_BUF\_VMPAGE}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00512}00512 \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00513}00513 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00514}00514 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00515}\mbox{\hyperlink{cryptodev_8h_a88693c033a8fcd1596510a5829accc5d}{00515}} \mbox{\hyperlink{cryptodev_8h_a88693c033a8fcd1596510a5829accc5d}{\_crypto\_use\_uio}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__buffer}{crypto\_buffer}} *cb, \textcolor{keyword}{struct} uio *uio)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00516}00516 \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00517}00517         cb-\/>\mbox{\hyperlink{structcrypto__buffer_a7e1fa6b78093a84b6e78ec48fb5d8a17}{cb\_uio}} = uio;}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00518}00518         cb-\/>\mbox{\hyperlink{structcrypto__buffer_a0e422a08b7ac6a027a541cdc3c0743dc}{cb\_type}} = \mbox{\hyperlink{cryptodev_8h_a65383482e1b89c1bd5211658d1b345c5ae83652abe504cd2d737d93d34e7f6e69}{CRYPTO\_BUF\_UIO}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00519}00519 \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00520}00520 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00521}00521 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00522}\mbox{\hyperlink{cryptodev_8h_aa877e078de85e4493dcaff1798c226b8}{00522}} \mbox{\hyperlink{cryptodev_8h_aa877e078de85e4493dcaff1798c226b8}{crypto\_use\_buf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp, \textcolor{keywordtype}{void} *buf, \textcolor{keywordtype}{int} len)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00523}00523 \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00524}00524         \mbox{\hyperlink{cryptodev_8h_a705c5f63a081b8855b44a8f88a82c7d9}{\_crypto\_use\_buf}}(\&crp-\/>\mbox{\hyperlink{structcryptop_a91dad50ab1fdda90473a691fe2cf3002}{crp\_buf}}, buf, len);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00525}00525 \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00526}00526 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00527}00527 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00528}\mbox{\hyperlink{cryptodev_8h_a6d92510388352ff97ff77857e093e354}{00528}} \mbox{\hyperlink{cryptodev_8h_a6d92510388352ff97ff77857e093e354}{crypto\_use\_mbuf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp, \textcolor{keyword}{struct} mbuf *m)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00529}00529 \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00530}00530         \mbox{\hyperlink{cryptodev_8h_a99460fd4fef27910a53864c7e23c9ea5}{\_crypto\_use\_mbuf}}(\&crp-\/>\mbox{\hyperlink{structcryptop_a91dad50ab1fdda90473a691fe2cf3002}{crp\_buf}}, m);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00531}00531 \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00532}00532 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00533}00533 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00534}\mbox{\hyperlink{cryptodev_8h_af5a89c7f148a439fe61edf83c81434ff}{00534}} \mbox{\hyperlink{cryptodev_8h_af5a89c7f148a439fe61edf83c81434ff}{crypto\_use\_single\_mbuf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp, \textcolor{keyword}{struct} mbuf *m)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00535}00535 \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00536}00536         \mbox{\hyperlink{cryptodev_8h_ac66418a3d4f3c27fc1744717ca915cd1}{\_crypto\_use\_single\_mbuf}}(\&crp-\/>\mbox{\hyperlink{structcryptop_a91dad50ab1fdda90473a691fe2cf3002}{crp\_buf}}, m);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00537}00537 \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00538}00538 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00539}00539 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00540}\mbox{\hyperlink{cryptodev_8h_aef9e2499b57600b93f1dd2f601afec69}{00540}} \mbox{\hyperlink{cryptodev_8h_aef9e2499b57600b93f1dd2f601afec69}{crypto\_use\_vmpage}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp, vm\_page\_t *pages, \textcolor{keywordtype}{int} len, \textcolor{keywordtype}{int} offset)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00541}00541 \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00542}00542         \mbox{\hyperlink{cryptodev_8h_a76158b7fa1e2dbf1be151601b2510a21}{\_crypto\_use\_vmpage}}(\&crp-\/>\mbox{\hyperlink{structcryptop_a91dad50ab1fdda90473a691fe2cf3002}{crp\_buf}}, pages, len, offset);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00543}00543 \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00544}00544 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00545}00545 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00546}\mbox{\hyperlink{cryptodev_8h_acb924a28d64c4633e5b3a79a01377d63}{00546}} \mbox{\hyperlink{cryptodev_8h_acb924a28d64c4633e5b3a79a01377d63}{crypto\_use\_uio}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp, \textcolor{keyword}{struct} uio *uio)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00547}00547 \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00548}00548         \mbox{\hyperlink{cryptodev_8h_a88693c033a8fcd1596510a5829accc5d}{\_crypto\_use\_uio}}(\&crp-\/>\mbox{\hyperlink{structcryptop_a91dad50ab1fdda90473a691fe2cf3002}{crp\_buf}}, uio);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00549}00549 \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00550}00550 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00551}00551 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00552}\mbox{\hyperlink{cryptodev_8h_ad792b9f32aa24808a09d46d70f1bd66f}{00552}} \mbox{\hyperlink{cryptodev_8h_ad792b9f32aa24808a09d46d70f1bd66f}{crypto\_use\_output\_buf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp, \textcolor{keywordtype}{void} *buf, \textcolor{keywordtype}{int} len)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00553}00553 \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00554}00554         \mbox{\hyperlink{cryptodev_8h_a705c5f63a081b8855b44a8f88a82c7d9}{\_crypto\_use\_buf}}(\&crp-\/>\mbox{\hyperlink{structcryptop_a14b764bc36bcd3abc5cdc0c862a5830c}{crp\_obuf}}, buf, len);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00555}00555 \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00556}00556 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00557}00557 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00558}\mbox{\hyperlink{cryptodev_8h_ae3f7ca47cf7035e731fe81eadb753daa}{00558}} \mbox{\hyperlink{cryptodev_8h_ae3f7ca47cf7035e731fe81eadb753daa}{crypto\_use\_output\_mbuf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp, \textcolor{keyword}{struct} mbuf *m)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00559}00559 \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00560}00560         \mbox{\hyperlink{cryptodev_8h_a99460fd4fef27910a53864c7e23c9ea5}{\_crypto\_use\_mbuf}}(\&crp-\/>\mbox{\hyperlink{structcryptop_a14b764bc36bcd3abc5cdc0c862a5830c}{crp\_obuf}}, m);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00561}00561 \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00562}00562 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00563}00563 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00564}\mbox{\hyperlink{cryptodev_8h_a9771c70081532a6da90c2cec5a1a1a5e}{00564}} \mbox{\hyperlink{cryptodev_8h_a9771c70081532a6da90c2cec5a1a1a5e}{crypto\_use\_output\_single\_mbuf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp, \textcolor{keyword}{struct} mbuf *m)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00565}00565 \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00566}00566         \mbox{\hyperlink{cryptodev_8h_ac66418a3d4f3c27fc1744717ca915cd1}{\_crypto\_use\_single\_mbuf}}(\&crp-\/>\mbox{\hyperlink{structcryptop_a14b764bc36bcd3abc5cdc0c862a5830c}{crp\_obuf}}, m);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00567}00567 \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00568}00568 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00569}00569 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00570}\mbox{\hyperlink{cryptodev_8h_aca831ad794f0e2247333d65fb46deac1}{00570}} \mbox{\hyperlink{cryptodev_8h_aca831ad794f0e2247333d65fb46deac1}{crypto\_use\_output\_vmpage}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp, vm\_page\_t *pages, \textcolor{keywordtype}{int} len,}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00571}00571     \textcolor{keywordtype}{int} offset)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00572}00572 \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00573}00573         \mbox{\hyperlink{cryptodev_8h_a76158b7fa1e2dbf1be151601b2510a21}{\_crypto\_use\_vmpage}}(\&crp-\/>\mbox{\hyperlink{structcryptop_a14b764bc36bcd3abc5cdc0c862a5830c}{crp\_obuf}}, pages, len, offset);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00574}00574 \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00575}00575 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00576}00576 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00577}\mbox{\hyperlink{cryptodev_8h_aa788a7a3c46d67cfd0226017ed28191c}{00577}} \mbox{\hyperlink{cryptodev_8h_aa788a7a3c46d67cfd0226017ed28191c}{crypto\_use\_output\_uio}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp, \textcolor{keyword}{struct} uio *uio)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00578}00578 \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00579}00579         \mbox{\hyperlink{cryptodev_8h_a88693c033a8fcd1596510a5829accc5d}{\_crypto\_use\_uio}}(\&crp-\/>\mbox{\hyperlink{structcryptop_a14b764bc36bcd3abc5cdc0c862a5830c}{crp\_obuf}}, uio);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00580}00580 \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00581}00581 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00582}\mbox{\hyperlink{cryptodev_8h_afbbf9949c0093b288464441c7ce96476}{00582}} \textcolor{preprocessor}{\#define CRYPTO\_HAS\_OUTPUT\_BUFFER(crp)                                   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00583}00583 \textcolor{preprocessor}{        ((crp)-\/>crp\_obuf.cb\_type != CRYPTO\_BUF\_NONE)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00584}00584 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00585}00585 \textcolor{comment}{/* Flags in crp\_op. */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00586}\mbox{\hyperlink{cryptodev_8h_a492115d357c83ed96d939c1f9cf96a4d}{00586}} \textcolor{preprocessor}{\#define CRYPTO\_OP\_DECRYPT               0x0}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00587}\mbox{\hyperlink{cryptodev_8h_a308ebc4fcf06c890e1fa7803eca03649}{00587}} \textcolor{preprocessor}{\#define CRYPTO\_OP\_ENCRYPT               0x1}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00588}\mbox{\hyperlink{cryptodev_8h_ad5a2afc7a69eea2542c397c6c0cd02c3}{00588}} \textcolor{preprocessor}{\#define CRYPTO\_OP\_IS\_ENCRYPT(op)        ((op) \& CRYPTO\_OP\_ENCRYPT)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00589}\mbox{\hyperlink{cryptodev_8h_aab8bb68c196639f4b152663825c689b6}{00589}} \textcolor{preprocessor}{\#define CRYPTO\_OP\_COMPUTE\_DIGEST        0x0}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00590}\mbox{\hyperlink{cryptodev_8h_ac0fa98eb80caecba8e0468b6756a2d93}{00590}} \textcolor{preprocessor}{\#define CRYPTO\_OP\_VERIFY\_DIGEST         0x2}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00591}\mbox{\hyperlink{cryptodev_8h_aa2f2c297873cb5dd8cdf89ac67f44a5e}{00591}} \textcolor{preprocessor}{\#define CRYPTO\_OP\_DECOMPRESS            CRYPTO\_OP\_DECRYPT}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00592}\mbox{\hyperlink{cryptodev_8h_a95f529eee0daf5cce224e9982bb420de}{00592}} \textcolor{preprocessor}{\#define CRYPTO\_OP\_COMPRESS              CRYPTO\_OP\_ENCRYPT}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00593}\mbox{\hyperlink{cryptodev_8h_a40dfc11203bc04ab4f12f1c2e2621eaf}{00593}} \textcolor{preprocessor}{\#define CRYPTO\_OP\_IS\_COMPRESS(op)       ((op) \& CRYPTO\_OP\_COMPRESS)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00594}00594 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00595}00595 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00596}00596 \textcolor{comment}{ * Hints passed to process methods.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00597}00597 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00598}\mbox{\hyperlink{cryptodev_8h_a3747b0981d780f3e326ef01a2c1dcfa3}{00598}} \textcolor{preprocessor}{\#define CRYPTO\_HINT\_MORE        0x1     }\textcolor{comment}{/* more ops coming shortly */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00599}00599 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00600}00600 uint32\_t \mbox{\hyperlink{cryptodev_8h_a41268073cddee966b6c54bf40ddb1b92}{crypto\_ses2hid}}(\mbox{\hyperlink{structcrypto__session}{crypto\_session\_t}} \mbox{\hyperlink{structcrypto__session}{crypto\_session}});}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00601}00601 uint32\_t \mbox{\hyperlink{cryptodev_8h_a512476efda364e21290a27d533c5154f}{crypto\_ses2caps}}(\mbox{\hyperlink{structcrypto__session}{crypto\_session\_t}} \mbox{\hyperlink{structcrypto__session}{crypto\_session}});}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00602}00602 \textcolor{keywordtype}{void}    *\mbox{\hyperlink{cryptodev_8h_a9baad93d17f03cf7a695bb6b3c2f0161}{crypto\_get\_driver\_session}}(\mbox{\hyperlink{structcrypto__session}{crypto\_session\_t}} \mbox{\hyperlink{structcrypto__session}{crypto\_session}});}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00603}00603 \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structcrypto__session__params}{crypto\_session\_params}} *\mbox{\hyperlink{cryptodev_8h_adf3550f82bd9c568fc6650bbbecb3cef}{crypto\_get\_params}}(}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00604}00604     \mbox{\hyperlink{structcrypto__session}{crypto\_session\_t}} \mbox{\hyperlink{structcrypto__session}{crypto\_session}});}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00605}00605 \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structauth__hash}{auth\_hash}} *\mbox{\hyperlink{cryptodev_8h_a9ab4a960daa40c2bbe47de085e38a63d}{crypto\_auth\_hash}}(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__session__params}{crypto\_session\_params}} *\mbox{\hyperlink{cryptodev__if_8m_ad4c1657296cb58a638d6106e84afd30a}{csp}});}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00606}00606 \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structenc__xform}{enc\_xform}} *\mbox{\hyperlink{cryptodev_8h_a7534a57c4f6730af18785be8b5c18792}{crypto\_cipher}}(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__session__params}{crypto\_session\_params}} *\mbox{\hyperlink{cryptodev__if_8m_ad4c1657296cb58a638d6106e84afd30a}{csp}});}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00607}00607 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00608}00608 \textcolor{preprocessor}{\#ifdef MALLOC\_DECLARE}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00609}00609 MALLOC\_DECLARE(M\_CRYPTO\_DATA);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00610}00610 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00611}00611 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00612}00612 \textcolor{keywordtype}{int}     \mbox{\hyperlink{cryptodev_8h_a733b10469881d3d9944f738e834022ee}{crypto\_newsession}}(\mbox{\hyperlink{structcrypto__session}{crypto\_session\_t}} *cses,}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00613}00613     \textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__session__params}{crypto\_session\_params}} *params, \textcolor{keywordtype}{int} crid);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00614}00614 \textcolor{keywordtype}{void}    \mbox{\hyperlink{cryptodev_8h_a1e5b9ab6a05e445d9e87f3efb49add06}{crypto\_freesession}}(\mbox{\hyperlink{structcrypto__session}{crypto\_session\_t}} cses);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00615}\mbox{\hyperlink{cryptodev_8h_ac3245637138c7cd61d0ea1cf4fae27cf}{00615}} \textcolor{preprocessor}{\#define CRYPTOCAP\_F\_HARDWARE    CRYPTO\_FLAG\_HARDWARE}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00616}\mbox{\hyperlink{cryptodev_8h_a75bbcc5283ea466ae9e4f3dbc2c56a05}{00616}} \textcolor{preprocessor}{\#define CRYPTOCAP\_F\_SOFTWARE    CRYPTO\_FLAG\_SOFTWARE}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00617}\mbox{\hyperlink{cryptodev_8h_abb0f3624a08b8d1183808b6fd35fd569}{00617}} \textcolor{preprocessor}{\#define CRYPTOCAP\_F\_SYNC        0x04000000      }\textcolor{comment}{/* operates synchronously */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00618}\mbox{\hyperlink{cryptodev_8h_ab330e5c07a7ca1d21924c0e2999f352c}{00618}} \textcolor{preprocessor}{\#define CRYPTOCAP\_F\_ACCEL\_SOFTWARE 0x08000000}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00619}\mbox{\hyperlink{cryptodev_8h_ae6bc2e493daed5397d5b9f8549f5c960}{00619}} \textcolor{preprocessor}{\#define CRYPTO\_SESS\_SYNC(sess)  \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00620}00620 \textcolor{preprocessor}{        ((crypto\_ses2caps(sess) \& CRYPTOCAP\_F\_SYNC) != 0)}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00621}00621 int32\_t \mbox{\hyperlink{cryptodev_8h_a7ed2bd79f48be8e8ecc24c51aee618a2}{crypto\_get\_driverid}}(device\_t dev, \textcolor{keywordtype}{size\_t} session\_size, \textcolor{keywordtype}{int} \mbox{\hyperlink{cryptodev__if_8m_ac8bf36fe0577cba66bccda3a6f7e80a4}{flags}});}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00622}00622 \textcolor{keywordtype}{int}     \mbox{\hyperlink{cryptodev_8h_a210425f610991565b13a6c63aa81580b}{crypto\_find\_driver}}(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00623}00623 device\_t \mbox{\hyperlink{cryptodev_8h_a95091882780401ab195f3426e0135acc}{crypto\_find\_device\_byhid}}(\textcolor{keywordtype}{int} hid);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00624}00624 \textcolor{keywordtype}{int}     \mbox{\hyperlink{cryptodev_8h_ab5b70e6b31725da42b40526a84366828}{crypto\_getcaps}}(\textcolor{keywordtype}{int} hid);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00625}00625 \textcolor{keywordtype}{int}     \mbox{\hyperlink{cryptodev_8h_ac6394c91b4de38793f1c13f6b98120f9}{crypto\_unregister\_all}}(uint32\_t driverid);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00626}00626 \textcolor{keywordtype}{int}     \mbox{\hyperlink{cryptodev_8h_ad3792d285ef5db2f1538381aed3b031a}{crypto\_dispatch}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00627}\mbox{\hyperlink{cryptodev_8h_a558c18280c549ebcde340039d92e8480}{00627}} \textcolor{preprocessor}{\#define CRYPTO\_ASYNC\_ORDERED    0x1     }\textcolor{comment}{/* complete in order dispatched */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00628}00628 \textcolor{keywordtype}{int}     \mbox{\hyperlink{cryptodev_8h_a61541b238f8f4a690e27e76ca9161e9f}{crypto\_dispatch\_async}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp, \textcolor{keywordtype}{int} \mbox{\hyperlink{cryptodev__if_8m_ac8bf36fe0577cba66bccda3a6f7e80a4}{flags}});}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00629}00629 \textcolor{keywordtype}{void}    \mbox{\hyperlink{cryptodev_8h_ad9b0757f66cfc799dbb69e1f64ebbff3}{crypto\_dispatch\_batch}}(\textcolor{keyword}{struct} cryptopq *crpq, \textcolor{keywordtype}{int} \mbox{\hyperlink{cryptodev__if_8m_ac8bf36fe0577cba66bccda3a6f7e80a4}{flags}});}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00630}\mbox{\hyperlink{cryptodev_8h_a7d10091c29abb458ad76d71d9baebcb5}{00630}} \textcolor{preprocessor}{\#define CRYPTO\_SYMQ     0x1}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00631}00631 \textcolor{keywordtype}{int}     \mbox{\hyperlink{cryptodev_8h_a3d236b177552e938b240654e00e34894}{crypto\_unblock}}(uint32\_t, \textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00632}00632 \textcolor{keywordtype}{void}    \mbox{\hyperlink{cryptodev_8h_a5671cea5f515322961d29f3cff7da20a}{crypto\_done}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00633}00633 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00634}00634 \textcolor{keyword}{struct }\mbox{\hyperlink{structcryptop}{cryptop}} *\mbox{\hyperlink{cryptodev_8h_afcda676adcb6921873eb62599f5fcaa1}{crypto\_clonereq}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp, \mbox{\hyperlink{structcrypto__session}{crypto\_session\_t}} cses,}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00635}00635     \textcolor{keywordtype}{int} how);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00636}00636 \textcolor{keywordtype}{void}    \mbox{\hyperlink{cryptodev_8h_aedb38a47b4abc6224d53867846b463bb}{crypto\_destroyreq}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00637}00637 \textcolor{keywordtype}{void}    \mbox{\hyperlink{cryptodev_8h_ae3902a698a5f6f82412f2d01fb61b55b}{crypto\_initreq}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp, \mbox{\hyperlink{structcrypto__session}{crypto\_session\_t}} cses);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00638}00638 \textcolor{keywordtype}{void}    \mbox{\hyperlink{cryptodev_8h_afe9b016095aa4a81629d27bb6b539df1}{crypto\_freereq}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00639}00639 \textcolor{keyword}{struct }\mbox{\hyperlink{structcryptop}{cryptop}} *\mbox{\hyperlink{cryptodev_8h_a583850bbeaa84a4fa1fd036969968d27}{crypto\_getreq}}(\mbox{\hyperlink{structcrypto__session}{crypto\_session\_t}} cses, \textcolor{keywordtype}{int} how);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00640}00640 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00641}00641 \textcolor{keyword}{extern}  \textcolor{keywordtype}{int} \mbox{\hyperlink{cryptodev_8h_a8f9382a489cae581df21cd14cbf986ce}{crypto\_usercrypto}};         \textcolor{comment}{/* userland may do crypto requests */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00642}00642 \textcolor{keyword}{extern}  \textcolor{keywordtype}{int} \mbox{\hyperlink{cryptodev_8h_ab7d352ed9856f8452a78fdbb3e1ba6e3}{crypto\_devallowsoft}};     \textcolor{comment}{/* only use hardware crypto */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00643}00643 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00644}00644 \textcolor{preprocessor}{\#ifdef SYSCTL\_DECL}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00645}00645 \mbox{\hyperlink{ktls__ocf_8c_a8d430948d85f8237c0ab0db74c4fb138}{SYSCTL\_DECL}}(\_kern\_crypto);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00646}00646 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00647}00647 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00648}00648 \textcolor{comment}{/* Helper routines for drivers to initialize auth contexts for HMAC. */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00649}00649 \textcolor{keyword}{struct }\mbox{\hyperlink{structauth__hash}{auth\_hash}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00650}00650 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00651}00651 \textcolor{keywordtype}{void}    \mbox{\hyperlink{cryptodev_8h_a34e99f29228d8b9de48bfb6160c4fc98}{hmac\_init\_ipad}}(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structauth__hash}{auth\_hash}} *axf, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *key, \textcolor{keywordtype}{int} klen,}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00652}00652     \textcolor{keywordtype}{void} *auth\_ctx);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00653}00653 \textcolor{keywordtype}{void}    \mbox{\hyperlink{cryptodev_8h_a1c1c73eced2a45c63234358ea293f2fd}{hmac\_init\_opad}}(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structauth__hash}{auth\_hash}} *axf, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *key, \textcolor{keywordtype}{int} klen,}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00654}00654     \textcolor{keywordtype}{void} *auth\_ctx);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00655}00655 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00656}00656 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00657}00657 \textcolor{comment}{ * Crypto-\/related utility routines used mainly by drivers.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00658}00658 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00659}00659 \textcolor{comment}{ * Similar to m\_copyback/data, *\_copyback copy data from the 'src'}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00660}00660 \textcolor{comment}{ * buffer into the crypto request's data buffer while *\_copydata copy}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00661}00661 \textcolor{comment}{ * data from the crypto request's data buffer into the the 'dst'}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00662}00662 \textcolor{comment}{ * buffer.}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00663}00663 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00664}00664 \textcolor{keywordtype}{void}    \mbox{\hyperlink{cryptodev_8h_af286529fc6b8df754df5e923de5a73b8}{crypto\_copyback}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp, \textcolor{keywordtype}{int} off, \textcolor{keywordtype}{int} size,}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00665}00665             \textcolor{keyword}{const} \textcolor{keywordtype}{void} *src);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00666}00666 \textcolor{keywordtype}{void}    \mbox{\hyperlink{cryptodev_8h_abaf0f7bd1dcac2fd7c017f79eed049bd}{crypto\_copydata}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp, \textcolor{keywordtype}{int} off, \textcolor{keywordtype}{int} size, \textcolor{keywordtype}{void} *dst);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00667}00667 \textcolor{keywordtype}{int}     \mbox{\hyperlink{cryptodev_8h_a048933da9043b21d72cdbac924b08c78}{crypto\_apply}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp, \textcolor{keywordtype}{int} off, \textcolor{keywordtype}{int} len,}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00668}00668             \textcolor{keywordtype}{int} (*f)(\textcolor{keywordtype}{void} *, \textcolor{keyword}{const} \textcolor{keywordtype}{void} *, u\_int), \textcolor{keywordtype}{void} *arg);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00669}00669 \textcolor{keywordtype}{void}    *\mbox{\hyperlink{cryptodev_8h_a21535da06883128ac0b83ad7081ff1cd}{crypto\_contiguous\_subsegment}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp, \textcolor{keywordtype}{size\_t} skip,}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00670}00670             \textcolor{keywordtype}{size\_t} len);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00671}00671 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00672}00672 \textcolor{keywordtype}{int}     \mbox{\hyperlink{cryptodev_8h_a7ab1e24f740ae460d0159ce91a225de8}{crypto\_apply\_buf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__buffer}{crypto\_buffer}} *cb, \textcolor{keywordtype}{int} off, \textcolor{keywordtype}{int} len,}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00673}00673             \textcolor{keywordtype}{int} (*f)(\textcolor{keywordtype}{void} *, \textcolor{keyword}{const} \textcolor{keywordtype}{void} *, u\_int), \textcolor{keywordtype}{void} *arg);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00674}00674 \textcolor{keywordtype}{void}    *\mbox{\hyperlink{cryptodev_8h_ae5abff9d9adbcf687e5bf92368a3eca4}{crypto\_buffer\_contiguous\_subsegment}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__buffer}{crypto\_buffer}} *cb,}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00675}00675             \textcolor{keywordtype}{size\_t} skip, \textcolor{keywordtype}{size\_t} len);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00676}00676 \textcolor{keywordtype}{size\_t}  \mbox{\hyperlink{cryptodev_8h_ac76218d9c28d928cfb4792d1a025dee6}{crypto\_buffer\_len}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__buffer}{crypto\_buffer}} *cb);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00677}00677 \textcolor{keywordtype}{void}    \mbox{\hyperlink{cryptodev_8h_a3d8aec93e25162b2016e82a1c82c51b3}{crypto\_cursor\_init}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__buffer__cursor}{crypto\_buffer\_cursor}} *cc,}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00678}00678             \textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__buffer}{crypto\_buffer}} *cb);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00679}00679 \textcolor{keywordtype}{void}    \mbox{\hyperlink{cryptodev_8h_a8385aaf274260ce5dd002453fa52aaf6}{crypto\_cursor\_advance}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__buffer__cursor}{crypto\_buffer\_cursor}} *cc, \textcolor{keywordtype}{size\_t} amount);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00680}00680 \textcolor{keywordtype}{void}    *\mbox{\hyperlink{cryptodev_8h_a51ae40b358180cff5d461d2ba216f68c}{crypto\_cursor\_segment}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__buffer__cursor}{crypto\_buffer\_cursor}} *cc, \textcolor{keywordtype}{size\_t} *len);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00681}00681 \textcolor{keywordtype}{void}    \mbox{\hyperlink{cryptodev_8h_af5bffcfd5a47135da5808a6c5ff3c9c2}{crypto\_cursor\_copyback}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__buffer__cursor}{crypto\_buffer\_cursor}} *cc, \textcolor{keywordtype}{int} size,}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00682}00682             \textcolor{keyword}{const} \textcolor{keywordtype}{void} *vsrc);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00683}00683 \textcolor{keywordtype}{void}    \mbox{\hyperlink{cryptodev_8h_a51ecf0aeaf46e12d186d0a4dcfbd5a04}{crypto\_cursor\_copydata}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__buffer__cursor}{crypto\_buffer\_cursor}} *cc, \textcolor{keywordtype}{int} size,}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00684}00684             \textcolor{keywordtype}{void} *vdst);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00685}00685 \textcolor{keywordtype}{void}    \mbox{\hyperlink{cryptodev_8h_af5d0283122f8da857f2861786470c6e7}{crypto\_cursor\_copydata\_noadv}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__buffer__cursor}{crypto\_buffer\_cursor}} *cc, \textcolor{keywordtype}{int} size,}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00686}00686             \textcolor{keywordtype}{void} *vdst);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00687}00687 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00688}00688 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00689}\mbox{\hyperlink{cryptodev_8h_ada84fb224cdd4a076d8934201b9a4cee}{00689}} \mbox{\hyperlink{cryptodev_8h_ada84fb224cdd4a076d8934201b9a4cee}{crypto\_cursor\_copy}}(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__buffer__cursor}{crypto\_buffer\_cursor}} *fromc,}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00690}00690     \textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__buffer__cursor}{crypto\_buffer\_cursor}} *toc)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00691}00691 \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00692}00692         memcpy(toc, fromc, \textcolor{keyword}{sizeof}(*toc));}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00693}00693 \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00694}00694 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00695}00695 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00696}\mbox{\hyperlink{cryptodev_8h_a32effd79009d4c892a48afbe268e09e9}{00696}} \mbox{\hyperlink{cryptodev_8h_a32effd79009d4c892a48afbe268e09e9}{crypto\_read\_iv}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcryptop}{cryptop}} *crp, \textcolor{keywordtype}{void} *iv)}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00697}00697 \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00698}00698         \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structcrypto__session__params}{crypto\_session\_params}} *\mbox{\hyperlink{cryptodev__if_8m_ad4c1657296cb58a638d6106e84afd30a}{csp}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00699}00699 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00700}00700         \mbox{\hyperlink{cryptodev__if_8m_ad4c1657296cb58a638d6106e84afd30a}{csp}} = \mbox{\hyperlink{cryptodev_8h_adf3550f82bd9c568fc6650bbbecb3cef}{crypto\_get\_params}}(crp-\/>\mbox{\hyperlink{structcryptop_aa6e9681f39c803322322ece0f7739053}{crp\_session}});}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00701}00701         \textcolor{keywordflow}{if} (crp-\/>\mbox{\hyperlink{structcryptop_a920dac304b7724622e0e87f1c38f058f}{crp\_flags}} \& \mbox{\hyperlink{cryptodev_8h_a7d342342af088db7586c133d8ec27f28}{CRYPTO\_F\_IV\_SEPARATE}})}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00702}00702                 memcpy(iv, crp-\/>\mbox{\hyperlink{structcryptop_a11aeb40d186d2b67cd35c60e78d6795e}{crp\_iv}}, \mbox{\hyperlink{cryptodev__if_8m_ad4c1657296cb58a638d6106e84afd30a}{csp}}-\/>\mbox{\hyperlink{structcrypto__session__params_a2842a4cc524d39f9a68e4bce28fcd429}{csp\_ivlen}});}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00703}00703         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00704}00704                 \mbox{\hyperlink{cryptodev_8h_abaf0f7bd1dcac2fd7c017f79eed049bd}{crypto\_copydata}}(crp, crp-\/>\mbox{\hyperlink{structcryptop_a6262a464cb71787f2c0584d257c0979e}{crp\_iv\_start}}, \mbox{\hyperlink{cryptodev__if_8m_ad4c1657296cb58a638d6106e84afd30a}{csp}}-\/>\mbox{\hyperlink{structcrypto__session__params_a2842a4cc524d39f9a68e4bce28fcd429}{csp\_ivlen}}, iv);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00705}00705 \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00706}00706 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00707}00707 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{size\_t}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00708}\mbox{\hyperlink{cryptodev_8h_a565db4728e07fd94e3ddd753d0faa91d}{00708}} \mbox{\hyperlink{cryptodev_8h_a565db4728e07fd94e3ddd753d0faa91d}{ccm\_max\_payload\_length}}(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structcrypto__session__params}{crypto\_session\_params}} *\mbox{\hyperlink{cryptodev__if_8m_ad4c1657296cb58a638d6106e84afd30a}{csp}})}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00709}00709 \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00710}00710         \textcolor{comment}{/* RFC 3160 */}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00711}00711         \textcolor{keyword}{const} u\_int L = 15 -\/ \mbox{\hyperlink{cryptodev__if_8m_ad4c1657296cb58a638d6106e84afd30a}{csp}}-\/>\mbox{\hyperlink{structcrypto__session__params_a2842a4cc524d39f9a68e4bce28fcd429}{csp\_ivlen}};}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00712}00712 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00713}00713         \textcolor{keywordflow}{switch} (L) \{}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00714}00714         \textcolor{keywordflow}{case} 2:}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00715}00715                 \textcolor{keywordflow}{return} (0xffff);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00716}00716         \textcolor{keywordflow}{case} 3:}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00717}00717                 \textcolor{keywordflow}{return} (0xffffff);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00718}00718 \textcolor{preprocessor}{\#ifdef \_\_LP64\_\_}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00719}00719         \textcolor{keywordflow}{case} 4:}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00720}00720                 \textcolor{keywordflow}{return} (0xffffffff);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00721}00721         \textcolor{keywordflow}{case} 5:}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00722}00722                 \textcolor{keywordflow}{return} (0xffffffffff);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00723}00723         \textcolor{keywordflow}{case} 6:}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00724}00724                 \textcolor{keywordflow}{return} (0xffffffffffff);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00725}00725         \textcolor{keywordflow}{case} 7:}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00726}00726                 \textcolor{keywordflow}{return} (0xffffffffffffff);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00727}00727         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00728}00728                 \textcolor{keywordflow}{return} (0xffffffffffffffff);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00729}00729 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00730}00730         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00731}00731                 \textcolor{keywordflow}{return} (0xffffffff);}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00732}00732 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00733}00733         \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00734}00734 \}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00735}00735 }
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00736}00736 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_KERNEL */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cryptodev_8h_source_l00737}00737 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_CRYPTO\_CRYPTO\_H\_ */}\textcolor{preprocessor}{}}

\end{DoxyCode}
