/** | |
* @file a71ch_ex.h | |
* @author NXP Semiconductors | |
* @version 1.0 | |
* @par License | |
* | |
* Copyright 2016 NXP | |
* SPDX-License-Identifier: Apache-2.0 | |
* | |
* @par Description | |
* This file implements the host API examples for the A71CH secure module. | |
* | |
* @par History | |
* 1.0 2016-08-01 : Initial version | |
* | |
*****************************************************************************/ | |
#ifndef _A71CH_EX_ | |
#define _A71CH_EX_ | |
#include "sm_types.h" | |
#include "a71ch_api.h" | |
#include "sm_const.h" | |
#ifdef __cplusplus | |
extern "C" { | |
#endif | |
/// @cond | |
#define REDUCED_PACKETSIZE_FALSE (0x00) | |
#define REDUCED_PACKETSIZE_TRUE (0x01) | |
// When A71CH_ALLOW_DISABLE_DEBUG_MODE is defined, the example code | |
// will permanently disable the DEBUG_MODE in case exDebugPermanentlyDisableDebugMode() is invoked. | |
// | |
// #define A71CH_ALLOW_DISABLE_DEBUG_MODE | |
/// @endcond | |
#define PLAIN_PSK 0x00 //!< Select RFC4279 example mode | |
#define ECDH_PSK 0x01 //!< Select RFC5489 example mode | |
#define DURATION_TEST (0x01) //!< Bit pattern to request a duration test (valid on some example functions) | |
#define MEASURE_EXEC_TIME (0x02) //!< Bit pattern to trigger the measurement of execution time (valid on some example functions) | |
#define EXTENDED_TEST (0x04) //!< Bit pattern to trigger an extended test (valid on some example functions) | |
/// @cond A71CH Example Utility functions | |
U8 axExAuthenticate(U8 *keyEnc, U8 *keyMac, U8 *keyDek); | |
U8 axExCreateAndSetInitialHostScpKeys(U8 *keyEnc, U8 *keyMac, U8 *keyDek); | |
/// @endcond | |
/** \name Example functions illustrating usage of A71CH functionality | |
@{ */ | |
U8 exAes(void); | |
U8 exAesRfc3394(U8 initMode); | |
U8 exAesRfc3394Precooked(U8 initMode); | |
U8 exSymHkdf(U8 initMode); | |
U8 exSymHmacSha256(U8 initMode); | |
U8 exConfig(void); | |
U8 exEccNohc(void); | |
U8 exGPStorage(U8 tstMode); | |
U8 exMisc(void); | |
U8 exPsk(void); | |
U8 exScp(void); | |
U8 exSst(void); | |
U8 exSstKp(void); | |
U8 exSstKeyPair(U8 initMode); | |
U8 exPskTls1_2(U8 initMode, U8 pskMode); | |
/** @}*/ | |
/** \name Walkthrough example (illustrating typical product use) | |
@{ */ | |
U8 exWalkthrough(void); | |
/** @}*/ | |
/** \name Example functions illustrating specific Debug Mode functions (only available in case the Applet is in Debug Mode) | |
@{ */ | |
U8 exDebugMode(U8 testMode); | |
U8 exDbgReflect(int nLower, int nUpper); | |
U8 exDbgInternalMemory(U8 initMode); | |
U8 exPermanentlyDisableDebugMode(void); | |
/** @}*/ | |
/** \name Example function illustrating system boot in combination with SCP03 session key handover | |
@{ */ | |
U8 exBoot(U8 bootMode); | |
/** @}*/ | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif //_A71CH_EX_ |