The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/qat/qat_api/common/crypto/sym/include/lac_sym_auth_enc.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* SPDX-License-Identifier: BSD-3-Clause */
    2 /* Copyright(c) 2007-2022 Intel Corporation */
    3 /* $FreeBSD$ */
    4 
    5 /**
    6  *****************************************************************************
    7  * @file lac_sym_auth_enc.h
    8  *
    9  * @defgroup LacAuthEnc Authenticated Encryption
   10  *
   11  * @ingroup LacSym
   12  *
   13  * @description
   14  *  Authenticated encryption specific functionality.
   15  *  For CCM related code NIST SP 800-38C is followed.
   16  *  For GCM related code NIST SP 800-38D is followed.
   17  *
   18  ***************************************************************************/
   19 #ifndef LAC_SYM_AUTH_ENC_H_
   20 #define LAC_SYM_AUTH_ENC_H_
   21 
   22 /* This define for CCM describes constant sum of n and q */
   23 #define LAC_ALG_CHAIN_CCM_NQ_CONST 15
   24 
   25 /* These defines for CCM describe maximum and minimum
   26  * length of nonce in bytes*/
   27 #define LAC_ALG_CHAIN_CCM_N_LEN_IN_BYTES_MAX 13
   28 #define LAC_ALG_CHAIN_CCM_N_LEN_IN_BYTES_MIN 7
   29 
   30 /**
   31  * @ingroup LacAuthEnc
   32  * This function applies any necessary padding to additional authentication data
   33  * pointed by pAdditionalAuthData field of pOpData as described in
   34  * NIST SP 800-38D
   35  *
   36  * @param[in] pSessionDesc              Pointer to the session descriptor
   37  * @param[in,out] pAdditionalAuthData   Pointer to AAD
   38  *
   39  * @retval CPA_STATUS_SUCCESS          Operation finished successfully
   40  *
   41  * @pre pAdditionalAuthData has been param checked
   42  *
   43  */
   44 void LacSymAlgChain_PrepareGCMData(lac_session_desc_t *pSessionDesc,
   45                                    Cpa8U *pAdditionalAuthData);
   46 
   47 /**
   48  * @ingroup LacAuthEnc
   49  * This function prepares param checks iv and aad for CCM
   50  *
   51  * @param[in,out] pAdditionalAuthData   Pointer to AAD
   52  * @param[in,out] pIv                   Pointer to IV
   53  * @param[in] messageLenToCipherInBytes Size of the message to cipher
   54  * @param[in] ivLenInBytes              Size of the IV
   55  *
   56  * @retval CPA_STATUS_SUCCESS          Operation finished successfully
   57  * @retval CPA_STATUS_INVALID_PARAM    Invalid parameter passed
   58  *
   59  */
   60 CpaStatus LacSymAlgChain_CheckCCMData(Cpa8U *pAdditionalAuthData,
   61                                       Cpa8U *pIv,
   62                                       Cpa32U messageLenToCipherInBytes,
   63                                       Cpa32U ivLenInBytes);
   64 
   65 /**
   66  * @ingroup LacAuthEnc
   67  * This function prepares Ctr0 and B0-Bn blocks for CCM algorithm as described
   68  * in NIST SP 800-38C. Ctr0 block is placed in pIv field of pOpData and B0-BN
   69  * blocks are placed in pAdditionalAuthData.
   70  *
   71  * @param[in] pSessionDesc              Pointer to the session descriptor
   72  * @param[in,out] pAdditionalAuthData   Pointer to AAD
   73  * @param[in,out] pIv                   Pointer to IV
   74  * @param[in] messageLenToCipherInBytes Size of the message to cipher
   75  * @param[in] ivLenInBytes              Size of the IV
   76  *
   77  * @retval none
   78  *
   79  * @pre parameters have been checked using LacSymAlgChain_CheckCCMData()
   80  */
   81 void LacSymAlgChain_PrepareCCMData(lac_session_desc_t *pSessionDesc,
   82                                    Cpa8U *pAdditionalAuthData,
   83                                    Cpa8U *pIv,
   84                                    Cpa32U messageLenToCipherInBytes,
   85                                    Cpa32U ivLenInBytes);
   86 
   87 #endif /* LAC_SYM_AUTH_ENC_H_ */

Cache object: 9c0edca221477219851d9643086c2ca5


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.