/*----------------------------------------------------------------------------*/ /* Copyright 2006 - 2017, 2021, 2022, 2024 NXP */ /* */ /* NXP Confidential. This software is owned or controlled by NXP and may only */ /* be used strictly in accordance with the applicable license terms. */ /* By expressly accepting such terms or by downloading, installing, */ /* activating and/or otherwise using the software, you are agreeing that you */ /* have read, and that you agree to comply with and are bound by, such */ /* license terms. If you do not agree to be bound by the applicable license */ /* terms, then you may not retain, install, activate or otherwise use the */ /* software. */ /*----------------------------------------------------------------------------*/ /** \file * Generic KeyStore Component of Reader Library Framework. * $Author: * $Revision: * $Date: * */ #include #include #include #ifdef NXPBUILD__PH_KEYSTORE_SW #include "Sw/phKeyStore_Sw.h" #endif /* NXPBUILD__PH_KEYSTORE_SW */ #ifdef NXPBUILD__PH_KEYSTORE_RC663 #include "Rc663/phKeyStore_Rc663.h" #endif /* NXPBUILD__PH_KEYSTORE_RC663 */ #ifdef NXPBUILD__PH_KEYSTORE #ifndef NXPRDLIB_REM_GEN_INTFS /* Common Interfaces ------------------------------------------------------------------------------------------------------------------- */ phStatus_t phKeyStore_FormatKeyEntry(void * pDataParams, uint16_t wKeyNo, uint16_t wNewKeyType) { phStatus_t PH_MEMLOC_REM status; PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phKeyStore_FormatKeyEntry"); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wKeyNo); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wNewKeyType); PH_LOG_HELPER_ALLOCATE_PARAMNAME(status); /* Validate the parameters. */ PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_KEYSTORE); /* Log the information. */ PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wKeyNo), &wKeyNo); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wNewKeyType), &wNewKeyType); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER); /* Component Code Validation */ if(PH_GET_COMPCODE(pDataParams) != PH_COMP_KEYSTORE) { status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } /* Perform operation on active layer. */ switch(PH_GET_COMPID(pDataParams)) { #ifdef NXPBUILD__PH_KEYSTORE_SW case PH_KEYSTORE_SW_ID: status = phKeyStore_Sw_FormatKeyEntry((phKeyStore_Sw_DataParams_t *) pDataParams, wKeyNo, wNewKeyType); break; #endif /* NXPBUILD__PH_KEYSTORE_SW */ #ifdef NXPBUILD__PH_KEYSTORE_RC663 case PH_KEYSTORE_RC663_ID: status = phKeyStore_Rc663_FormatKeyEntry((phKeyStore_Rc663_DataParams_t *) pDataParams, wKeyNo, wNewKeyType); break; #endif /* NXPBUILD__PH_KEYSTORE_RC663 */ default: status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); break; } PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } phStatus_t phKeyStore_SetKUC(void * pDataParams, uint16_t wKeyNo, uint16_t wRefNoKUC) { phStatus_t PH_MEMLOC_REM status; PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phKeyStore_SetKUC"); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wKeyNo); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wRefNoKUC); PH_LOG_HELPER_ALLOCATE_PARAMNAME(status); /* Validate the parameters. */ PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_KEYSTORE); /* Log the information. */ PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wKeyNo), &wKeyNo); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wRefNoKUC), &wRefNoKUC); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER); /* Component Code Validation */ if(PH_GET_COMPCODE(pDataParams) != PH_COMP_KEYSTORE) { status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } /* Perform operation on active layer. */ switch(PH_GET_COMPID(pDataParams)) { #ifdef NXPBUILD__PH_KEYSTORE_SW case PH_KEYSTORE_SW_ID: status = phKeyStore_Sw_SetKUC((phKeyStore_Sw_DataParams_t *) pDataParams, wKeyNo, wRefNoKUC); break; #endif /* NXPBUILD__PH_KEYSTORE_SW */ #ifdef NXPBUILD__PH_KEYSTORE_RC663 case PH_KEYSTORE_RC663_ID: status = phKeyStore_Rc663_SetKUC((phKeyStore_Rc663_DataParams_t *) pDataParams, wKeyNo, wRefNoKUC); break; #endif /* NXPBUILD__PH_KEYSTORE_RC663 */ default: status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); break; } PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } phStatus_t phKeyStore_GetKUC(void * pDataParams, uint16_t wRefNoKUC, uint32_t * pdwLimit, uint32_t * pdwCurVal) { phStatus_t PH_MEMLOC_REM status; PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phKeyStore_GetKUC"); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wRefNoKUC); PH_LOG_HELPER_ALLOCATE_PARAMNAME(pdwLimit); PH_LOG_HELPER_ALLOCATE_PARAMNAME(pdwCurVal); PH_LOG_HELPER_ALLOCATE_PARAMNAME(status); /* Validate the parameters. */ PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_KEYSTORE); PH_ASSERT_NULL_PARAM(pdwLimit, PH_COMP_KEYSTORE); PH_ASSERT_NULL_PARAM(pdwCurVal, PH_COMP_KEYSTORE); /* Log the information. */ PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wRefNoKUC), &wRefNoKUC); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER); /* Component Code Validation */ if(PH_GET_COMPCODE(pDataParams) != PH_COMP_KEYSTORE) { status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } /* Perform operation on active layer. */ switch(PH_GET_COMPID(pDataParams)) { #ifdef NXPBUILD__PH_KEYSTORE_SW case PH_KEYSTORE_SW_ID: status = phKeyStore_Sw_GetKUC((phKeyStore_Sw_DataParams_t *) pDataParams, wRefNoKUC, pdwLimit, pdwCurVal); break; #endif /* NXPBUILD__PH_KEYSTORE_SW */ #ifdef NXPBUILD__PH_KEYSTORE_RC663 case PH_KEYSTORE_RC663_ID: status = phKeyStore_Rc663_GetKUC((phKeyStore_Rc663_DataParams_t *) pDataParams, wRefNoKUC, pdwLimit, pdwCurVal); break; #endif /* NXPBUILD__PH_KEYSTORE_RC663 */ default: status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); break; } PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); #ifdef NXPBUILD__PH_LOG if((status & PH_ERR_MASK) == PH_ERR_SUCCESS) { PH_LOG_HELPER_ADDPARAM_UINT32(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pdwLimit), pdwLimit); PH_LOG_HELPER_ADDPARAM_UINT32(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pdwCurVal), pdwCurVal); } #endif PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } phStatus_t phKeyStore_ChangeKUC(void * pDataParams, uint16_t wRefNoKUC, uint32_t dwLimit) { phStatus_t PH_MEMLOC_REM status; PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phKeyStore_ChangeKUC"); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wRefNoKUC); PH_LOG_HELPER_ALLOCATE_PARAMNAME(dwLimit); PH_LOG_HELPER_ALLOCATE_PARAMNAME(status); /* Validate the parameters. */ PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_KEYSTORE); /* Log the information. */ PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wRefNoKUC), &wRefNoKUC); PH_LOG_HELPER_ADDPARAM_UINT32(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(dwLimit), &dwLimit); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER); /* Component Code Validation */ if(PH_GET_COMPCODE(pDataParams) != PH_COMP_KEYSTORE) { status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } /* Perform operation on active layer. */ switch(PH_GET_COMPID(pDataParams)) { #ifdef NXPBUILD__PH_KEYSTORE_SW case PH_KEYSTORE_SW_ID: status = phKeyStore_Sw_ChangeKUC((phKeyStore_Sw_DataParams_t *) pDataParams, wRefNoKUC, dwLimit); break; #endif /* NXPBUILD__PH_KEYSTORE_SW */ #ifdef NXPBUILD__PH_KEYSTORE_RC663 case PH_KEYSTORE_RC663_ID: status = phKeyStore_Rc663_ChangeKUC((phKeyStore_Rc663_DataParams_t *) pDataParams, wRefNoKUC, dwLimit); break; #endif /* NXPBUILD__PH_KEYSTORE_RC663 */ default: status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); break; } PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } phStatus_t phKeyStore_SetConfig(void * pDataParams, uint16_t wConfig, uint16_t wValue) { phStatus_t PH_MEMLOC_REM status; PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phKeyStore_SetConfig"); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wConfig); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wValue); PH_LOG_HELPER_ALLOCATE_PARAMNAME(status); /* Validate the parameters. */ PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_KEYSTORE); /* Log the information. */ PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wConfig), &wConfig); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wValue), &wValue); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER); /* Component Code Validation */ if(PH_GET_COMPCODE(pDataParams) != PH_COMP_KEYSTORE) { status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } /* Perform operation on active layer. */ switch(PH_GET_COMPID(pDataParams)) { #ifdef NXPBUILD__PH_KEYSTORE_SW case PH_KEYSTORE_SW_ID: status = phKeyStore_Sw_SetConfig((phKeyStore_Sw_DataParams_t *) pDataParams, wConfig, wValue); break; #endif /* NXPBUILD__PH_KEYSTORE_SW */ #ifdef NXPBUILD__PH_KEYSTORE_RC663 case PH_KEYSTORE_RC663_ID: status = phKeyStore_Rc663_SetConfig((phKeyStore_Rc663_DataParams_t *) pDataParams, wConfig, wValue); break; #endif /* NXPBUILD__PH_KEYSTORE_RC663 */ default: status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); break; } PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } phStatus_t phKeyStore_SetConfigStr(void * pDataParams, uint16_t wConfig, uint8_t *pBuffer, uint16_t wBufferLength) { phStatus_t PH_MEMLOC_REM status; PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phKeyStore_SetConfigStr"); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wConfig); PH_LOG_HELPER_ALLOCATE_PARAMNAME(pBuffer); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wBufferLength); PH_LOG_HELPER_ALLOCATE_PARAMNAME(status); /* Validate the parameters. */ PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_KEYSTORE); PH_ASSERT_NULL_PARAM(pBuffer, PH_COMP_KEYSTORE); /* Log the information. */ PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wConfig), &wConfig); PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pBuffer), pBuffer, wBufferLength); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wBufferLength), &wBufferLength); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER); /* Component Code Validation */ if(PH_GET_COMPCODE(pDataParams) != PH_COMP_KEYSTORE) { status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } /* Perform operation on active layer. */ switch(PH_GET_COMPID(pDataParams)) { #ifdef NXPBUILD__PH_KEYSTORE_SW case PH_KEYSTORE_SW_ID: status = phKeyStore_Sw_SetConfigStr((phKeyStore_Sw_DataParams_t *) pDataParams, wConfig, pBuffer, wBufferLength); break; #endif /* NXPBUILD__PH_KEYSTORE_SW */ #ifdef NXPBUILD__PH_KEYSTORE_RC663 case PH_KEYSTORE_RC663_ID: status = phKeyStore_Rc663_SetConfigStr((phKeyStore_Rc663_DataParams_t *) pDataParams, wConfig, pBuffer, wBufferLength); break; #endif /* NXPBUILD__PH_KEYSTORE_RC663 */ default: status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); break; } PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } phStatus_t phKeyStore_GetConfig(void * pDataParams, uint16_t wConfig, uint16_t * pValue) { phStatus_t PH_MEMLOC_REM status; PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phKeyStore_GetConfig"); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wConfig); PH_LOG_HELPER_ALLOCATE_PARAMNAME(pValue); PH_LOG_HELPER_ALLOCATE_PARAMNAME(status); /* Validate the parameters. */ PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_KEYSTORE); PH_ASSERT_NULL_PARAM(pValue, PH_COMP_KEYSTORE); /* Log the information. */ PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wConfig), &wConfig); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER); /* Component Code Validation */ if(PH_GET_COMPCODE(pDataParams) != PH_COMP_KEYSTORE) { status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } /* Perform operation on active layer. */ switch(PH_GET_COMPID(pDataParams)) { #ifdef NXPBUILD__PH_KEYSTORE_SW case PH_KEYSTORE_SW_ID: status = phKeyStore_Sw_GetConfig((phKeyStore_Sw_DataParams_t *) pDataParams, wConfig, pValue); break; #endif /* NXPBUILD__PH_KEYSTORE_SW */ #ifdef NXPBUILD__PH_KEYSTORE_RC663 case PH_KEYSTORE_RC663_ID: status = phKeyStore_Rc663_GetConfig((phKeyStore_Rc663_DataParams_t *) pDataParams, wConfig, pValue); break; #endif /* NXPBUILD__PH_KEYSTORE_RC663 */ default: status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); break; } PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); #ifdef NXPBUILD__PH_LOG if((status & PH_ERR_MASK) == PH_ERR_SUCCESS) { PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pValue), pValue); } #endif PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } phStatus_t phKeyStore_GetConfigStr(void * pDataParams, uint16_t wConfig, uint8_t ** ppBuffer, uint16_t * pBufferLength) { phStatus_t PH_MEMLOC_REM status; PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phKeyStore_GetConfigStr"); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wConfig); PH_LOG_HELPER_ALLOCATE_PARAMNAME(ppBuffer); PH_LOG_HELPER_ALLOCATE_PARAMNAME(pBufferLength); PH_LOG_HELPER_ALLOCATE_PARAMNAME(status); /* Validate the parameters. */ PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_KEYSTORE); PH_ASSERT_NULL_PARAM(ppBuffer, PH_COMP_KEYSTORE); PH_ASSERT_NULL_PARAM(pBufferLength, PH_COMP_KEYSTORE); /* Log the information. */ PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wConfig), &wConfig); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER); /* Component Code Validation */ if(PH_GET_COMPCODE(pDataParams) != PH_COMP_KEYSTORE) { status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } /* Perform operation on active layer. */ switch(PH_GET_COMPID(pDataParams)) { #ifdef NXPBUILD__PH_KEYSTORE_SW case PH_KEYSTORE_SW_ID: status = phKeyStore_Sw_GetConfigStr((phKeyStore_Sw_DataParams_t *) pDataParams, wConfig, ppBuffer, pBufferLength); break; #endif /* NXPBUILD__PH_KEYSTORE_SW */ #ifdef NXPBUILD__PH_KEYSTORE_RC663 case PH_KEYSTORE_RC663_ID: status = phKeyStore_Rc663_GetConfigStr((phKeyStore_Rc663_DataParams_t *) pDataParams, wConfig, ppBuffer, pBufferLength); break; #endif /* NXPBUILD__PH_KEYSTORE_RC663 */ default: status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); break; } PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); #ifdef NXPBUILD__PH_LOG if((status & PH_ERR_MASK) == PH_ERR_SUCCESS) { PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(ppBuffer), *ppBuffer, *pBufferLength); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pBufferLength), pBufferLength); } #endif PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } /* Interfaces for Symmetric Keys ------------------------------------------------------------------------------------------------------- */ phStatus_t phKeyStore_SetKey(void * pDataParams, uint16_t wKeyNo, uint16_t wKeyVersion, uint16_t wKeyType, uint8_t * pNewKey, uint16_t wNewKeyVersion) { phStatus_t PH_MEMLOC_REM status; PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phKeyStore_SetKey"); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wKeyNo); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wKeyVersion); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wKeyType); PH_LOG_HELPER_ALLOCATE_PARAMNAME(pNewKey); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wNewKeyVersion); PH_LOG_HELPER_ALLOCATE_PARAMNAME(status); /* Validate the parameters. */ PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_KEYSTORE); PH_ASSERT_NULL_PARAM(pNewKey, PH_COMP_KEYSTORE); /* Log the information. */ PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wKeyNo), &wKeyNo); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wKeyVersion), &wKeyVersion); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wKeyType), &wKeyType); PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pNewKey), pNewKey, phKeyStore_GetKeySize(wKeyType)); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wNewKeyVersion), &wNewKeyVersion); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER); /* Component Code Validation */ if(PH_GET_COMPCODE(pDataParams) != PH_COMP_KEYSTORE) { status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } /* Perform operation on active layer. */ switch(PH_GET_COMPID(pDataParams)) { #ifdef NXPBUILD__PH_KEYSTORE_SW case PH_KEYSTORE_SW_ID: status = phKeyStore_Sw_SetKey((phKeyStore_Sw_DataParams_t *) pDataParams, wKeyNo, wKeyVersion, wKeyType, pNewKey, wNewKeyVersion); break; #endif /* NXPBUILD__PH_KEYSTORE_SW */ #ifdef NXPBUILD__PH_KEYSTORE_RC663 case PH_KEYSTORE_RC663_ID: status = phKeyStore_Rc663_SetKey((phKeyStore_Rc663_DataParams_t *) pDataParams, wKeyNo, wKeyVersion, wKeyType, pNewKey, wNewKeyVersion); break; #endif /* NXPBUILD__PH_KEYSTORE_RC663 */ default: status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); break; } PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } phStatus_t phKeyStore_SetKeyAtPos(void * pDataParams, uint16_t wKeyNo, uint16_t wPos, uint16_t wKeyType, uint8_t * pNewKey, uint16_t wNewKeyVersion) { phStatus_t PH_MEMLOC_REM status; PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phKeyStore_SetKeyAtPos"); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wKeyNo); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wPos); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wKeyType); PH_LOG_HELPER_ALLOCATE_PARAMNAME(pNewKey); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wNewKeyVersion); PH_LOG_HELPER_ALLOCATE_PARAMNAME(status); /* Validate the parameters. */ PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_KEYSTORE); PH_ASSERT_NULL_PARAM(pNewKey, PH_COMP_KEYSTORE); /* Log the information. */ PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wKeyNo), &wKeyNo); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wPos), &wPos); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wKeyType), &wKeyType); PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pNewKey), pNewKey, phKeyStore_GetKeySize(wKeyType)); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wNewKeyVersion), &wNewKeyVersion); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER); /* Component Code Validation */ if(PH_GET_COMPCODE(pDataParams) != PH_COMP_KEYSTORE) { status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } /* Perform operation on active layer. */ switch(PH_GET_COMPID(pDataParams)) { #ifdef NXPBUILD__PH_KEYSTORE_SW case PH_KEYSTORE_SW_ID: status = phKeyStore_Sw_SetKeyAtPos((phKeyStore_Sw_DataParams_t *) pDataParams, wKeyNo, wPos, wKeyType, pNewKey, wNewKeyVersion); break; #endif /* NXPBUILD__PH_KEYSTORE_SW */ #ifdef NXPBUILD__PH_KEYSTORE_RC663 case PH_KEYSTORE_RC663_ID: status = phKeyStore_Rc663_SetKeyAtPos((phKeyStore_Rc663_DataParams_t *) pDataParams, wKeyNo, wPos, wKeyType, pNewKey, wNewKeyVersion); break; #endif /* NXPBUILD__PH_KEYSTORE_RC663 */ default: status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); break; } PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } phStatus_t phKeyStore_SetFullKeyEntry(void * pDataParams, uint16_t wNoOfKeys, uint16_t wKeyNo, uint16_t wNewRefNoKUC, uint16_t wNewKeyType, uint8_t * pNewKeys, uint16_t * pNewKeyVersionList) { phStatus_t PH_MEMLOC_REM status; PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phKeyStore_SetFullKeyEntry"); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wNoOfKeys); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wKeyNo); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wNewRefNoKUC); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wNewKeyType); PH_LOG_HELPER_ALLOCATE_PARAMNAME(pNewKeys); PH_LOG_HELPER_ALLOCATE_PARAMNAME(pNewKeyVersionList); PH_LOG_HELPER_ALLOCATE_PARAMNAME(status); /* Validate the parameters. */ PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_KEYSTORE); PH_ASSERT_NULL_PARAM(pNewKeys, PH_COMP_KEYSTORE); PH_ASSERT_NULL_PARAM(pNewKeyVersionList, PH_COMP_KEYSTORE); /* Log the information. */ PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wNoOfKeys), &wNoOfKeys); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wKeyNo), &wKeyNo); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wNewRefNoKUC), &wNewRefNoKUC); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wNewKeyType), &wNewKeyType); PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pNewKeys), pNewKeys, phKeyStore_GetKeySize(wNewKeyType)*wNoOfKeys); PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pNewKeyVersionList), pNewKeyVersionList, wNoOfKeys); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER); /* Component Code Validation */ if(PH_GET_COMPCODE(pDataParams) != PH_COMP_KEYSTORE) { status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } /* Perform operation on active layer. */ switch(PH_GET_COMPID(pDataParams)) { #ifdef NXPBUILD__PH_KEYSTORE_SW case PH_KEYSTORE_SW_ID: status = phKeyStore_Sw_SetFullKeyEntry((phKeyStore_Sw_DataParams_t *) pDataParams, wNoOfKeys, wKeyNo, wNewRefNoKUC, wNewKeyType, pNewKeys, pNewKeyVersionList); break; #endif /* NXPBUILD__PH_KEYSTORE_SW */ #ifdef NXPBUILD__PH_KEYSTORE_RC663 case PH_KEYSTORE_RC663_ID: status = phKeyStore_Rc663_SetFullKeyEntry((phKeyStore_Rc663_DataParams_t *) pDataParams, wNoOfKeys, wKeyNo, wNewRefNoKUC, wNewKeyType, pNewKeys, pNewKeyVersionList); break; #endif /* NXPBUILD__PH_KEYSTORE_RC663 */ default: status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); break; } PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } phStatus_t phKeyStore_GetKeyEntry(void * pDataParams, uint16_t wKeyNo, uint16_t wKeyVersionBufSize, uint16_t * wKeyVersion, uint16_t * wKeyVersionLength, uint16_t * pKeyType) { phStatus_t PH_MEMLOC_REM status; PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phKeyStore_GetKeyEntry"); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wKeyNo); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wKeyVersionBufSize); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wKeyVersion); PH_LOG_HELPER_ALLOCATE_PARAMNAME(pKeyType); PH_LOG_HELPER_ALLOCATE_PARAMNAME(status); /* Validate the parameters. */ PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_KEYSTORE); PH_ASSERT_NULL_PARAM(wKeyVersion, PH_COMP_KEYSTORE); PH_ASSERT_NULL_PARAM(wKeyVersionLength, PH_COMP_KEYSTORE); PH_ASSERT_NULL_PARAM(pKeyType, PH_COMP_KEYSTORE); /* Log the information. */ PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wKeyNo), &wKeyNo); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wKeyVersionBufSize), &wKeyVersionBufSize); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER); /* Component Code Validation */ if(PH_GET_COMPCODE(pDataParams) != PH_COMP_KEYSTORE) { status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } /* Perform operation on active layer. */ switch(PH_GET_COMPID(pDataParams)) { #ifdef NXPBUILD__PH_KEYSTORE_SW case PH_KEYSTORE_SW_ID: status = phKeyStore_Sw_GetKeyEntry((phKeyStore_Sw_DataParams_t *) pDataParams, wKeyNo, wKeyVersionBufSize, wKeyVersion, wKeyVersionLength, pKeyType); break; #endif /* NXPBUILD__PH_KEYSTORE_SW */ #ifdef NXPBUILD__PH_KEYSTORE_RC663 case PH_KEYSTORE_RC663_ID: status = phKeyStore_Rc663_GetKeyEntry((phKeyStore_Rc663_DataParams_t *) pDataParams, wKeyNo, wKeyVersionBufSize, wKeyVersion, wKeyVersionLength, pKeyType); break; #endif /* NXPBUILD__PH_KEYSTORE_RC663 */ default: status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); break; } PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); #ifdef NXPBUILD__PH_LOG if((status & PH_ERR_MASK) == PH_ERR_SUCCESS) { PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wKeyVersion), wKeyVersion, *wKeyVersionLength); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pKeyType), pKeyType); } #endif PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } phStatus_t phKeyStore_GetKey(void * pDataParams, uint16_t wKeyNo, uint16_t wKeyVersion, uint8_t bKeyBufSize, uint8_t * pKey, uint16_t * pKeyType) { phStatus_t PH_MEMLOC_REM status; PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phKeyStore_GetKey"); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wKeyNo); PH_LOG_HELPER_ALLOCATE_PARAMNAME(wKeyVersion); PH_LOG_HELPER_ALLOCATE_PARAMNAME(bKeyBufSize); PH_LOG_HELPER_ALLOCATE_PARAMNAME(pKey); PH_LOG_HELPER_ALLOCATE_PARAMNAME(pKeyType); PH_LOG_HELPER_ALLOCATE_PARAMNAME(status); /* Validate the parameters. */ PH_ASSERT_NULL_DATA_PARAM(pDataParams, PH_COMP_KEYSTORE); PH_ASSERT_NULL_PARAM(pKey, PH_COMP_KEYSTORE); PH_ASSERT_NULL_PARAM(pKeyType, PH_COMP_KEYSTORE); /* Log the information. */ PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wKeyNo), &wKeyNo); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(wKeyVersion), &wKeyVersion); PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(bKeyBufSize), &bKeyBufSize); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER); /* Component Code Validation */ if(PH_GET_COMPCODE(pDataParams) != PH_COMP_KEYSTORE) { status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } /* Perform operation on active layer. */ switch(PH_GET_COMPID(pDataParams)) { #ifdef NXPBUILD__PH_KEYSTORE_SW case PH_KEYSTORE_SW_ID: status = phKeyStore_Sw_GetKey((phKeyStore_Sw_DataParams_t *) pDataParams, wKeyNo, wKeyVersion, bKeyBufSize, pKey, pKeyType); break; #endif /* NXPBUILD__PH_KEYSTORE_SW */ #ifdef NXPBUILD__PH_KEYSTORE_RC663 case PH_KEYSTORE_RC663_ID: status = phKeyStore_Rc663_GetKey((phKeyStore_Rc663_DataParams_t *) pDataParams, wKeyNo, wKeyVersion, bKeyBufSize, pKey, pKeyType); break; #endif /* NXPBUILD__PH_KEYSTORE_RC663 */ default: status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_KEYSTORE); break; } PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName); #ifdef NXPBUILD__PH_LOG if((status & PH_ERR_MASK) == PH_ERR_SUCCESS) { PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pKey), pKey, phKeyStore_GetKeySize(*pKeyType)); PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, PH_LOG_VAR(pKeyType), pKeyType); } #endif PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, PH_LOG_VAR(status), &status); PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE); return status; } #endif /* NXPRDLIB_REM_GEN_INTFS */ /* Utility Interfaces ------------------------------------------------------------------------------------------------------------------ */ uint8_t phKeyStore_GetKeySize(uint16_t wKeyType) { switch(wKeyType) { case PH_KEYSTORE_KEY_TYPE_MIFARE: /* 6 bytes for key A + 6 bytes for key B */ return 12; case PH_KEYSTORE_KEY_TYPE_DES: return 8; case PH_KEYSTORE_KEY_TYPE_2K3DES: case PH_KEYSTORE_KEY_TYPE_AES128: return 16; case PH_KEYSTORE_KEY_TYPE_3K3DES: case PH_KEYSTORE_KEY_TYPE_AES192: return 24; case PH_KEYSTORE_KEY_TYPE_AES256: return 32; default: return 0; } } #endif /* NXPBUILD__PH_KEYSTORE */