Files
NxpNfcRdLib/.svn/pristine/11/117fe3abd620443f4768b8f066b68a32c71d8e4d.svn-base
2024-07-08 21:03:06 +08:00

881 lines
35 KiB
Plaintext

/*----------------------------------------------------------------------------*/
/* 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 <ph_Status.h>
#include <phKeyStore.h>
#include <ph_RefDefs.h>
#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 */