178ee8d1cSJulian Grajkowski /* SPDX-License-Identifier: BSD-3-Clause */ 2*25f09d4aSHareshx Sankar Raj /* Copyright(c) 2007-2025 Intel Corporation */ 378ee8d1cSJulian Grajkowski /** 478ee8d1cSJulian Grajkowski ******************************************************************************* 578ee8d1cSJulian Grajkowski * @file lac_hooks.h 678ee8d1cSJulian Grajkowski * 778ee8d1cSJulian Grajkowski * @defgroup LacHooks Hooks 878ee8d1cSJulian Grajkowski * 978ee8d1cSJulian Grajkowski * @ingroup LacCommon 1078ee8d1cSJulian Grajkowski * 1178ee8d1cSJulian Grajkowski * Component Init/Shutdown functions. These are: 12*25f09d4aSHareshx Sankar Raj * - an init function which is called during the initialisation sequence, 1378ee8d1cSJulian Grajkowski * - a shutdown function which is called by the overall shutdown function, 1478ee8d1cSJulian Grajkowski * 1578ee8d1cSJulian Grajkowski ******************************************************************************/ 1678ee8d1cSJulian Grajkowski 1778ee8d1cSJulian Grajkowski #ifndef LAC_HOOKS_H 1878ee8d1cSJulian Grajkowski #define LAC_HOOKS_H 1978ee8d1cSJulian Grajkowski 2078ee8d1cSJulian Grajkowski /* 2178ee8d1cSJulian Grajkowski ******************************************************************************** 2278ee8d1cSJulian Grajkowski * Include public/global header files 2378ee8d1cSJulian Grajkowski ******************************************************************************** 2478ee8d1cSJulian Grajkowski */ 2578ee8d1cSJulian Grajkowski 2678ee8d1cSJulian Grajkowski #include "cpa.h" 2778ee8d1cSJulian Grajkowski 2878ee8d1cSJulian Grajkowski /* 2978ee8d1cSJulian Grajkowski ******************************************************************************** 3078ee8d1cSJulian Grajkowski * Include private header files 3178ee8d1cSJulian Grajkowski ******************************************************************************** 3278ee8d1cSJulian Grajkowski */ 3378ee8d1cSJulian Grajkowski 3478ee8d1cSJulian Grajkowski /******************************************************************************/ 3578ee8d1cSJulian Grajkowski 3678ee8d1cSJulian Grajkowski /** 3778ee8d1cSJulian Grajkowski ******************************************************************************* 3878ee8d1cSJulian Grajkowski * @ingroup LacHooks 3978ee8d1cSJulian Grajkowski * This function initialises the Large Number (ModExp and ModInv) module 4078ee8d1cSJulian Grajkowski * 4178ee8d1cSJulian Grajkowski * @description 4278ee8d1cSJulian Grajkowski * This function clears the Large Number statistics 4378ee8d1cSJulian Grajkowski * 4478ee8d1cSJulian Grajkowski * @param[in] instanceHandle 4578ee8d1cSJulian Grajkowski * 4678ee8d1cSJulian Grajkowski ******************************************************************************/ 4778ee8d1cSJulian Grajkowski CpaStatus LacLn_Init(CpaInstanceHandle instanceHandle); 4878ee8d1cSJulian Grajkowski 4978ee8d1cSJulian Grajkowski /** 5078ee8d1cSJulian Grajkowski ******************************************************************************* 5178ee8d1cSJulian Grajkowski * @ingroup LacHooks 5278ee8d1cSJulian Grajkowski * This function frees statistics array for Large Number module 5378ee8d1cSJulian Grajkowski * 5478ee8d1cSJulian Grajkowski * @description 5578ee8d1cSJulian Grajkowski * This function frees statistics array for Large Number module 5678ee8d1cSJulian Grajkowski * 5778ee8d1cSJulian Grajkowski * @param[in] instanceHandle 5878ee8d1cSJulian Grajkowski * 5978ee8d1cSJulian Grajkowski ******************************************************************************/ 6078ee8d1cSJulian Grajkowski void LacLn_StatsFree(CpaInstanceHandle instanceHandle); 6178ee8d1cSJulian Grajkowski 6278ee8d1cSJulian Grajkowski /** 6378ee8d1cSJulian Grajkowski ******************************************************************************* 6478ee8d1cSJulian Grajkowski * @ingroup LacHooks 6578ee8d1cSJulian Grajkowski * This function initialises the Prime module 6678ee8d1cSJulian Grajkowski * 6778ee8d1cSJulian Grajkowski * @description 6878ee8d1cSJulian Grajkowski * This function clears the Prime statistics 6978ee8d1cSJulian Grajkowski * 7078ee8d1cSJulian Grajkowski * @param[in] instanceHandle 7178ee8d1cSJulian Grajkowski * 7278ee8d1cSJulian Grajkowski ******************************************************************************/ 7378ee8d1cSJulian Grajkowski CpaStatus LacPrime_Init(CpaInstanceHandle instanceHandle); 7478ee8d1cSJulian Grajkowski 7578ee8d1cSJulian Grajkowski /** 7678ee8d1cSJulian Grajkowski ******************************************************************************* 7778ee8d1cSJulian Grajkowski * @ingroup LacHooks 7878ee8d1cSJulian Grajkowski * This function frees the Prime module statistics array 7978ee8d1cSJulian Grajkowski * 8078ee8d1cSJulian Grajkowski * @description 8178ee8d1cSJulian Grajkowski * This function frees the Prime module statistics array 8278ee8d1cSJulian Grajkowski * 8378ee8d1cSJulian Grajkowski * @param[in] instanceHandle 8478ee8d1cSJulian Grajkowski * 8578ee8d1cSJulian Grajkowski ******************************************************************************/ 8678ee8d1cSJulian Grajkowski void LacPrime_StatsFree(CpaInstanceHandle instanceHandle); 8778ee8d1cSJulian Grajkowski 8878ee8d1cSJulian Grajkowski /** 8978ee8d1cSJulian Grajkowski ******************************************************************************* 9078ee8d1cSJulian Grajkowski * @ingroup LacHooks 9178ee8d1cSJulian Grajkowski * This function initialises the DSA module 9278ee8d1cSJulian Grajkowski * 9378ee8d1cSJulian Grajkowski * @param[in] instanceHandle 9478ee8d1cSJulian Grajkowski * 9578ee8d1cSJulian Grajkowski * @description 9678ee8d1cSJulian Grajkowski * This function clears the DSA statistics 9778ee8d1cSJulian Grajkowski * 9878ee8d1cSJulian Grajkowski ******************************************************************************/ 9978ee8d1cSJulian Grajkowski CpaStatus LacDsa_Init(CpaInstanceHandle instanceHandle); 10078ee8d1cSJulian Grajkowski 10178ee8d1cSJulian Grajkowski /** 10278ee8d1cSJulian Grajkowski ******************************************************************************* 10378ee8d1cSJulian Grajkowski * @ingroup LacHooks 10478ee8d1cSJulian Grajkowski * This function frees the DSA module statistics array 10578ee8d1cSJulian Grajkowski * 10678ee8d1cSJulian Grajkowski * @param[in] instanceHandle 10778ee8d1cSJulian Grajkowski * 10878ee8d1cSJulian Grajkowski * @description 10978ee8d1cSJulian Grajkowski * This function frees the DSA statistics array 11078ee8d1cSJulian Grajkowski * 11178ee8d1cSJulian Grajkowski ******************************************************************************/ 11278ee8d1cSJulian Grajkowski void LacDsa_StatsFree(CpaInstanceHandle instanceHandle); 11378ee8d1cSJulian Grajkowski 11478ee8d1cSJulian Grajkowski /** 11578ee8d1cSJulian Grajkowski ******************************************************************************* 11678ee8d1cSJulian Grajkowski * @ingroup LacHooks 11778ee8d1cSJulian Grajkowski * This function initialises the Diffie Hellmann module 11878ee8d1cSJulian Grajkowski * 11978ee8d1cSJulian Grajkowski * @description 12078ee8d1cSJulian Grajkowski * This function initialises the Diffie Hellman statistics 12178ee8d1cSJulian Grajkowski * 12278ee8d1cSJulian Grajkowski * @param[in] instanceHandle 12378ee8d1cSJulian Grajkowski * 12478ee8d1cSJulian Grajkowski ******************************************************************************/ 12578ee8d1cSJulian Grajkowski CpaStatus LacDh_Init(CpaInstanceHandle instanceHandle); 12678ee8d1cSJulian Grajkowski 12778ee8d1cSJulian Grajkowski /** 12878ee8d1cSJulian Grajkowski ******************************************************************************* 12978ee8d1cSJulian Grajkowski * @ingroup LacHooks 13078ee8d1cSJulian Grajkowski * This function frees the Diffie Hellmann module statistics 13178ee8d1cSJulian Grajkowski * 13278ee8d1cSJulian Grajkowski * @description 13378ee8d1cSJulian Grajkowski * This function frees the Diffie Hellmann module statistics 13478ee8d1cSJulian Grajkowski * 13578ee8d1cSJulian Grajkowski * @param[in] instanceHandle 13678ee8d1cSJulian Grajkowski * 13778ee8d1cSJulian Grajkowski ******************************************************************************/ 13878ee8d1cSJulian Grajkowski void LacDh_StatsFree(CpaInstanceHandle instanceHandle); 13978ee8d1cSJulian Grajkowski 14078ee8d1cSJulian Grajkowski /** 14178ee8d1cSJulian Grajkowski ****************************************************************************** 14278ee8d1cSJulian Grajkowski * @ingroup LacSymKey 14378ee8d1cSJulian Grajkowski * This function registers the callback handlers to SSL/TLS and MGF, 14478ee8d1cSJulian Grajkowski * allocates resources that are needed for the component and clears 14578ee8d1cSJulian Grajkowski * the stats. 14678ee8d1cSJulian Grajkowski * 14778ee8d1cSJulian Grajkowski * @param[in] instanceHandle 14878ee8d1cSJulian Grajkowski * 14978ee8d1cSJulian Grajkowski * @retval CPA_STATUS_SUCCESS Status Success 15078ee8d1cSJulian Grajkowski * @retval CPA_STATUS_FAIL General failure 15178ee8d1cSJulian Grajkowski * @retval CPA_STATUS_RESOURCE Resource allocation failure 15278ee8d1cSJulian Grajkowski * 15378ee8d1cSJulian Grajkowski *****************************************************************************/ 15478ee8d1cSJulian Grajkowski CpaStatus LacSymKey_Init(CpaInstanceHandle instanceHandle); 15578ee8d1cSJulian Grajkowski 15678ee8d1cSJulian Grajkowski /** 15778ee8d1cSJulian Grajkowski ****************************************************************************** 15878ee8d1cSJulian Grajkowski * @ingroup LacSymKey 15978ee8d1cSJulian Grajkowski * This function frees up resources obtained by the key gen component 16078ee8d1cSJulian Grajkowski * and clears the stats 16178ee8d1cSJulian Grajkowski * 16278ee8d1cSJulian Grajkowski * @param[in] instanceHandle 16378ee8d1cSJulian Grajkowski * 16478ee8d1cSJulian Grajkowski * @retval CPA_STATUS_SUCCESS Status Success 16578ee8d1cSJulian Grajkowski * 16678ee8d1cSJulian Grajkowski *****************************************************************************/ 16778ee8d1cSJulian Grajkowski CpaStatus LacSymKey_Shutdown(CpaInstanceHandle instanceHandle); 16878ee8d1cSJulian Grajkowski 16978ee8d1cSJulian Grajkowski /** 17078ee8d1cSJulian Grajkowski ******************************************************************************* 17178ee8d1cSJulian Grajkowski * @ingroup LacHooks 17278ee8d1cSJulian Grajkowski * This function initialises the RSA module 17378ee8d1cSJulian Grajkowski * 17478ee8d1cSJulian Grajkowski * @description 17578ee8d1cSJulian Grajkowski * This function clears the RSA statistics 17678ee8d1cSJulian Grajkowski * 17778ee8d1cSJulian Grajkowski * @param[in] instanceHandle 17878ee8d1cSJulian Grajkowski * 17978ee8d1cSJulian Grajkowski ******************************************************************************/ 18078ee8d1cSJulian Grajkowski CpaStatus LacRsa_Init(CpaInstanceHandle instanceHandle); 18178ee8d1cSJulian Grajkowski 18278ee8d1cSJulian Grajkowski /** 18378ee8d1cSJulian Grajkowski ******************************************************************************* 18478ee8d1cSJulian Grajkowski * @ingroup LacHooks 18578ee8d1cSJulian Grajkowski * This function frees the RSA module statistics 18678ee8d1cSJulian Grajkowski * 18778ee8d1cSJulian Grajkowski * @description 18878ee8d1cSJulian Grajkowski * This function frees the RSA module statistics 18978ee8d1cSJulian Grajkowski * 19078ee8d1cSJulian Grajkowski * @param[in] instanceHandle 19178ee8d1cSJulian Grajkowski * 19278ee8d1cSJulian Grajkowski ******************************************************************************/ 19378ee8d1cSJulian Grajkowski void LacRsa_StatsFree(CpaInstanceHandle instanceHandle); 19478ee8d1cSJulian Grajkowski 19578ee8d1cSJulian Grajkowski /** 19678ee8d1cSJulian Grajkowski ******************************************************************************* 19778ee8d1cSJulian Grajkowski * @ingroup LacHooks 19878ee8d1cSJulian Grajkowski * This function initialises the EC module 19978ee8d1cSJulian Grajkowski * 20078ee8d1cSJulian Grajkowski * @description 20178ee8d1cSJulian Grajkowski * This function clears the EC statistics 20278ee8d1cSJulian Grajkowski * 20378ee8d1cSJulian Grajkowski * @param[in] instanceHandle 20478ee8d1cSJulian Grajkowski * 20578ee8d1cSJulian Grajkowski ******************************************************************************/ 20678ee8d1cSJulian Grajkowski CpaStatus LacEc_Init(CpaInstanceHandle instanceHandle); 20778ee8d1cSJulian Grajkowski 20878ee8d1cSJulian Grajkowski /** 20978ee8d1cSJulian Grajkowski ******************************************************************************* 21078ee8d1cSJulian Grajkowski * @ingroup LacHooks 21178ee8d1cSJulian Grajkowski * This function frees the EC module stats array 21278ee8d1cSJulian Grajkowski * 21378ee8d1cSJulian Grajkowski * @description 21478ee8d1cSJulian Grajkowski * This function frees the EC module stats array 21578ee8d1cSJulian Grajkowski * 21678ee8d1cSJulian Grajkowski * @param[in] instanceHandle 21778ee8d1cSJulian Grajkowski * 21878ee8d1cSJulian Grajkowski ******************************************************************************/ 21978ee8d1cSJulian Grajkowski void LacEc_StatsFree(CpaInstanceHandle instanceHandle); 22078ee8d1cSJulian Grajkowski 22178ee8d1cSJulian Grajkowski /** 22278ee8d1cSJulian Grajkowski ******************************************************************************* 22378ee8d1cSJulian Grajkowski * @ingroup LacSymNrbg 22478ee8d1cSJulian Grajkowski * Initialise the NRBG module 22578ee8d1cSJulian Grajkowski * 22678ee8d1cSJulian Grajkowski * @description 22778ee8d1cSJulian Grajkowski * This function registers NRBG callback handlers. 22878ee8d1cSJulian Grajkowski * 22978ee8d1cSJulian Grajkowski * 23078ee8d1cSJulian Grajkowski *****************************************************************************/ 23178ee8d1cSJulian Grajkowski void LacSymNrbg_Init(void); 23278ee8d1cSJulian Grajkowski 23378ee8d1cSJulian Grajkowski #endif /* LAC_HOOKS_H */ 234