/**********************************************************************************************************************
 *  COPYRIGHT
 *  -------------------------------------------------------------------------------------------------------------------
 *  \verbatim
 *  Copyright (c) 2025 by Vector Informatik GmbH.                                                All rights reserved.
 *
 *                This software is copyright protected and proprietary to Vector Informatik GmbH.
 *                Vector Informatik GmbH grants to you only those rights as set out in the license conditions.
 *                All other rights remain with Vector Informatik GmbH.
 *  \endverbatim
 *  -------------------------------------------------------------------------------------------------------------------
 *  FILE DESCRIPTION
 *  -----------------------------------------------------------------------------------------------------------------*/
/*      \file   Csm_Rte.h
 *      \brief  MICROSAR Crypto Service Manager (CSM) RTE
 *
 *      \details  Description of the MICROSAR Crypto Service Manager (CSM) service APIs used only by RTE
 *
 *********************************************************************************************************************/

/**********************************************************************************************************************
 *  REVISION HISTORY
 *  -------------------------------------------------------------------------------------------------------------------
 *  Refer to the module's header file.
 *********************************************************************************************************************/

#if !defined (CSM_RTE_H)
# define CSM_RTE_H

/**********************************************************************************************************************
 *  INCLUDES
 *********************************************************************************************************************/
# include "Csm.h"

 /* Usage check */
# if !defined (CSM_RTE_SOURCE)
#  error "This is a private header and should only be included by Csm_Rte.c"
# endif

/**********************************************************************************************************************
 *  GLOBAL CONSTANT MACROS
 *********************************************************************************************************************/

/**********************************************************************************************************************
 *  GLOBAL FUNCTION MACROS
 *********************************************************************************************************************/

/**********************************************************************************************************************
 *  GLOBAL DATA TYPES AND STRUCTURES
 *********************************************************************************************************************/

/**********************************************************************************************************************
 *  GLOBAL DATA PROTOTYPES
 *********************************************************************************************************************/

/**********************************************************************************************************************
 *  GLOBAL FUNCTION PROTOTYPES
 *********************************************************************************************************************/

 /**********************************************************************************************************************
 *  LOCAL FUNCTIONS
 *********************************************************************************************************************/

 /**********************************************************************************************************************
 *  GLOBAL FUNCTIONS
 *********************************************************************************************************************/

# if (CSM_RTE_PORTS == STD_ON)

#  define CSM_START_SEC_CODE
#  include "MemMap.h" /* PRQA S 5087 */ /* MD_MSR_MemMap */

/**********************************************************************************************************************
 *  Csm_HashAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_Hash().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data for which the hash shall be computed.
 *  \param[in]     dataLength         Contains the number of bytes to be hashed.
 *  \param[out]    resultPtr          Contains the pointer to the data where the hash value shall be stored.
 *  \param[in,out] resultLengthPtr    Holds a pointer to the memory location in which the output length in bytes is
 *                                    stored. On calling this function, this parameter shall contain the size of the
 *                                    buffer provided by resultPtr. When the request has finished, the actual length of
 *                                    the returned value shall be stored.
 *  \return        E_OK                  Request successful
 *                 E_NOT_OK              Request failed
 *                 CRYPTO_E_BUSY         Request failed, service is busy or queue is full
 *                 CRYPTO_E_SMALL_BUFFER The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_HashAsr4_03(uint32 jobId,
                                                      Crypto_OperationModeType mode,
                                                      P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                      uint32 dataLength,
                                                      P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) resultPtr,
                                                      P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) resultLengthPtr);

/**********************************************************************************************************************
 *  Csm_HashDataRefAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_Hash().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data for which the hash shall be computed.
 *  \param[in]     dataLength         Contains the number of bytes to be hashed.
 *  \param[out]    resultPtr          Contains the pointer to the data where the hash value shall be stored.
 *  \param[in,out] resultLengthPtr    Holds a pointer to the memory location in which the output length in bytes is
 *                                    stored. On calling this function, this parameter shall contain the size of the
 *                                    buffer provided by resultPtr. When the request has finished, the actual length of
 *                                    the returned value shall be stored.
 *  \return        E_OK                  Request successful
 *                 E_NOT_OK              Request failed
 *                 CRYPTO_E_BUSY         Request failed, service is busy or queue is full
 *                 CRYPTO_E_SMALL_BUFFER The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_HashDataRefAsr4_03(uint32 jobId,
                                                             Crypto_OperationModeType mode,
                                                             P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                             uint32 dataLength,
                                                             P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) resultPtr,
                                                             P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) resultLengthPtr);

/**********************************************************************************************************************
 *  Csm_HashDataRefAsrR19_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_Hash().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data for which the hash shall be computed.
 *  \param[in]     dataLength         Contains the number of bytes to be hashed.
 *  \param[out]    resultPtr          Contains the pointer to the data where the hash value shall be stored.
 *  \param[in,out] resultLengthPtr    Holds a pointer to the memory location in which the output length in bytes is
 *                                    stored. On calling this function, this parameter shall contain the size of the
 *                                    buffer provided by resultPtr. When the request has finished, the actual length of
 *                                    the returned value shall be stored.
 *  \return        E_OK                  Request successful
 *                 E_NOT_OK              Request failed
 *                 CRYPTO_E_BUSY         Request failed, service is busy or queue is full
 *                 CRYPTO_E_SMALL_BUFFER The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_HashDataRefAsrR19_11(uint32 jobId,
                                                               Crypto_OperationModeType mode,
                                                               P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                               uint32 dataLength,
                                                               P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) resultPtr,
                                                               P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) resultLengthPtr);

/**********************************************************************************************************************
 *  Csm_HashDataRef()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_Hash().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data for which the hash shall be computed.
 *  \param[in]     dataLength         Contains the number of bytes to be hashed.
 *  \param[out]    resultPtr          Contains the pointer to the data where the hash value shall be stored.
 *  \param[in,out] resultLengthPtr    Holds a pointer to the memory location in which the output length in bytes is
 *                                    stored. On calling this function, this parameter shall contain the size of the
 *                                    buffer provided by resultPtr. When the request has finished, the actual length of
 *                                    the returned value shall be stored.
 *  \return        E_OK                  Request successful
 *                 E_NOT_OK              Request failed
 *                 CRYPTO_E_BUSY         Request failed, service is busy or queue is full
 *                 CRYPTO_E_SMALL_BUFFER The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_HashDataRef(uint32 jobId,
                                                      Crypto_OperationModeType mode,
                                                      P2CONST(void, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                      uint32 dataLength,
                                                      P2VAR(void, AUTOMATIC, CSM_APPL_VAR) resultPtr,
                                                      P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) resultLengthPtr);

/**********************************************************************************************************************
 *  Csm_MacGenerateAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_MacGenerate().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data for which the MAC shall be computed.
 *  \param[in]     dataLength         Contains the number of bytes for the MAC generation.
 *  \param[out]    macPtr             Contains the pointer to the data where the MAC shall be stored.
 *  \param[in,out] macLengthPtr       Holds a pointer to the memory location in which the output length in bytes is
 *                                    stored. On calling this function, this parameter shall contain the size of the
 *                                    buffer provided by macPtr. When the request has finished, the actual length of
 *                                    the returned MAC shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_MacGenerateAsr4_03(uint32 jobId,
                                                             Crypto_OperationModeType mode,
                                                             P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                             uint32 dataLength,
                                                             P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) macPtr,
                                                             P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) macLengthPtr);

/**********************************************************************************************************************
 *  Csm_MacGenerateAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_MacGenerate().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data for which the MAC shall be computed.
 *  \param[in]     dataLength         Contains the number of bytes for the MAC generation.
 *  \param[out]    macPtr             Contains the pointer to the data where the MAC shall be stored.
 *  \param[in,out] macLengthPtr       Holds a pointer to the memory location in which the output length in bytes is
 *                                    stored. On calling this function, this parameter shall contain the size of the
 *                                    buffer provided by macPtr. When the request has finished, the actual length of
 *                                    the returned MAC shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_MacGenerateAsr4_04(uint32 jobId,
                                                             Crypto_OperationModeType mode,
                                                             P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                             uint32 dataLength,
                                                             P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) macPtr,
                                                             P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) macLengthPtr);

/**********************************************************************************************************************
 *  Csm_MacGenerateDataRefAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_MacGenerate().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data for which the MAC shall be computed.
 *  \param[in]     dataLength         Contains the number of bytes for the MAC generation.
 *  \param[out]    macPtr             Contains the pointer to the data where the MAC shall be stored.
 *  \param[in,out] macLengthPtr       Holds a pointer to the memory location in which the output length in bytes is
 *                                    stored. On calling this function, this parameter shall contain the size of the
 *                                    buffer provided by macPtr. When the request has finished, the actual length of
 *                                    the returned MAC shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_MacGenerateDataRefAsr4_04(uint32 jobId,
                                                                    Crypto_OperationModeType mode,
                                                                    P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                                    uint32 dataLength,
                                                                    P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) macPtr,
                                                                    P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) macLengthPtr);

/**********************************************************************************************************************
 *  Csm_MacGenerateDataRefAsrR19_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_MacGenerate().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data for which the MAC shall be computed.
 *  \param[in]     dataLength         Contains the number of bytes for the MAC generation.
 *  \param[out]    macPtr             Contains the pointer to the data where the MAC shall be stored.
 *  \param[in,out] macLengthPtr       Holds a pointer to the memory location in which the output length in bytes is
 *                                    stored. On calling this function, this parameter shall contain the size of the
 *                                    buffer provided by macPtr. When the request has finished, the actual length of
 *                                    the returned MAC shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_MacGenerateDataRefAsrR19_11(uint32 jobId,
                                                                      Crypto_OperationModeType mode,
                                                                      P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                                      uint32 dataLength,
                                                                      P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) macPtr,
                                                                      P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) macLengthPtr);

/**********************************************************************************************************************
 *  Csm_MacGenerateDataRef()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_MacGenerate().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data for which the MAC shall be computed.
 *  \param[in]     dataLength         Contains the number of bytes for the MAC generation.
 *  \param[out]    macPtr             Contains the pointer to the data where the MAC shall be stored.
 *  \param[in,out] macLengthPtr       Holds a pointer to the memory location in which the output length in bytes is
 *                                    stored. On calling this function, this parameter shall contain the size of the
 *                                    buffer provided by macPtr. When the request has finished, the actual length of
 *                                    the returned MAC shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_MacGenerateDataRef(uint32 jobId,
                                                             Crypto_OperationModeType mode,
                                                             P2CONST(void, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                             uint32 dataLength,
                                                             P2VAR(void, AUTOMATIC, CSM_APPL_VAR) macPtr,
                                                             P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) macLengthPtr);

/**********************************************************************************************************************
 *  Csm_MacVerifyAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_MacVerify().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data for which the MAC shall be verified.
 *  \param[in]     dataLength         Contains the number of data bytes for which the MAC shall be verified.
 *  \param[in]     macPtr             Holds a pointer to the MAC to be verified.
 *  \param[in]     macLength          Contains the MAC length in BITS to be verified.
 *  \param[out]    verifyPtr          Holds a pointer to the memory location, which will hold the result of the MAC
 *                                    verification.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_MacVerifyAsr4_03(uint32 jobId,
                                                           Crypto_OperationModeType mode,
                                                           P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                           uint32 dataLength,
                                                           P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) macPtr,
                                                           uint32 macLength,
                                                           P2VAR(Crypto_VerifyResultType, AUTOMATIC, CSM_APPL_VAR) verifyPtr);

/**********************************************************************************************************************
 *  Csm_MacVerifyAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_MacVerify().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data for which the MAC shall be verified.
 *  \param[in]     dataLength         Contains the number of data bytes for which the MAC shall be verified.
 *  \param[in]     macPtr             Holds a pointer to the MAC to be verified.
 *  \param[in]     macLength          Contains the MAC length in BITS to be verified.
 *  \param[out]    verifyPtr          Holds a pointer to the memory location, which will hold the result of the MAC
 *                                    verification.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_MacVerifyAsr4_04(uint32 jobId,
                                                           Crypto_OperationModeType mode,
                                                           P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                           uint32 dataLength,
                                                           P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) macPtr,
                                                           uint32 macLength,
                                                           P2VAR(Crypto_VerifyResultType, AUTOMATIC, CSM_APPL_VAR) verifyPtr);

/**********************************************************************************************************************
 *  Csm_MacVerifyDataRefAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_MacVerify().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data for which the MAC shall be verified.
 *  \param[in]     dataLength         Contains the number of data bytes for which the MAC shall be verified.
 *  \param[in]     macPtr             Holds a pointer to the MAC to be verified.
 *  \param[in]     macLength          Contains the MAC length in BITS to be verified.
 *  \param[out]    verifyPtr          Holds a pointer to the memory location, which will hold the result of the MAC
 *                                    verification.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_MacVerifyDataRefAsr4_04(uint32 jobId,
                                                                  Crypto_OperationModeType mode,
                                                                  P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                                  uint32 dataLength,
                                                                  P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) macPtr,
                                                                  uint32 macLength,
                                                                  P2VAR(Crypto_VerifyResultType, AUTOMATIC, CSM_APPL_VAR) verifyPtr);

/**********************************************************************************************************************
 *  Csm_MacVerifyDataRefAsrR19_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_MacVerify().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data for which the MAC shall be verified.
 *  \param[in]     dataLength         Contains the number of data bytes for which the MAC shall be verified.
 *  \param[in]     macPtr             Holds a pointer to the MAC to be verified.
 *  \param[in]     macLength          Contains the MAC length in BITS to be verified.
 *  \param[out]    verifyPtr          Holds a pointer to the memory location, which will hold the result of the MAC
 *                                    verification.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_MacVerifyDataRefAsrR19_11(uint32 jobId,
                                                                    Crypto_OperationModeType mode,
                                                                    P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                                    uint32 dataLength,
                                                                    P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) macPtr,
                                                                    uint32 macLength,
                                                                    P2VAR(Crypto_VerifyResultType, AUTOMATIC, CSM_APPL_VAR) verifyPtr);

/**********************************************************************************************************************
 *  Csm_MacVerifyDataRef()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_MacVerify().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data for which the MAC shall be verified.
 *  \param[in]     dataLength         Contains the number of data bytes for which the MAC shall be verified.
 *  \param[in]     macPtr             Holds a pointer to the MAC to be verified.
 *  \param[in]     macLength          Contains the MAC length in BITS to be verified.
 *  \param[out]    verifyPtr          Holds a pointer to the memory location, which will hold the result of the MAC
 *                                    verification.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_MacVerifyDataRef(uint32 jobId,
                                                           Crypto_OperationModeType mode,
                                                           P2CONST(void, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                           uint32 dataLength,
                                                           P2CONST(void, AUTOMATIC, CSM_APPL_VAR) macPtr,
                                                           uint32 macLength,
                                                           P2VAR(Crypto_VerifyResultType, AUTOMATIC, CSM_APPL_VAR) verifyPtr);

/**********************************************************************************************************************
 *  Csm_EncryptAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_Encrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be encrypted.
 *  \param[in]     dataLength         Contains the number of bytes to encrypt.
 *  \param[out]    resultPtr          Contains the pointer to the data where the encrypted data shall be stored.
 *  \param[in,out] resultLengthPtr    Holds a pointer to the memory location in which the output length information is
 *                                    stored in bytes. On calling this function, this parameter shall contain the size
 *                                    of the buffer provided by resultPtr. When the request has finished, the actual
 *                                    length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_EncryptAsr4_03(uint32 jobId,
                                                         Crypto_OperationModeType mode,
                                                         P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                         uint32 dataLength,
                                                         P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) resultPtr,
                                                         P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) resultLengthPtr);

/**********************************************************************************************************************
 *  Csm_EncryptAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_Encrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be encrypted.
 *  \param[in]     dataLength         Contains the number of bytes to encrypt.
 *  \param[out]    resultPtr          Contains the pointer to the data where the encrypted data shall be stored.
 *  \param[in,out] resultLengthPtr    Holds a pointer to the memory location in which the output length information is
 *                                    stored in bytes. On calling this function, this parameter shall contain the size
 *                                    of the buffer provided by resultPtr. When the request has finished, the actual
 *                                    length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_EncryptAsr4_04(uint32 jobId,
                                                         Crypto_OperationModeType mode,
                                                         P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                         uint32 dataLength,
                                                         P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) resultPtr,
                                                         P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) resultLengthPtr);

/**********************************************************************************************************************
 *  Csm_EncryptDataRefAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_Encrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be encrypted.
 *  \param[in]     dataLength         Contains the number of bytes to encrypt.
 *  \param[out]    resultPtr          Contains the pointer to the data where the encrypted data shall be stored.
 *  \param[in,out] resultLengthPtr    Holds a pointer to the memory location in which the output length information is
 *                                    stored in bytes. On calling this function, this parameter shall contain the size
 *                                    of the buffer provided by resultPtr. When the request has finished, the actual
 *                                    length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_EncryptDataRefAsr4_04(uint32 jobId,
                                                                Crypto_OperationModeType mode,
                                                                P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                                uint32 dataLength,
                                                                P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) resultPtr,
                                                                P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) resultLengthPtr);

/**********************************************************************************************************************
 *  Csm_EncryptDataRefAsrR19_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_Encrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be encrypted.
 *  \param[in]     dataLength         Contains the number of bytes to encrypt.
 *  \param[out]    resultPtr          Contains the pointer to the data where the encrypted data shall be stored.
 *  \param[in,out] resultLengthPtr    Holds a pointer to the memory location in which the output length information is
 *                                    stored in bytes. On calling this function, this parameter shall contain the size
 *                                    of the buffer provided by resultPtr. When the request has finished, the actual
 *                                    length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_EncryptDataRefAsrR19_11(uint32 jobId,
                                                                  Crypto_OperationModeType mode,
                                                                  P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                                  uint32 dataLength,
                                                                  P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) resultPtr,
                                                                  P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) resultLengthPtr);

/**********************************************************************************************************************
 *  Csm_EncryptDataRef()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_Encrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be encrypted.
 *  \param[in]     dataLength         Contains the number of bytes to encrypt.
 *  \param[out]    resultPtr          Contains the pointer to the data where the encrypted data shall be stored.
 *  \param[in,out] resultLengthPtr    Holds a pointer to the memory location in which the output length information is
 *                                    stored in bytes. On calling this function, this parameter shall contain the size
 *                                    of the buffer provided by resultPtr. When the request has finished, the actual
 *                                    length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_EncryptDataRef(uint32 jobId,
                                                         Crypto_OperationModeType mode,
                                                         P2CONST(void, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                         uint32 dataLength,
                                                         P2VAR(void, AUTOMATIC, CSM_APPL_VAR) resultPtr,
                                                         P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) resultLengthPtr);

/**********************************************************************************************************************
 *  Csm_DecryptAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_Decrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be decrypted.
 *  \param[in]     dataLength         Contains the number of bytes to decrypt.
 *  \param[out]    resultPtr          Contains the pointer to the data where the decrypted data shall be stored.
 *  \param[in,out] resultLengthPtr    Holds a pointer to the memory location in which the output length information is
 *                                    stored in bytes. On calling this function, this parameter shall contain the size
 *                                    of the buffer provided by resultPtr. When the request has finished, the actual
 *                                    length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_DecryptAsr4_03(uint32 jobId,
                                                         Crypto_OperationModeType mode,
                                                         P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                         uint32 dataLength,
                                                         P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) resultPtr,
                                                         P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) resultLengthPtr);

/**********************************************************************************************************************
 *  Csm_DecryptAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_Decrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be decrypted.
 *  \param[in]     dataLength         Contains the number of bytes to decrypt.
 *  \param[out]    resultPtr          Contains the pointer to the data where the decrypted data shall be stored.
 *  \param[in,out] resultLengthPtr    Holds a pointer to the memory location in which the output length information is
 *                                    stored in bytes. On calling this function, this parameter shall contain the size
 *                                    of the buffer provided by resultPtr. When the request has finished, the actual
 *                                    length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_DecryptAsr4_04(uint32 jobId,
                                                         Crypto_OperationModeType mode,
                                                         P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                         uint32 dataLength,
                                                         P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) resultPtr,
                                                         P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) resultLengthPtr);

/**********************************************************************************************************************
 *  Csm_DecryptDataRefAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_Decrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be decrypted.
 *  \param[in]     dataLength         Contains the number of bytes to decrypt.
 *  \param[out]    resultPtr          Contains the pointer to the data where the decrypted data shall be stored.
 *  \param[in,out] resultLengthPtr    Holds a pointer to the memory location in which the output length information is
 *                                    stored in bytes. On calling this function, this parameter shall contain the size
 *                                    of the buffer provided by resultPtr. When the request has finished, the actual
 *                                    length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_DecryptDataRefAsr4_04(uint32 jobId,
                                                                Crypto_OperationModeType mode,
                                                                P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                                uint32 dataLength,
                                                                P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) resultPtr,
                                                                P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) resultLengthPtr);

/**********************************************************************************************************************
 *  Csm_DecryptDataRefAsrR19_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_Decrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be decrypted.
 *  \param[in]     dataLength         Contains the number of bytes to decrypt.
 *  \param[out]    resultPtr          Contains the pointer to the data where the decrypted data shall be stored.
 *  \param[in,out] resultLengthPtr    Holds a pointer to the memory location in which the output length information is
 *                                    stored in bytes. On calling this function, this parameter shall contain the size
 *                                    of the buffer provided by resultPtr. When the request has finished, the actual
 *                                    length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_DecryptDataRefAsrR19_11(uint32 jobId,
                                                                  Crypto_OperationModeType mode,
                                                                  P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                                  uint32 dataLength,
                                                                  P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) resultPtr,
                                                                  P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) resultLengthPtr);

/**********************************************************************************************************************
 *  Csm_DecryptDataRef()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_Decrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be decrypted.
 *  \param[in]     dataLength         Contains the number of bytes to decrypt.
 *  \param[out]    resultPtr          Contains the pointer to the data where the decrypted data shall be stored.
 *  \param[in,out] resultLengthPtr    Holds a pointer to the memory location in which the output length information is
 *                                    stored in bytes. On calling this function, this parameter shall contain the size
 *                                    of the buffer provided by resultPtr. When the request has finished, the actual
 *                                    length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_DecryptDataRef(uint32 jobId,
                                                         Crypto_OperationModeType mode,
                                                         P2CONST(void, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                         uint32 dataLength,
                                                         P2VAR(void, AUTOMATIC, CSM_APPL_VAR) resultPtr,
                                                         P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) resultLengthPtr);

/**********************************************************************************************************************
 *  Csm_AEADEncryptAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_AEADEncrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                Holds the identifier of the job using the CSM service.
 *  \param[in]     mode                 Indicates which operation mode(s) to perform.
 *  \param[in]     plaintextPtr         Contains the pointer to the data to be encrypted.
 *  \param[in]     plaintextLength      Contains the number of bytes to encrypt.
 *  \param[in]     associatedDataPtr    Contains the pointer to the associated data.
 *  \param[in]     associatedDataLength Contains the number of bytes of the associated data.
 *  \param[out]    ciphertextPtr        Contains the pointer to the data where the encrypted data shall be stored.
 *  \param[in,out] ciphertextLengthPtr  Holds a pointer to the memory location in which the output length in bytes of
 *                                      the ciphertext is stored. On calling this function, this parameter shall
 *                                      contain the size of the buffer in bytes provided by ciphertextPtr. When the
 *                                      request has finished, the actual length of the returned value shall be stored.
 *  \param[out]    tagPtr               Contains the pointer to the data where the Tag shall be stored.
 *  \param[in,out] tagLengthPtr         Holds a pointer to the memory location in which the output length in bytes of
 *                                      the Tag is stored. On calling this function, this parameter shall contain the
 *                                      size of the buffer in bytes provided by tagPtr. When the request has
 *                                      finished, the actual length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_AEADEncryptAsr4_03(uint32 jobId,
                                                             Crypto_OperationModeType mode,
                                                             P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) plaintextPtr,
                                                             uint32 plaintextLength,
                                                             P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) associatedDataPtr,
                                                             uint32 associatedDataLength,
                                                             P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) ciphertextPtr,
                                                             P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) ciphertextLengthPtr,
                                                             P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) tagPtr,
                                                             P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) tagLengthPtr);

/**********************************************************************************************************************
 *  Csm_AEADEncryptAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_AEADEncrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                Holds the identifier of the job using the CSM service.
 *  \param[in]     mode                 Indicates which operation mode(s) to perform.
 *  \param[in]     plaintextPtr         Contains the pointer to the data to be encrypted.
 *  \param[in]     plaintextLength      Contains the number of bytes to encrypt.
 *  \param[in]     associatedDataPtr    Contains the pointer to the associated data.
 *  \param[in]     associatedDataLength Contains the number of bytes of the associated data.
 *  \param[out]    ciphertextPtr        Contains the pointer to the data where the encrypted data shall be stored.
 *  \param[in,out] ciphertextLengthPtr  Holds a pointer to the memory location in which the output length in bytes of
 *                                      the ciphertext is stored. On calling this function, this parameter shall
 *                                      contain the size of the buffer in bytes provided by ciphertextPtr. When the
 *                                      request has finished, the actual length of the returned value shall be stored.
 *  \param[out]    tagPtr               Contains the pointer to the data where the Tag shall be stored.
 *  \param[in,out] tagLengthPtr         Holds a pointer to the memory location in which the output length in bytes of
 *                                      the Tag is stored. On calling this function, this parameter shall contain the
 *                                      size of the buffer in bytes provided by tagPtr. When the request has
 *                                      finished, the actual length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_AEADEncryptAsr4_04(uint32 jobId,
                                                             Crypto_OperationModeType mode,
                                                             P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) plaintextPtr,
                                                             uint32 plaintextLength,
                                                             P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) associatedDataPtr,
                                                             uint32 associatedDataLength,
                                                             P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) ciphertextPtr,
                                                             P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) ciphertextLengthPtr,
                                                             P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) tagPtr,
                                                             P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) tagLengthPtr);

/**********************************************************************************************************************
 *  Csm_AEADEncryptDataRefAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_AEADEncrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                Holds the identifier of the job using the CSM service.
 *  \param[in]     mode                 Indicates which operation mode(s) to perform.
 *  \param[in]     plaintextPtr         Contains the pointer to the data to be encrypted.
 *  \param[in]     plaintextLength      Contains the number of bytes to encrypt.
 *  \param[in]     associatedDataPtr    Contains the pointer to the associated data.
 *  \param[in]     associatedDataLength Contains the number of bytes of the associated data.
 *  \param[out]    ciphertextPtr        Contains the pointer to the data where the encrypted data shall be stored.
 *  \param[in,out] ciphertextLengthPtr  Holds a pointer to the memory location in which the output length in bytes of
 *                                      the ciphertext is stored. On calling this function, this parameter shall
 *                                      contain the size of the buffer in bytes provided by ciphertextPtr. When the
 *                                      request has finished, the actual length of the returned value shall be stored.
 *  \param[out]    tagPtr               Contains the pointer to the data where the Tag shall be stored.
 *  \param[in,out] tagLengthPtr         Holds a pointer to the memory location in which the output length in bytes of
 *                                      the Tag is stored. On calling this function, this parameter shall contain the
 *                                      size of the buffer in bytes provided by tagPtr. When the request has
 *                                      finished, the actual length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_AEADEncryptDataRefAsr4_04(uint32 jobId,
                                                                    Crypto_OperationModeType mode,
                                                                    P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) plaintextPtr,
                                                                    uint32 plaintextLength,
                                                                    P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) associatedDataPtr,
                                                                    uint32 associatedDataLength,
                                                                    P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) ciphertextPtr,
                                                                    P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) ciphertextLengthPtr,
                                                                    P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) tagPtr,
                                                                    P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) tagLengthPtr);

/**********************************************************************************************************************
 *  Csm_AEADEncryptDataRefAsrR19_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_AEADEncrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                Holds the identifier of the job using the CSM service.
 *  \param[in]     mode                 Indicates which operation mode(s) to perform.
 *  \param[in]     plaintextPtr         Contains the pointer to the data to be encrypted.
 *  \param[in]     plaintextLength      Contains the number of bytes to encrypt.
 *  \param[in]     associatedDataPtr    Contains the pointer to the associated data.
 *  \param[in]     associatedDataLength Contains the number of bytes of the associated data.
 *  \param[out]    ciphertextPtr        Contains the pointer to the data where the encrypted data shall be stored.
 *  \param[in,out] ciphertextLengthPtr  Holds a pointer to the memory location in which the output length in bytes of
 *                                      the ciphertext is stored. On calling this function, this parameter shall
 *                                      contain the size of the buffer in bytes provided by ciphertextPtr. When the
 *                                      request has finished, the actual length of the returned value shall be stored.
 *  \param[out]    tagPtr               Contains the pointer to the data where the Tag shall be stored.
 *  \param[in,out] tagLengthPtr         Holds a pointer to the memory location in which the output length in bytes of
 *                                      the Tag is stored. On calling this function, this parameter shall contain the
 *                                      size of the buffer in bytes provided by tagPtr. When the request has
 *                                      finished, the actual length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_AEADEncryptDataRefAsrR19_11(uint32 jobId,
                                                                      Crypto_OperationModeType mode,
                                                                      P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) plaintextPtr,
                                                                      uint32 plaintextLength,
                                                                      P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) associatedDataPtr,
                                                                      uint32 associatedDataLength,
                                                                      P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) ciphertextPtr,
                                                                      P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) ciphertextLengthPtr,
                                                                      P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) tagPtr,
                                                                      P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) tagLengthPtr);

/**********************************************************************************************************************
 *  Csm_AEADEncryptDataRef()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_AEADEncrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                Holds the identifier of the job using the CSM service.
 *  \param[in]     mode                 Indicates which operation mode(s) to perform.
 *  \param[in]     plaintextPtr         Contains the pointer to the data to be encrypted.
 *  \param[in]     plaintextLength      Contains the number of bytes to encrypt.
 *  \param[in]     associatedDataPtr    Contains the pointer to the associated data.
 *  \param[in]     associatedDataLength Contains the number of bytes of the associated data.
 *  \param[out]    ciphertextPtr        Contains the pointer to the data where the encrypted data shall be stored.
 *  \param[in,out] ciphertextLengthPtr  Holds a pointer to the memory location in which the output length in bytes of
 *                                      the ciphertext is stored. On calling this function, this parameter shall
 *                                      contain the size of the buffer in bytes provided by ciphertextPtr. When the
 *                                      request has finished, the actual length of the returned value shall be stored.
 *  \param[out]    tagPtr               Contains the pointer to the data where the Tag shall be stored.
 *  \param[in,out] tagLengthPtr         Holds a pointer to the memory location in which the output length in bytes of
 *                                      the Tag is stored. On calling this function, this parameter shall contain the
 *                                      size of the buffer in bytes provided by tagPtr. When the request has
 *                                      finished, the actual length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_AEADEncryptDataRef(uint32 jobId,
                                                             Crypto_OperationModeType mode,
                                                             P2CONST(void, AUTOMATIC, CSM_APPL_VAR) plaintextPtr,
                                                             uint32 plaintextLength,
                                                             P2CONST(void, AUTOMATIC, CSM_APPL_VAR) associatedDataPtr,
                                                             uint32 associatedDataLength,
                                                             P2VAR(void, AUTOMATIC, CSM_APPL_VAR) ciphertextPtr,
                                                             P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) ciphertextLengthPtr,
                                                             P2VAR(void, AUTOMATIC, CSM_APPL_VAR) tagPtr,
                                                             P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) tagLengthPtr);

/**********************************************************************************************************************
 *  Csm_AEADDecryptAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_AEADDecrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                Holds the identifier of the job using the CSM service.
 *  \param[in]     mode                 Indicates which operation mode(s) to perform.
 *  \param[in]     ciphertextPtr        Contains the pointer to the data to be decrypted.
 *  \param[in]     ciphertextLength     Contains the number of bytes to decrypt.
 *  \param[in]     associatedDataPtr    Contains the pointer to the associated data.
 *  \param[in]     associatedDataLength Contains the number of bytes of the associated data.
 *  \param[in]     tagPtr               Contains the pointer to the data where the Tag shall be stored.
 *  \param[in]     tagLength            Contains the length in bytes of the Tag to be verified.
 *  \param[out]    plaintextPtr         Contains the pointer to the data where the encrypted data shall be stored.
 *  \param[in,out] plaintextLengthPtr   Holds a pointer to the memory location in which the output length in bytes of
 *                                      the plaintext is stored. On calling this function, this parameter shall
 *                                      contain the size of the buffer in bytes provided by plaintextPtr. When the
 *                                      request has finished, the actual length of the returned value shall be stored.
 *  \param[out]    verifyPtr            Contains the pointer to the result of the verification.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_AEADDecryptAsr4_03(uint32 jobId,
                                                             Crypto_OperationModeType mode,
                                                             P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) ciphertextPtr,
                                                             uint32 ciphertextLength,
                                                             P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) associatedDataPtr,
                                                             uint32 associatedDataLength,
                                                             P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) tagPtr,
                                                             uint32 tagLength,
                                                             P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) plaintextPtr,
                                                             P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) plaintextLengthPtr,
                                                             P2VAR(Crypto_VerifyResultType, AUTOMATIC, CSM_APPL_VAR) verifyPtr);

/**********************************************************************************************************************
 *  Csm_AEADDecryptAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_AEADDecrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                Holds the identifier of the job using the CSM service.
 *  \param[in]     mode                 Indicates which operation mode(s) to perform.
 *  \param[in]     ciphertextPtr        Contains the pointer to the data to be decrypted.
 *  \param[in]     ciphertextLength     Contains the number of bytes to decrypt.
 *  \param[in]     associatedDataPtr    Contains the pointer to the associated data.
 *  \param[in]     associatedDataLength Contains the number of bytes of the associated data.
 *  \param[in]     tagPtr               Contains the pointer to the data where the Tag shall be stored.
 *  \param[in]     tagLength            Contains the length in bytes of the Tag to be verified.
 *  \param[out]    plaintextPtr         Contains the pointer to the data where the encrypted data shall be stored.
 *  \param[in,out] plaintextLengthPtr   Holds a pointer to the memory location in which the output length in bytes of
 *                                      the plaintext is stored. On calling this function, this parameter shall
 *                                      contain the size of the buffer in bytes provided by plaintextPtr. When the
 *                                      request has finished, the actual length of the returned value shall be stored.
 *  \param[out]    verifyPtr            Contains the pointer to the result of the verification.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_AEADDecryptAsr4_04(uint32 jobId,
                                                             Crypto_OperationModeType mode,
                                                             P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) ciphertextPtr,
                                                             uint32 ciphertextLength,
                                                             P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) associatedDataPtr,
                                                             uint32 associatedDataLength,
                                                             P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) tagPtr,
                                                             uint32 tagLength,
                                                             P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) plaintextPtr,
                                                             P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) plaintextLengthPtr,
                                                             P2VAR(Crypto_VerifyResultType, AUTOMATIC, CSM_APPL_VAR) verifyPtr);

/**********************************************************************************************************************
 *  Csm_AEADDecryptDataRefAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_AEADDecrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                Holds the identifier of the job using the CSM service.
 *  \param[in]     mode                 Indicates which operation mode(s) to perform.
 *  \param[in]     ciphertextPtr        Contains the pointer to the data to be decrypted.
 *  \param[in]     ciphertextLength     Contains the number of bytes to decrypt.
 *  \param[in]     associatedDataPtr    Contains the pointer to the associated data.
 *  \param[in]     associatedDataLength Contains the number of bytes of the associated data.
 *  \param[in]     tagPtr               Contains the pointer to the data where the Tag shall be stored.
 *  \param[in]     tagLength            Contains the length in bytes of the Tag to be verified.
 *  \param[out]    plaintextPtr         Contains the pointer to the data where the encrypted data shall be stored.
 *  \param[in,out] plaintextLengthPtr   Holds a pointer to the memory location in which the output length in bytes of
 *                                      the plaintext is stored. On calling this function, this parameter shall
 *                                      contain the size of the buffer in bytes provided by plaintextPtr. When the
 *                                      request has finished, the actual length of the returned value shall be stored.
 *  \param[out]    verifyPtr            Contains the pointer to the result of the verification.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_AEADDecryptDataRefAsr4_04(uint32 jobId,
                                                                    Crypto_OperationModeType mode,
                                                                    P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) ciphertextPtr,
                                                                    uint32 ciphertextLength,
                                                                    P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) associatedDataPtr,
                                                                    uint32 associatedDataLength,
                                                                    P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) tagPtr,
                                                                    uint32 tagLength,
                                                                    P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) plaintextPtr,
                                                                    P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) plaintextLengthPtr,
                                                                    P2VAR(Crypto_VerifyResultType, AUTOMATIC, CSM_APPL_VAR) verifyPtr);

/**********************************************************************************************************************
 *  Csm_AEADDecryptDataRefAsrR19_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_AEADDecrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                Holds the identifier of the job using the CSM service.
 *  \param[in]     mode                 Indicates which operation mode(s) to perform.
 *  \param[in]     ciphertextPtr        Contains the pointer to the data to be decrypted.
 *  \param[in]     ciphertextLength     Contains the number of bytes to decrypt.
 *  \param[in]     associatedDataPtr    Contains the pointer to the associated data.
 *  \param[in]     associatedDataLength Contains the number of bytes of the associated data.
 *  \param[in]     tagPtr               Contains the pointer to the data where the Tag shall be stored.
 *  \param[in]     tagLength            Contains the length in bytes of the Tag to be verified.
 *  \param[out]    plaintextPtr         Contains the pointer to the data where the encrypted data shall be stored.
 *  \param[in,out] plaintextLengthPtr   Holds a pointer to the memory location in which the output length in bytes of
 *                                      the plaintext is stored. On calling this function, this parameter shall
 *                                      contain the size of the buffer in bytes provided by plaintextPtr. When the
 *                                      request has finished, the actual length of the returned value shall be stored.
 *  \param[out]    verifyPtr            Contains the pointer to the result of the verification.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_AEADDecryptDataRefAsrR19_11(uint32 jobId,
                                                                      Crypto_OperationModeType mode,
                                                                      P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) ciphertextPtr,
                                                                      uint32 ciphertextLength,
                                                                      P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) associatedDataPtr,
                                                                      uint32 associatedDataLength,
                                                                      P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) tagPtr,
                                                                      uint32 tagLength,
                                                                      P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) plaintextPtr,
                                                                      P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) plaintextLengthPtr,
                                                                      P2VAR(Crypto_VerifyResultType, AUTOMATIC, CSM_APPL_VAR) verifyPtr);

/**********************************************************************************************************************
 *  Csm_AEADDecryptDataRef()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_AEADDecrypt().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                Holds the identifier of the job using the CSM service.
 *  \param[in]     mode                 Indicates which operation mode(s) to perform.
 *  \param[in]     ciphertextPtr        Contains the pointer to the data to be decrypted.
 *  \param[in]     ciphertextLength     Contains the number of bytes to decrypt.
 *  \param[in]     associatedDataPtr    Contains the pointer to the associated data.
 *  \param[in]     associatedDataLength Contains the number of bytes of the associated data.
 *  \param[in]     tagPtr               Contains the pointer to the data where the Tag shall be stored.
 *  \param[in]     tagLength            Contains the length in bytes of the Tag to be verified.
 *  \param[out]    plaintextPtr         Contains the pointer to the data where the encrypted data shall be stored.
 *  \param[in,out] plaintextLengthPtr   Holds a pointer to the memory location in which the output length in bytes of
 *                                      the plaintext is stored. On calling this function, this parameter shall
 *                                      contain the size of the buffer in bytes provided by plaintextPtr. When the
 *                                      request has finished, the actual length of the returned value shall be stored.
 *  \param[out]    verifyPtr            Contains the pointer to the result of the verification.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_AEADDecryptDataRef(uint32 jobId,
                                                             Crypto_OperationModeType mode,
                                                             P2CONST(void, AUTOMATIC, CSM_APPL_VAR) ciphertextPtr,
                                                             uint32 ciphertextLength,
                                                             P2CONST(void, AUTOMATIC, CSM_APPL_VAR) associatedDataPtr,
                                                             uint32 associatedDataLength,
                                                             P2CONST(void, AUTOMATIC, CSM_APPL_VAR) tagPtr,
                                                             uint32 tagLength,
                                                             P2VAR(void, AUTOMATIC, CSM_APPL_VAR) plaintextPtr,
                                                             P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) plaintextLengthPtr,
                                                             P2VAR(Crypto_VerifyResultType, AUTOMATIC, CSM_APPL_VAR) verifyPtr);

/**********************************************************************************************************************
 *  Csm_SignatureGenerateAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_SignatureGenerate().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be signed.
 *  \param[in]     dataLength         Contains the number of bytes to sign.
 *  \param[out]    signaturePtr       Contains the pointer to the data where the signature shall be stored.
 *  \param[in,out] signatureLengthPtr Holds a pointer to the memory location in which the output length in bytes is
 *                                    stored. On calling this function, this parameter shall contain the size of the
 *                                    buffer in bytes provided by resultPtr. When the request has finished, the actual
 *                                    length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_SignatureGenerateAsr4_03(uint32 jobId,
                                                                   Crypto_OperationModeType mode,
                                                                   P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                                   uint32 dataLength,
                                                                   P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) signaturePtr,
                                                                   P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) signatureLengthPtr);

/**********************************************************************************************************************
 *  Csm_SignatureGenerateAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_SignatureGenerate().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be signed.
 *  \param[in]     dataLength         Contains the number of bytes to sign.
 *  \param[out]    signaturePtr       Contains the pointer to the data where the signature shall be stored.
 *  \param[in,out] signatureLengthPtr Holds a pointer to the memory location in which the output length in bytes is
 *                                    stored. On calling this function, this parameter shall contain the size of the
 *                                    buffer in bytes provided by resultPtr. When the request has finished, the actual
 *                                    length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_SignatureGenerateAsr4_04(uint32 jobId,
                                                                   Crypto_OperationModeType mode,
                                                                   P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                                   uint32 dataLength,
                                                                   P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) signaturePtr,
                                                                   P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) signatureLengthPtr);

/**********************************************************************************************************************
 *  Csm_SignatureGenerateDataRefAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_SignatureGenerate().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be signed.
 *  \param[in]     dataLength         Contains the number of bytes to sign.
 *  \param[out]    signaturePtr       Contains the pointer to the data where the signature shall be stored.
 *  \param[in,out] signatureLengthPtr Holds a pointer to the memory location in which the output length in bytes is
 *                                    stored. On calling this function, this parameter shall contain the size of the
 *                                    buffer in bytes provided by resultPtr. When the request has finished, the actual
 *                                    length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_SignatureGenerateDataRefAsr4_04(uint32 jobId,
                                                                          Crypto_OperationModeType mode,
                                                                          P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                                          uint32 dataLength,
                                                                          P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) signaturePtr,
                                                                          P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) signatureLengthPtr);

/**********************************************************************************************************************
 *  Csm_SignatureGenerateDataRefAsrR19_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_SignatureGenerate().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be signed.
 *  \param[in]     dataLength         Contains the number of bytes to sign.
 *  \param[out]    signaturePtr       Contains the pointer to the data where the signature shall be stored.
 *  \param[in,out] signatureLengthPtr Holds a pointer to the memory location in which the output length in bytes is
 *                                    stored. On calling this function, this parameter shall contain the size of the
 *                                    buffer in bytes provided by resultPtr. When the request has finished, the actual
 *                                    length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_SignatureGenerateDataRefAsrR19_11(uint32 jobId,
                                                                            Crypto_OperationModeType mode,
                                                                            P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                                            uint32 dataLength,
                                                                            P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) signaturePtr,
                                                                            P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) signatureLengthPtr);

/**********************************************************************************************************************
 *  Csm_SignatureGenerateDataRef()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_SignatureGenerate().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be signed.
 *  \param[in]     dataLength         Contains the number of bytes to sign.
 *  \param[out]    signaturePtr       Contains the pointer to the data where the signature shall be stored.
 *  \param[in,out] signatureLengthPtr Holds a pointer to the memory location in which the output length in bytes is
 *                                    stored. On calling this function, this parameter shall contain the size of the
 *                                    buffer in bytes provided by resultPtr. When the request has finished, the actual
 *                                    length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER       The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_SignatureGenerateDataRef(uint32 jobId,
                                                                   Crypto_OperationModeType mode,
                                                                   P2CONST(void, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                                   uint32 dataLength,
                                                                   P2VAR(void, AUTOMATIC, CSM_APPL_VAR) signaturePtr,
                                                                   P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) signatureLengthPtr);

/**********************************************************************************************************************
 *  Csm_SignatureVerifyAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_SignatureVerify().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be verified.
 *  \param[in]     dataLength         Contains the number of bytes to be verified.
 *  \param[in]     signaturePtr       Holds a pointer to the signature to be verified.
 *  \param[in]     signatureLength    Contains the signature length in bytes.
 *  \param[out]    verifyPtr          Holds a pointer to the memory location, which will hold the result of the
 *                                    signature verification.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_SignatureVerifyAsr4_03(uint32 jobId,
                                                                 Crypto_OperationModeType mode,
                                                                 P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                                 uint32 dataLength,
                                                                 P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) signaturePtr,
                                                                 uint32 signatureLength,
                                                                 P2VAR(Crypto_VerifyResultType, AUTOMATIC, CSM_APPL_VAR) verifyPtr);

/**********************************************************************************************************************
 *  Csm_SignatureVerifyAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_SignatureVerify().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be verified.
 *  \param[in]     dataLength         Contains the number of bytes to be verified.
 *  \param[in]     signaturePtr       Holds a pointer to the signature to be verified.
 *  \param[in]     signatureLength    Contains the signature length in bytes.
 *  \param[out]    verifyPtr          Holds a pointer to the memory location, which will hold the result of the
 *                                    signature verification.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_SignatureVerifyAsr4_04(uint32 jobId,
                                                                 Crypto_OperationModeType mode,
                                                                 P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                                 uint32 dataLength,
                                                                 P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) signaturePtr,
                                                                 uint32 signatureLength,
                                                                 P2VAR(Crypto_VerifyResultType, AUTOMATIC, CSM_APPL_VAR) verifyPtr);

/**********************************************************************************************************************
 *  Csm_SignatureVerifyDataRefAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_SignatureVerify().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be verified.
 *  \param[in]     dataLength         Contains the number of bytes to be verified.
 *  \param[in]     signaturePtr       Holds a pointer to the signature to be verified.
 *  \param[in]     signatureLength    Contains the signature length in bytes.
 *  \param[out]    verifyPtr          Holds a pointer to the memory location, which will hold the result of the
 *                                    signature verification.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_SignatureVerifyDataRefAsr4_04(uint32 jobId,
                                                                        Crypto_OperationModeType mode,
                                                                        P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                                        uint32 dataLength,
                                                                        P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) signaturePtr,
                                                                        uint32 signatureLength,
                                                                        P2VAR(Crypto_VerifyResultType, AUTOMATIC, CSM_APPL_VAR) verifyPtr);

/**********************************************************************************************************************
 *  Csm_SignatureVerifyDataRefAsrR19_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_SignatureVerify().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be verified.
 *  \param[in]     dataLength         Contains the number of bytes to be verified.
 *  \param[in]     signaturePtr       Holds a pointer to the signature to be verified.
 *  \param[in]     signatureLength    Contains the signature length in bytes.
 *  \param[out]    verifyPtr          Holds a pointer to the memory location, which will hold the result of the
 *                                    signature verification.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_SignatureVerifyDataRefAsrR19_11(uint32 jobId,
                                                                          Crypto_OperationModeType mode,
                                                                          P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                                          uint32 dataLength,
                                                                          P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) signaturePtr,
                                                                          uint32 signatureLength,
                                                                          P2VAR(Crypto_VerifyResultType, AUTOMATIC, CSM_APPL_VAR) verifyPtr);

/**********************************************************************************************************************
 *  Csm_SignatureVerifyDataRef()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_SignatureVerify().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId              Holds the identifier of the job using the CSM service.
 *  \param[in]     mode               Indicates which operation mode(s) to perform.
 *  \param[in]     dataPtr            Contains the pointer to the data to be verified.
 *  \param[in]     dataLength         Contains the number of bytes to be verified.
 *  \param[in]     signaturePtr       Holds a pointer to the signature to be verified.
 *  \param[in]     signatureLength    Contains the signature length in bytes.
 *  \param[out]    verifyPtr          Holds a pointer to the memory location, which will hold the result of the
 *                                    signature verification.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_SignatureVerifyDataRef(uint32 jobId,
                                                                 Crypto_OperationModeType mode,
                                                                 P2CONST(void, AUTOMATIC, CSM_APPL_VAR) dataPtr,
                                                                 uint32 dataLength,
                                                                 P2CONST(void, AUTOMATIC, CSM_APPL_VAR) signaturePtr,
                                                                 uint32 signatureLength,
                                                                 P2VAR(Crypto_VerifyResultType, AUTOMATIC, CSM_APPL_VAR) verifyPtr);

/**********************************************************************************************************************
 *  Csm_RandomGenerateAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_RandomGenerate().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId               Holds the identifier of the job using the CSM service.
 *  \param[out]    resultPtr           Holds a pointer to the memory location which will hold the result of the
 *                                     random number generation.
 *  \param[in,out] resultLengthPtr     Holds a pointer to the memory location in which the result length in bytes
 *                                     is stored. On calling this function, this parameter shall contain the
 *                                     number of random bytes, which shall be stored to the buffer provided by
 *                                     resultPtr. When the request has finished, the actual length of the returned
 *                                     value shall be stored.
 *  \return        E_OK                         Request successful
 *                 E_NOT_OK                     Request failed
 *                 CRYPTO_E_BUSY                Request failed, service is busy or queue is full
 *                 CRYPTO_E_SMALL_BUFFER        The provided buffer is too small to store the result
 *                 CRYPTO_E_ENTROPY_EXHAUSTION  Request failed, entropy of random number generator is exhausted
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_RandomGenerateAsr4_03(uint32 jobId,
                                                                P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) resultPtr,
                                                                P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) resultLengthPtr);

/**********************************************************************************************************************
 *  Csm_RandomGenerateDataRefAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_RandomGenerate().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId               Holds the identifier of the job using the CSM service.
 *  \param[out]    resultPtr           Holds a pointer to the memory location which will hold the result of the
 *                                     random number generation.
 *  \param[in,out] resultLengthPtr     Holds a pointer to the memory location in which the result length in bytes
 *                                     is stored. On calling this function, this parameter shall contain the
 *                                     number of random bytes, which shall be stored to the buffer provided by
 *                                     resultPtr. When the request has finished, the actual length of the returned
 *                                     value shall be stored.
 *  \return        E_OK                         Request successful
 *                 E_NOT_OK                     Request failed
 *                 CRYPTO_E_BUSY                Request failed, service is busy or queue is full
 *                 CRYPTO_E_SMALL_BUFFER        The provided buffer is too small to store the result
 *                 CRYPTO_E_ENTROPY_EXHAUSTION  Request failed, entropy of random number generator is exhausted
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_RandomGenerateDataRefAsr4_03(uint32 jobId,
                                                                       P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) resultPtr,
                                                                       P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) resultLengthPtr);

/**********************************************************************************************************************
 *  Csm_RandomGenerateDataRefAsrR19_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_RandomGenerate().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId               Holds the identifier of the job using the CSM service.
 *  \param[out]    resultPtr           Holds a pointer to the memory location which will hold the result of the
 *                                     random number generation.
 *  \param[in,out] resultLengthPtr     Holds a pointer to the memory location in which the result length in bytes
 *                                     is stored. On calling this function, this parameter shall contain the
 *                                     number of random bytes, which shall be stored to the buffer provided by
 *                                     resultPtr. When the request has finished, the actual length of the returned
 *                                     value shall be stored.
 *  \return        E_OK                         Request successful
 *                 E_NOT_OK                     Request failed
 *                 CRYPTO_E_BUSY                Request failed, service is busy or queue is full
 *                 CRYPTO_E_SMALL_BUFFER        The provided buffer is too small to store the result
 *                 CRYPTO_E_ENTROPY_EXHAUSTION  Request failed, entropy of random number generator is exhausted
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_RandomGenerateDataRefAsrR19_11(uint32 jobId,
                                                                         P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) resultPtr,
                                                                         P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) resultLengthPtr);

/**********************************************************************************************************************
 *  Csm_RandomGenerateDataRef()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_RandomGenerate().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId               Holds the identifier of the job using the CSM service.
 *  \param[out]    resultPtr           Holds a pointer to the memory location which will hold the result of the
 *                                     random number generation.
 *  \param[in,out] resultLengthPtr     Holds a pointer to the memory location in which the result length in bytes
 *                                     is stored. On calling this function, this parameter shall contain the
 *                                     number of random bytes, which shall be stored to the buffer provided by
 *                                     resultPtr. When the request has finished, the actual length of the returned
 *                                     value shall be stored.
 *  \return        E_OK                         Request successful
 *                 E_NOT_OK                     Request failed
 *                 CRYPTO_E_BUSY                Request failed, service is busy or queue is full
 *                 CRYPTO_E_SMALL_BUFFER        The provided buffer is too small to store the result
 *                 CRYPTO_E_ENTROPY_EXHAUSTION  Request failed, entropy of random number generator is exhausted
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_RandomGenerateDataRef(uint32 jobId,
                                                                P2VAR(void, AUTOMATIC, CSM_APPL_VAR) resultPtr,
                                                                P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) resultLengthPtr);

/**********************************************************************************************************************
 *  Csm_CancelJobAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_CancelJob().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId        Holds the identifier of the job using the CSM service.
 *  \param[in]     mode         Not used, just for interface compatibility provided
 *  \return        E_OK                    Request successful - Job was cancelled or was already Idle
 *                 E_NOT_OK                Request failed - Job could not be cancelled
 *                 CRYPTO_E_JOB_CANCELED   Request pending - Job will be cancelled with next callback notification
 *  \pre           -
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with E_NOT_OK)
 *  \synchronous   TRUE
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_CancelJobAsr4_03(uint32 jobId, Crypto_OperationModeType mode);

/**********************************************************************************************************************
 *  Csm_CancelJobAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_CancelJob().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId        Holds the identifier of the job using the CSM service.
 *  \param[in]     mode         Not used, just for interface compatibility provided
 *  \return        E_OK                    Request successful - Job was cancelled or was already Idle
 *                 E_NOT_OK                Request failed - Job could not be cancelled
 *                 CRYPTO_E_JOB_CANCELED   Request pending - Job will be cancelled with next callback notification
 *  \pre           -
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with E_NOT_OK)
 *  \synchronous   TRUE
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_CancelJobAsr4_04(uint32 jobId, Crypto_OperationModeType mode);

/**********************************************************************************************************************
 *  Csm_CancelJobNoOpMode()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_CancelJob().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId        Holds the identifier of the job using the CSM service.
 *  \return        E_OK                    Request successful - Job was cancelled or was already Idle
 *                 E_NOT_OK                Request failed - Job could not be cancelled
 *                 CRYPTO_E_JOB_CANCELED   Request pending - Job will be cancelled with next callback notification
 *  \pre           -
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with E_NOT_OK)
 *  \synchronous   TRUE
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_CancelJobNoOpMode(uint32 jobId);

/**********************************************************************************************************************
 *  Csm_CancelJobNoOpModeAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_CancelJob().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId        Holds the identifier of the job using the CSM service.
 *  \return        E_OK                    Request successful - Job was cancelled or was already Idle
 *                 E_NOT_OK                Request failed - Job could not be cancelled
 *                 CRYPTO_E_JOB_CANCELED   Request pending - Job will be cancelled with next callback notification
 *  \pre           -
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with E_NOT_OK)
 *  \synchronous   TRUE
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_CancelJobNoOpModeAsr4_03(uint32 jobId);

/**********************************************************************************************************************
 *  Csm_CancelJobNoOpModeAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_CancelJob().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId        Holds the identifier of the job using the CSM service.
 *  \return        E_OK                    Request successful - Job was cancelled or was already Idle
 *                 E_NOT_OK                Request failed - Job could not be cancelled
 *                 CRYPTO_E_JOB_CANCELED   Request pending - Job will be cancelled with next callback notification
 *  \pre           -
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with E_NOT_OK)
 *  \synchronous   TRUE
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_CancelJobNoOpModeAsr4_04(uint32 jobId);

/**********************************************************************************************************************
 *  Csm_JobKeyDeriveAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_JobKeyDerive44x().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId         Holds the identifier of the job using the CSM service.
 *  \param[in]     keyId         Not used - keyId already given by corresponding job of passed jobId
 *  \param[in]     targetKeyId   Holds the identifier of the key which is used to store the derived key.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_READ_FAIL      Request failed, not allowed to extract key element
 *                 CRYPTO_E_KEY_WRITE_FAIL     Request failed, not allowed to write key element
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_JobKeyDeriveAsr4_03(uint32 jobId, uint32 keyId, uint32 targetKeyId);

/**********************************************************************************************************************
 *  Csm_JobKeyDeriveAsrR19_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_JobKeyDerive44x().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId         Holds the identifier of the job using the CSM service.
 *  \param[in]     keyId         Not used - keyId already given by corresponding job of passed jobId
 *  \param[in]     targetKeyId   Holds the identifier of the key which is used to store the derived key.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_READ_FAIL      Request failed, not allowed to extract key element
 *                 CRYPTO_E_KEY_WRITE_FAIL     Request failed, not allowed to write key element
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_JobKeyDeriveAsrR19_11(uint32 jobId, uint32 keyId, uint32 targetKeyId);

/**********************************************************************************************************************
 *  Csm_JobKeyExchangeCalcPubValAsrR21_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_JobKeyExchangeCalcPubVal().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                  Holds the identifier of the job using the CSM service.
 *  \param[out]    publicValuePtr         Contains the pointer to the data where the public value shall be stored.
 *  \param[in,out] publicValueLengthPtr   Holds a pointer to the memory location in which the public value length information
 *                                        is stored. On calling this function, this parameter shall contain the size of the buffer provided
 *                                        by publicValuePtr. When the request has finished, the actual length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_JobKeyExchangeCalcPubValAsrR21_11(uint32 jobId,
                                                                            P2VAR(void, AUTOMATIC, CSM_APPL_VAR) publicValuePtr,
                                                                            P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) publicValueLengthPtr);

/**********************************************************************************************************************
 *  Csm_JobKeyExchangeCalcPubValAsrR20_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_JobKeyExchangeCalcPubVal44x().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                  Holds the identifier of the job using the CSM service.
 *  \param[in]     keyId                  Not used - keyId already given by corresponding job of passed jobId
 *  \param[out]    publicValuePtr         Contains the pointer to the data where the public value shall be stored.
 *  \param[in,out] publicValueLengthPtr   Holds a pointer to the memory location in which the public value length information
 *                                        is stored. On calling this function, this parameter shall contain the size of the buffer provided
 *                                        by publicValuePtr. When the request has finished, the actual length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_JobKeyExchangeCalcPubValAsrR20_11(uint32 jobId,
                                                                            uint32 keyId,
                                                                            P2VAR(void, AUTOMATIC, CSM_APPL_VAR) publicValuePtr,
                                                                            P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) publicValueLengthPtr);

/**********************************************************************************************************************
 *  Csm_JobKeyExchangeCalcPubValAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_JobKeyExchangeCalcPubVal44x().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                  Holds the identifier of the job using the CSM service.
 *  \param[in]     keyId                  Not used - keyId already given by corresponding job of passed jobId
 *  \param[out]    publicValuePtr         Contains the pointer to the data where the public value shall be stored.
 *  \param[in,out] publicValueLengthPtr   Holds a pointer to the memory location in which the public value length information
 *                                        is stored. On calling this function, this parameter shall contain the size of the buffer provided
 *                                        by publicValuePtr. When the request has finished, the actual length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_JobKeyExchangeCalcPubValAsr4_03(uint32 jobId,
                                                                          uint32 keyId,
                                                                          P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) publicValuePtr,
                                                                          P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) publicValueLengthPtr);

/**********************************************************************************************************************
 *  Csm_JobKeyExchangeCalcPubValAsrR19_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_JobKeyExchangeCalcPubVal44x().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                  Holds the identifier of the job using the CSM service.
 *  \param[in]     keyId                  Not used - keyId already given by corresponding job of passed jobId
 *  \param[out]    publicValuePtr         Contains the pointer to the data where the public value shall be stored.
 *  \param[in,out] publicValueLengthPtr   Holds a pointer to the memory location in which the public value length information
 *                                        is stored. On calling this function, this parameter shall contain the size of the buffer provided
 *                                        by publicValuePtr. When the request has finished, the actual length of the returned value shall be stored.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_JobKeyExchangeCalcPubValAsrR19_11(uint32 jobId,
                                                                            uint32 keyId,
                                                                            P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) publicValuePtr,
                                                                            P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) publicValueLengthPtr);

/**********************************************************************************************************************
 *  Csm_JobKeyExchangeCalcSecretAsrR21_11_A()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_JobKeyExchangeCalcSecret().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                     Holds the identifier of the job using the CSM service.
 *  \param[in]     partnerPublicValuePtr     Holds the pointer to the memory location which contains the partner's public value.
 *  \param[in]     partnerPublicValueLength  Contains the length of the partner's public value in bytes.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_JobKeyExchangeCalcSecretAsrR21_11_A(uint32 jobId,
                                                                              P2CONST(void, AUTOMATIC, CSM_APPL_VAR) partnerPublicValuePtr,
                                                                              uint32 partnerPublicValueLength);

/**********************************************************************************************************************
 *  Csm_JobKeyExchangeCalcSecretAsrR21_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_JobKeyExchangeCalcSecret().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                     Holds the identifier of the job using the CSM service.
 *  \param[in]     partnerPublicValuePtr     Holds the pointer to the memory location which contains the partner's public value.
 *  \param[in]     partnerPublicValueLength  Contains the length of the partner's public value in bytes.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_JobKeyExchangeCalcSecretAsrR21_11(uint32 jobId,
                                                                            P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) partnerPublicValuePtr,
                                                                            uint32 partnerPublicValueLength);

/**********************************************************************************************************************
 *  Csm_JobKeyExchangeCalcSecretAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_JobKeyExchangeCalcSecret44x().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                     Holds the identifier of the job using the CSM service.
 *  \param[in]     keyId                     Not used - keyId already given by corresponding job of passed jobId
 *  \param[in]     partnerPublicValuePtr     Holds the pointer to the memory location which contains the partner's public value.
 *  \param[in]     partnerPublicValueLength  Contains the length of the partner's public value in bytes.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_JobKeyExchangeCalcSecretAsr4_03(uint32 jobId,
                                                                          uint32 keyId,
                                                                          P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) partnerPublicValuePtr,
                                                                          uint32 partnerPublicValueLength);

/**********************************************************************************************************************
 *  Csm_JobKeyExchangeCalcSecretAsrR19_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_JobKeyExchangeCalcSecret44x().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                     Holds the identifier of the job using the CSM service.
 *  \param[in]     keyId                     Not used - keyId already given by corresponding job of passed jobId
 *  \param[in]     partnerPublicValuePtr     Holds the pointer to the memory location which contains the partner's public value.
 *  \param[in]     partnerPublicValueLength  Contains the length of the partner's public value in bytes.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_JobKeyExchangeCalcSecretAsrR19_11(uint32 jobId,
                                                                            uint32 keyId,
                                                                            P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) partnerPublicValuePtr,
                                                                            uint32 partnerPublicValueLength);

/**********************************************************************************************************************
 *  Csm_JobKeyGenerateAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_JobKeyGenerate44x().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId         Holds the identifier of the job using the CSM service.
 *  \param[in]     keyId         Not used - keyId already given by corresponding job of passed jobId
 *  \return        E_OK                    Request successful
 *                 E_NOT_OK                Request failed
 *                 CRYPTO_E_BUSY           Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID  Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_EMPTY      Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_JobKeyGenerateAsr4_03(uint32 jobId, uint32 keyId);

/**********************************************************************************************************************
 *  Csm_JobKeyGenerateAsrR19_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_JobKeyGenerate44x().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId         Holds the identifier of the job using the CSM service.
 *  \param[in]     keyId         Not used - keyId already given by corresponding job of passed jobId
 *  \return        E_OK                    Request successful
 *                 E_NOT_OK                Request failed
 *                 CRYPTO_E_BUSY           Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID  Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_EMPTY      Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_JobKeyGenerateAsrR19_11(uint32 jobId, uint32 keyId);

/**********************************************************************************************************************
 *  Csm_JobKeySetInvalidAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_JobKeySetInvalid44x().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId         Holds the identifier of the job using the CSM service.
 *  \param[in]     keyId         Not used - keyId already given by corresponding job of passed jobId
 *  \return        E_OK          Request successful
 *                 E_NOT_OK      Request failed
 *                 CRYPTO_E_BUSY Request failed, service is busy or queue is full
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_JobKeySetInvalidAsr4_03(uint32 jobId, uint32 keyId);

/**********************************************************************************************************************
 *  Csm_JobKeySetValidAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_JobKeySetValid44x().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId         Holds the identifier of the job using the CSM service.
 *  \param[in]     keyId         Not used - keyId already given by corresponding job of passed jobId
 *  \return        E_OK          Request successful
 *                 E_NOT_OK      Request failed
 *                 CRYPTO_E_BUSY Request failed, service is busy or queue is full
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_JobKeySetValidAsr4_03(uint32 jobId, uint32 keyId);

/**********************************************************************************************************************
 *  Csm_JobKeySetValidAsrR19_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_JobKeySetValid44x().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId         Holds the identifier of the job using the CSM service.
 *  \param[in]     keyId         Not used - keyId already given by corresponding job of passed jobId
 *  \return        E_OK          Request successful
 *                 E_NOT_OK      Request failed
 *                 CRYPTO_E_BUSY Request failed, service is busy or queue is full
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_JobKeySetValidAsrR19_11(uint32 jobId, uint32 keyId);

/**********************************************************************************************************************
 *  Csm_JobRandomSeedAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_JobRandomSeed44x().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId         Holds the identifier of the job using the CSM service.
 *  \param[in]     keyId         Not used - keyId already given by corresponding job of passed jobId
 *  \param[in]     seedPtr       Holds a pointer to the memory location which contains the data to feed the seed.
 *  \param[in]     seedLength    Contains the length of the seed in bytes.
 *  \return        E_OK                    Request successful
 *                 E_NOT_OK                Request failed
 *                 CRYPTO_E_BUSY           Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID  Request failed, the key's state is "invalid"
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_JobRandomSeedAsr4_03(uint32 jobId,
                                                               uint32 keyId,
                                                               P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) seedPtr,
                                                               uint32 seedLength);

/**********************************************************************************************************************
 *  Csm_JobRandomSeedAsrR19_11()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_JobRandomSeed44x().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId         Holds the identifier of the job using the CSM service.
 *  \param[in]     keyId         Not used - keyId already given by corresponding job of passed jobId
 *  \param[in]     seedPtr       Holds a pointer to the memory location which contains the data to feed the seed.
 *  \param[in]     seedLength    Contains the length of the seed in bytes.
 *  \return        E_OK                    Request successful
 *                 E_NOT_OK                Request failed
 *                 CRYPTO_E_BUSY           Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID  Request failed, the key's state is "invalid"
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_JobRandomSeedAsrR19_11(uint32 jobId,
                                                                 uint32 keyId,
                                                                 P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) seedPtr,
                                                                 uint32 seedLength);

/**********************************************************************************************************************
 *  Csm_CertificateParseAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_CertificateParse().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId        Holds the identifier of the key to be used for the certificate parsing.
 *  \return        E_OK         Request successful
 *                 E_NOT_OK     Request failed
 *                 CRYPTO_E_BUSY Request failed, Crypto Driver Object is busy
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_CertificateParseAsr4_03(uint32 keyId);

/**********************************************************************************************************************
 *  Csm_CertificateVerifyAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_CertificateVerify().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId        Holds the identifier of the key which shall be used to validate the certificate.
 *  \param[in]     verifyKeyId  Holds the identifier of the key containing the certificate to be verified.
 *  \param[out]    verifyPtr    Holds a pointer to the memory location which will contain the result of the certificate
 *                              verification.
 *  \return        E_OK         Request successful
 *                 E_NOT_OK     Request failed
 *                 CRYPTO_E_BUSY Request failed, Crypto Driver Object is busy
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_CertificateVerifyAsr4_03(uint32 keyId,
                                                                   uint32 verifyKeyId,
                                                                   P2VAR(Crypto_VerifyResultType, AUTOMATIC, CSM_APPL_VAR) verifyPtr);

/**********************************************************************************************************************
 *  Csm_KeyCopyAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_KeyCopy().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId                      Holds the identifier of the key whose key element shall be the source
 *                                            element.
 *  \param[in]     targetKeyId                Holds the identifier of the key whose key element shall be the
 *                                            destination element.
 *  \return        E_OK                       Request successful
 *                 E_NOT_OK                   Request failed
 *                 CRYPTO_E_BUSY              Request failed, Crypto Driver Object is busy
 *                 CRYPTO_E_KEY_READ_FAIL     Request failed because read access was denied
 *                 CRYPTO_E_KEY_WRITE_FAIL    Request failed because write access was denied
 *                 CRYPTO_E_KEY_NOT_AVAILABLE Request failed because the key is not available
 *                 CRYPTO_E_KEY_SIZE_MISMATCH Request failed, key element size does not match size of provided data
 *                 CRYPTO_E_KEY_EMPTY         Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_KeyCopyAsr4_03(uint32 keyId, uint32 targetKeyId);

/**********************************************************************************************************************
 *  Csm_KeyCopyAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_KeyCopy().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId                      Holds the identifier of the key whose key element shall be the source
 *                                            element.
 *  \param[in]     targetKeyId                Holds the identifier of the key whose key element shall be the
 *                                            destination element.
 *  \return        E_OK                       Request successful
 *                 E_NOT_OK                   Request failed
 *                 CRYPTO_E_BUSY              Request failed, Crypto Driver Object is busy
 *                 CRYPTO_E_KEY_READ_FAIL     Request failed because read access was denied
 *                 CRYPTO_E_KEY_WRITE_FAIL    Request failed because write access was denied
 *                 CRYPTO_E_KEY_NOT_AVAILABLE Request failed because the key is not available
 *                 CRYPTO_E_KEY_SIZE_MISMATCH Request failed, key element size does not match size of provided data
 *                 CRYPTO_E_KEY_EMPTY         Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_KeyCopyAsr4_04(uint32 keyId, uint32 targetKeyId);

/**********************************************************************************************************************
 *  Csm_KeyDeriveAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_KeyDerive().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId                       Holds the identifier of the key which is used for key derivation.
 *  \param[in]     targetKeyId                 Holds the identifier of the key which is used to store the derived key.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_READ_FAIL      Request failed, not allowed to extract key element
 *                 CRYPTO_E_KEY_WRITE_FAIL     Request failed, not allowed to write key element
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_KeyDeriveAsr4_03(uint32 keyId, uint32 targetKeyId);

/**********************************************************************************************************************
 *  Csm_KeyDeriveAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_KeyDerive().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId                       Holds the identifier of the key which is used for key derivation.
 *  \param[in]     targetKeyId                 Holds the identifier of the key which is used to store the derived key.
 *  \return        E_OK                        Request successful
 *                 E_NOT_OK                    Request failed
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_READ_FAIL      Request failed, not allowed to extract key element
 *                 CRYPTO_E_KEY_WRITE_FAIL     Request failed, not allowed to write key element
 *                 CRYPTO_E_KEY_NOT_VALID      Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_SIZE_MISMATCH  Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY          Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_KeyDeriveAsr4_04(uint32 keyId, uint32 targetKeyId);

/**********************************************************************************************************************
 *  Csm_KeyElementCopyAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_KeyElementCopy().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId                      Holds the identifier of the key whose key element shall be the source
 *                                            element.
 *  \param[in]     keyElementId               Holds the identifier of the key element which shall be the source for
 *                                            the copy operation.
 *  \param[in]     targetKeyId                Holds the identifier of the key whose key element shall be the
 *                                            destination element.
 *  \param[in]     targetKeyElementId         Holds the identifier of the key element which shall be the destination
 *                                            for the copy operation.
 *  \return        E_OK                       Request successful
 *                 E_NOT_OK                   Request failed
 *                 CRYPTO_E_BUSY              Request failed, Crypto Driver Object is busy
 *                 CRYPTO_E_KEY_READ_FAIL     Request failed because read access was denied
 *                 CRYPTO_E_KEY_WRITE_FAIL    Request failed because write access was denied
 *                 CRYPTO_E_KEY_NOT_AVAILABLE Request failed because the key is not available
 *                 CRYPTO_E_KEY_SIZE_MISMATCH Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY         Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_KeyElementCopyAsr4_03(uint32 keyId,
                                                                uint32 keyElementId,
                                                                uint32 targetKeyId,
                                                                uint32 targetKeyElementId);

/**********************************************************************************************************************
 *  Csm_KeyElementCopyAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_KeyElementCopy().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId                      Holds the identifier of the key whose key element shall be the source
 *                                            element.
 *  \param[in]     keyElementId               Holds the identifier of the key element which shall be the source for
 *                                            the copy operation.
 *  \param[in]     targetKeyId                Holds the identifier of the key whose key element shall be the
 *                                            destination element.
 *  \param[in]     targetKeyElementId         Holds the identifier of the key element which shall be the destination
 *                                            for the copy operation.
 *  \return        E_OK                       Request successful
 *                 E_NOT_OK                   Request failed
 *                 CRYPTO_E_BUSY              Request failed, Crypto Driver Object is busy
 *                 CRYPTO_E_KEY_READ_FAIL     Request failed because read access was denied
 *                 CRYPTO_E_KEY_WRITE_FAIL    Request failed because write access was denied
 *                 CRYPTO_E_KEY_NOT_AVAILABLE Request failed because the key is not available
 *                 CRYPTO_E_KEY_SIZE_MISMATCH Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY         Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_KeyElementCopyAsr4_04(uint32 keyId,
                                                                uint32 keyElementId,
                                                                uint32 targetKeyId,
                                                                uint32 targetKeyElementId);

/**********************************************************************************************************************
 *  Csm_KeyElementCopyPartialAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_KeyElementCopyPartial().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId                      Holds the identifier of the key whose key element shall be the source
 *                                            element.
 *  \param[in]     keyElementId               Holds the identifier of the key element which shall be the source for the
 *                                            copy operation.
 *  \param[in]     keyElementSourceOffset     This is the offset of the source key element indicating the start index
 *                                            of the copy operation.
 *  \param[in]     keyElementTargetOffset     This is the offset of the destination key element indicating the start index
 *                                            of the copy operation.
 *  \param[in]     keyElementCopyLength       Specifies the number of bytes that shall be copied.
 *  \param[in]     targetKeyId                Holds the identifier of the key whose key element shall be the destination
 *                                            element.
 *  \param[in]     targetKeyElementId         Holds the identifier of the key element which shall be the destination for
 *                                            the copy operation.
 *  \return        E_OK                       Request successful
 *                 E_NOT_OK                   Request failed
 *                 CRYPTO_E_BUSY              Request failed, Crypto Driver Object is busy
 *                 CRYPTO_E_KEY_READ_FAIL     Request failed because read access was denied
 *                 CRYPTO_E_KEY_WRITE_FAIL    Request failed because write access was denied
 *                 CRYPTO_E_KEY_NOT_AVAILABLE Request failed because the key is not available
 *                 CRYPTO_E_KEY_SIZE_MISMATCH Request failed, key element sizes are not compatible
 *                 CRYPTO_E_KEY_EMPTY         Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_KeyElementCopyPartialAsr4_03(uint32 keyId,
                                                                       uint32 keyElementId,
                                                                       uint32 keyElementSourceOffset,
                                                                       uint32 keyElementTargetOffset,
                                                                       uint32 keyElementCopyLength,
                                                                       uint32 targetKeyId,
                                                                       uint32 targetKeyElementId);

/**********************************************************************************************************************
 *  Csm_KeyElementGetAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_KeyElementGet().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId                      Holds the identifier of the key from which a key element shall be
 *                                            extracted.
 *  \param[in]     keyElementId               Holds the identifier of the key element to be extracted.
 *  \param[out]    keyPtr                     Holds the pointer to the memory location where the key shall be copied
 *                                            to.
 *  \param[in,out] keyLengthPtr               Holds a pointer to the memory location in which the output buffer length
 *                                            in bytes is stored. On calling this function, this parameter shall
 *                                            contain the buffer length in bytes of the keyPtr. When the request has
 *                                            finished, the actual size of the written input bytes shall be stored.
 *  \return        E_OK                       Request successful
 *                 E_NOT_OK                   Request failed
 *                 CRYPTO_E_BUSY              Request failed, Crypto Driver Object is busy
 *                 CRYPTO_E_KEY_READ_FAIL     Request failed because read access was denied
 *                 CRYPTO_E_KEY_NOT_AVAILABLE Request failed because the key is not available
 *                 CRYPTO_E_KEY_EMPTY         Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER      The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_KeyElementGetAsr4_03(uint32 keyId,
                                                               uint32 keyElementId,
                                                               P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) keyPtr,
                                                               P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) keyLengthPtr);

/**********************************************************************************************************************
 *  Csm_KeyElementGetAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_KeyElementGet().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId                      Holds the identifier of the key from which a key element shall be
 *                                            extracted.
 *  \param[in]     keyElementId               Holds the identifier of the key element to be extracted.
 *  \param[out]    keyPtr                     Holds the pointer to the memory location where the key shall be copied
 *                                            to.
 *  \param[in,out] keyLengthPtr               Holds a pointer to the memory location in which the output buffer length
 *                                            in bytes is stored. On calling this function, this parameter shall
 *                                            contain the buffer length in bytes of the keyPtr. When the request has
 *                                            finished, the actual size of the written input bytes shall be stored.
 *  \return        E_OK                       Request successful
 *                 E_NOT_OK                   Request failed
 *                 CRYPTO_E_BUSY              Request failed, Crypto Driver Object is busy
 *                 CRYPTO_E_KEY_READ_FAIL     Request failed because read access was denied
 *                 CRYPTO_E_KEY_NOT_AVAILABLE Request failed because the key is not available
 *                 CRYPTO_E_KEY_EMPTY         Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER      The provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_KeyElementGetAsr4_04(uint32 keyId,
                                                               uint32 keyElementId,
                                                               P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) keyPtr,
                                                               P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) keyLengthPtr);

/**********************************************************************************************************************
 *  Csm_KeyElementSetAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_KeyElementSet().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId                      Holds the identifier of the key for which a new material shall be set.
 *  \param[in]     keyElementId               Holds the identifier of the key element to be written.
 *  \param[in]     keyPtr                     Holds the pointer to the key element bytes to be processed.
 *  \param[in]     keyLength                  Contains the number of key element bytes.
 *  \return        E_OK                       Request successful
 *                 E_NOT_OK                   Request failed
 *                 CRYPTO_E_BUSY              Request failed, Crypto Driver Object is busy
 *                 CRYPTO_E_KEY_WRITE_FAIL    Request failed because write access was denied.
 *                 CRYPTO_E_KEY_NOT_AVAILABLE Request failed because the key is not available
 *                 CRYPTO_E_KEY_SIZE_MISMATCH Request failed, key element size does not match size of provided data.
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_KeyElementSetAsr4_03(uint32 keyId,
                                                               uint32 keyElementId,
                                                               P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) keyPtr,
                                                               uint32 keyLength);

/**********************************************************************************************************************
 *  Csm_KeyExchangeCalcPubValAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_KeyExchangeCalcPubVal().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId                   Holds the identifier of the key which shall be used for the key exchange
 *                                         protocol.
 *  \param[out]    publicValuePtr          Contains the pointer to the data where the public value shall be stored.
 *  \param[in,out] publicValueLengthPtr    Holds a pointer to the memory location in which the public value length
 *                                         information is stored. On calling this function, this parameter shall
 *                                         contain the size of the buffer provided by publicValuePtr. When the request
 *                                         has finished, the actual length of the returned value shall be stored.
 *  \return        E_OK                    Request successful
 *                 E_NOT_OK                Request failed
 *                 CRYPTO_E_BUSY           Request failed, Crypto Driver Object is busy
 *                 CRYPTO_E_KEY_NOT_VALID  Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_EMPTY      Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER   Request failed because the provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_KeyExchangeCalcPubValAsr4_03(uint32 keyId,
                                                                       P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) publicValuePtr,
                                                                       P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) publicValueLengthPtr);

/**********************************************************************************************************************
 *  Csm_KeyExchangeCalcPubValAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_KeyExchangeCalcPubVal().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId                   Holds the identifier of the key which shall be used for the key exchange
 *                                         protocol.
 *  \param[out]    publicValuePtr          Contains the pointer to the data where the public value shall be stored.
 *  \param[in,out] publicValueLengthPtr    Holds a pointer to the memory location in which the public value length
 *                                         information is stored. On calling this function, this parameter shall
 *                                         contain the size of the buffer provided by publicValuePtr. When the request
 *                                         has finished, the actual length of the returned value shall be stored.
 *  \return        E_OK                    Request successful
 *                 E_NOT_OK                Request failed
 *                 CRYPTO_E_BUSY           Request failed, Crypto Driver Object is busy
 *                 CRYPTO_E_KEY_NOT_VALID  Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_EMPTY      Request failed because of uninitialized source key element
 *                 CRYPTO_E_SMALL_BUFFER   Request failed because the provided buffer is too small to store the result
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_KeyExchangeCalcPubValAsr4_04(uint32 keyId,
                                                                       P2VAR(uint8, AUTOMATIC, CSM_APPL_VAR) publicValuePtr,
                                                                       P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) publicValueLengthPtr);

/**********************************************************************************************************************
 *  Csm_KeyExchangeCalcSecretAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_KeyExchangeCalcSecret().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId                    Holds the identifier of the key which shall be used for the key exchange
 *                                          protocol.
 *  \param[in]     partnerPublicValuePtr    Holds the pointer to the memory location which contains the partner's
 *                                          public value.
 *  \param[in]     partnerPublicValueLength Contains the length of the partner's public value in bytes.
 *  \return        E_OK                     Request successful
 *                 E_NOT_OK                 Request failed
 *                 CRYPTO_E_BUSY            Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID   Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_EMPTY       Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_KeyExchangeCalcSecretAsr4_03(uint32 keyId,
                                                                       P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) partnerPublicValuePtr,
                                                                       uint32 partnerPublicValueLength);

/**********************************************************************************************************************
 *  Csm_KeyExchangeCalcSecretAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_KeyExchangeCalcSecret().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId                    Holds the identifier of the key which shall be used for the key exchange
 *                                          protocol.
 *  \param[in]     partnerPublicValuePtr    Holds the pointer to the memory location which contains the partner's
 *                                          public value.
 *  \param[in]     partnerPublicValueLength Contains the length of the partner's public value in bytes.
 *  \return        E_OK                     Request successful
 *                 E_NOT_OK                 Request failed
 *                 CRYPTO_E_BUSY            Request failed, service is busy or queue is full
 *                 CRYPTO_E_KEY_NOT_VALID   Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_EMPTY       Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_KeyExchangeCalcSecretAsr4_04(uint32 keyId,
                                                                       P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) partnerPublicValuePtr,
                                                                       uint32 partnerPublicValueLength);

/**********************************************************************************************************************
 *  Csm_KeyGenerateAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_KeyGenerate().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId                   Holds the identifier of the key for which a new material shall be generated.
 *  \return        E_OK                    Request successful
 *                 E_NOT_OK                Request failed
 *                 CRYPTO_E_BUSY           Request failed, Crypto Driver Object is busy
 *                 CRYPTO_E_KEY_NOT_VALID  Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_EMPTY      Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_KeyGenerateAsr4_03(uint32 keyId);

/**********************************************************************************************************************
 *  Csm_KeyGenerateAsr4_04()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_KeyGenerate().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId                   Holds the identifier of the key for which a new material shall be generated.
 *  \return        E_OK                    Request successful
 *                 E_NOT_OK                Request failed
 *                 CRYPTO_E_BUSY           Request failed, Crypto Driver Object is busy
 *                 CRYPTO_E_KEY_NOT_VALID  Request failed, the key's state is "invalid"
 *                 CRYPTO_E_KEY_EMPTY      Request failed because of uninitialized source key element
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_KeyGenerateAsr4_04(uint32 keyId);

/**********************************************************************************************************************
 *  Csm_KeySetValidAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_KeySetValid().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId        Holds the identifier of the key for which a new material shall be validated.
 *  \return        E_OK         Request successful
 *                 E_NOT_OK     Request failed
 *                 CRYPTO_E_BUSY Request failed, Crypto Driver Object is busy
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_KeySetValidAsr4_03(uint32 keyId);

/**********************************************************************************************************************
 *  Csm_RandomSeedAsr4_03()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_RandomSeed().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     keyId                   Holds the identifier of the key for which a new seed shall be generated.
 *  \param[in]     seedPtr                 Holds a pointer to the memory location which contains the data to feed the
 *                                         seed.
 *  \param[in]     seedLength              Contains the length of the seed in bytes.
 *  \return        E_OK                    Request successful
 *                 E_NOT_OK                Request failed
 *                 CRYPTO_E_BUSY           Request failed, Crypto Driver Object is busy
 *                 CRYPTO_E_KEY_NOT_VALID  Request failed, the key's state is "invalid"
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same keyId
 *  \synchronous   TRUE
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_RandomSeedAsr4_03(uint32 keyId,
                                                            P2CONST(uint8, AUTOMATIC, CSM_APPL_VAR) seedPtr,
                                                            uint32 seedLength);

/**********************************************************************************************************************
 *  Csm_SaveContextJobWithVoidPtr()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_SaveContextJob().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                       Holds the identifier of the job using the CSM service.
 *  \param[out]    contextBufferPtr            Pointer to the buffer in the application where the context data shall be
 *                                             stored to.
 *  \param[in,out] contextBufferLengthPtr      Pointer to the buffer, where the length value is located.As input data it
 *                                             provides the maximum length of data available in contextBufferPtr.As
 *                                             output data it provides the actual length of data located in context
 *                                             BufferPtr(or 0 in case of a failure)
 *  \return        E_OK                        Context data successfully provided.
 *                 E_NOT_OK                    Context data could not be provided, values are not valid.
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_SaveContextJobWithVoidPtr(uint32 jobId,
                                                                    P2VAR(void, AUTOMATIC, CSM_APPL_VAR) contextBufferPtr,
                                                                    P2VAR(uint32, AUTOMATIC, CSM_APPL_VAR) contextBufferLengthPtr);

/**********************************************************************************************************************
 *  Csm_RestoreContextJobWithVoidPtr()
 *********************************************************************************************************************/
/*! \brief         Wrapper function of Csm_RestoreContextJob().
 *  \details       See original function for behavior, parameter and return value description.
 *  \param[in]     jobId                       Holds the identifier of the job using the CSM service.
 *  \param[in]     contextBufferPtr            Pointer to the buffer, where the context data are located that
 *                                             shall be restored.
 *  \param[in]     contextBufferLength         Provides the length of context data that are located in contextBufferPtr.
 *  \return        E_OK                        Context data successfully restored.
 *                 E_NOT_OK                    Context data could not be restored.
 *                 CRYPTO_E_BUSY               Request failed, service is busy or queue is full
 *  \context       TASK
 *  \reentrant     TRUE, but not for the same jobId (will be rejected with CRYPTO_E_BUSY)
 *  \synchronous   TRUE|FALSE Depends on given job.
 *  \pre           -
 *  \note          Shall only be called by Rte.
 *                 The returned value is defined by the underlying Crypto Driver and may differ from the listed ones.
 *********************************************************************************************************************/
extern FUNC(Std_ReturnType, CSM_CODE) Csm_RestoreContextJobWithVoidPtr(uint32 jobId,
                                                                       P2VAR(void, AUTOMATIC, CSM_APPL_VAR) contextBufferPtr,
                                                                       uint32 contextBufferLength);

#  define CSM_STOP_SEC_CODE
#  include "MemMap.h" /* PRQA S 5087 */ /* MD_MSR_MemMap */

# endif /* (CSM_RTE_PORTS == STD_ON) */

#endif /* !defined (CSM_RTE_H) */
/**********************************************************************************************************************
 *  END OF FILE: Csm_Rte.h
 *********************************************************************************************************************/
