blob: efbdd717bbbc82bd514b7b1ae9744acfbbaf2972 [file] [log] [blame]
/**
* @file tst_hlse_a71ch_util.h
* @author NXP Semiconductors
* @version 1.0
* @par License
*
* Copyright 2016 NXP
* SPDX-License-Identifier: Apache-2.0
*
* @par Description
* API of test bench utility functions specific to the a71ch using HLSE Generic API
* @par History
* 1.0 2016-Oct-1 : Initial version
*/
#ifndef _TST_HLSE_A71CH_UTIL_H_
#define _TST_HLSE_A71CH_UTIL_H_
#include "sm_types.h"
#include "ax_api.h"
#include "HLSEAPI.h"
#ifdef __cplusplus
extern "C" {
#endif
/** \name Module functions
@{ */
U8 hlse_a71chInitModule(U8 initMode);
U8 hlse_a71chSetupScp03(void);
U8 hlse_a71chShowModuleInfo(U8 *scpState);
/** @}*/
/** \name HLSE helper functions
@{ */
U16 hlse_GenerateEccKeyPair(SST_Index_t index, HLSE_OBJECT_HANDLE* hObject);
U16 hlse_GetEccPublicKey(U8 *publicKey, U16 *publicKeyLen, HLSE_OBJECT_HANDLE* hObject);
U16 hlse_SetEccKeyPair(SST_Index_t index, const U8 *publicKey, U16 publicKeyLen, const U8 *privateKey, U16 privateKeyLen, HLSE_OBJECT_HANDLE* hObject);
U16 hlse_SetEccPublicKey(SST_Index_t index, const U8 *publicKey, U16 publicKeyLen, HLSE_OBJECT_HANDLE* hObject);
U16 hlse_EcdhGetSharedSecret(HLSE_OBJECT_HANDLE hObject, const U8 *pOtherPublicKey, U16 otherPublicKeyLen, U8 *pSharedSecret, U16 *pSharedSecretLen);
U16 hlse_EccSign(HLSE_OBJECT_HANDLE hObject, const U8 *pHash, U16 hashLen, U8 *pSignature, U16 *pSignatureLen);
U16 hlse_EccNormalizedAsnSign(HLSE_OBJECT_HANDLE hObject, const U8 *pHash, U16 hashLen, U8 *pSignature, U16 *pSignatureLen);
U16 hlse_EccVerifyWithKey(const U8 *pKeyData, U16 keyDataLen, const U8 *pHash, U16 hashLen, const U8 *pSignature, U16 signatureLen, U8 *pResult);
U16 hlse_EccVerify(SST_Index_t index, const U8 *pHash, U16 hashLen, const U8 *pSignature, U16 signatureLen, U8 *pResult);
U16 hlse_GetRandom(U8 *random, U8 randomLen);
U16 hlse_GetUniqueID(U8 *uid, U16 *uidLen);
U16 hlse_InjectLock(void);
U16 hlse_GetCredentialInfo(U8 *map, U16 *mapLen);
U16 hlse_SCP_GP_PutKeys(U8 keyVersion, U8 *keyEnc, U8 *keyMac, U8 *keyDek, U8 *currentKeyDek, U16 keyBytes);
U16 hlse_SCP_Authenticate(U8 *keyEnc, U8 *keyMac, U8 *keyDek, U16 keyBytes, U8 *sCounter, U16 *sCounterLen);
U16 hlse_SetSymKey(SST_Index_t index, const U8 *key, U16 keyLen, HLSE_OBJECT_HANDLE* hObject);
U16 hlse_GetGPDataSize(U16* gpSize);
/** @}*/
#ifdef __cplusplus
}
#endif
#endif // _TST_HLSE_A71CH_UTIL_H_