MCUXpresso SDK API Reference Manual  Rev. 0
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Ltc_driver_dpa

Overview

Modules

 Ltc_driver_aes_with_dpa
 
 Ltc_driver_cmac_with_dpa
 
 Ltc_driver_des_with_dpa
 

Data Structures

struct  ltc_dpa_handle_t
 Handle for LTC DPA APIs. More...
 

Macros

#define LTC_DPA_AES_BLOCK_SIZE   16
 AES block size in bytes.
 
#define LTC_DPA_AES_IV_SIZE   16
 AES Input Vector size in bytes.
 
#define LTC_DPA_DES_BLOCK_SIZE   8
 LTC DES block size in bytes.
 
#define LTC_DPA_DES_KEY_SIZE   8
 LTC DES key size - 64 bits. More...
 
#define LTC_DPA_DES_IV_SIZE   8
 LTC DES IV size - 8 bytes.
 

Typedefs

typedef uint32_t ltc_dpa_request_t [250]
 User request details, also updated during processing.
 

Enumerations

enum  ltc_dpa_hash_algo_t
 Algorithm supported by LTC_CMAC_DPA APIs.
 

Functions

void LTC_InitDPA (LTC_Type *base)
 Enable clock to LTC module. More...
 
status_t LTC_CreateHandleDPA (LTC_Type *base, ltc_dpa_handle_t *handle, uint8_t seed[16])
 Init the LTC DPA handle which is used in transcational functions. More...
 
status_t LTC_AES_SetKeyDPA (LTC_Type *base, ltc_dpa_handle_t *handle, const uint8_t *key, size_t keySize)
 Set key for LTC DPA AES encryption. More...
 
void LTC_SetDummyNumberDPA (ltc_dpa_handle_t *handle, uint32_t num)
 Set number of dummy operations added per one real operation. More...
 
void LTC_SetDummyProbabilityDPA (ltc_dpa_handle_t *handle, uint32_t probability)
 Set probability a dummy operation runs to completion. More...
 

Data Structure Documentation

struct ltc_dpa_handle_t

Data Fields

ltc_dpa_request_t req
 Driver internals derived from user request and updated during request processing.
 

Macro Definition Documentation

#define LTC_DPA_DES_KEY_SIZE   8

Function Documentation

void LTC_InitDPA ( LTC_Type *  base)

This function enables clock to the LTC module.

Parameters
baseLTC peripheral base address
status_t LTC_CreateHandleDPA ( LTC_Type *  base,
ltc_dpa_handle_t handle,
uint8_t  seed[16] 
)

This function creates internal context for the LTC DPA functions. This function also initializes LTC DPA Mask Seed DPAMS register with a 32-bit word, where the word is derived from the seed[].

Parameters
baseLTC module base address
[in,out]handlePointer to ltc_dpa_handle_t structure
seedPointer to 128-bit entropy input.
Returns
kStatus_Success is successfull or kStatus_InvalidArgument if error.
status_t LTC_AES_SetKeyDPA ( LTC_Type *  base,
ltc_dpa_handle_t handle,
const uint8_t *  key,
size_t  keySize 
)

This function sets key for usage with LTC DPA AES functions.

Parameters
baseLTC module base address
[in,out]handlePointer to ltc_dpa_handle_t structure
probabilityProbability that a dummy operation runs to completion.
Returns
Status.
void LTC_SetDummyNumberDPA ( ltc_dpa_handle_t handle,
uint32_t  num 
)

LTC_CreateHandleDPA() uses this function to configure default Nd = 15.

This function sets runtime parameter of number of dummy operation added per one real operation. Possible values have an upper limit FSL_LTC_DPA_MAX_ND. The parameter is stored in the handle and read by the driver from the handle when it executes encryption or decryption. This function can be called any time.

Parameters
[in,out]handlePointer to ltc_dpa_handle_t structure
probabilityProbability that a dummy operation runs to completion.
void LTC_SetDummyProbabilityDPA ( ltc_dpa_handle_t handle,
uint32_t  probability 
)

LTC_CreateHandleDPA() uses this function to configure default probability = 100%, means in default setting all dummy operations run to completion.

This function sets runtime parameter of probability a dummy operation runs to completion. The parameter is stored in the handle and read by the driver from the handle when it executes encryption or decryption. This function can be called any time.

Parameters
[in,out]handlePointer to ltc_dpa_handle_t structure
probabilityProbability that a dummy operation runs to completion. Possible values are integer values 0 to 100.