MCUX CLNS
MCUX Crypto Library Normal Secure
McuxClPkc_Functions_UPTRT

mcuxClPkc functions of PKC UPTR table setup More...

Macros

#define MCUXCLPKC_FP_GENERATEUPTRT(pUPTRT, pBaseBuffer, bufferSize, noOfBuffer)
 Helper macro to call mcuxClPkc_GenerateUPTRT with flow protection. More...
 

Functions

mcuxClPkc_Status_Protected_t mcuxClPkc_GenerateUPTRT (uint16_t *pUPTRT, const uint8_t *pBaseBuffer, uint16_t bufferSize, uint8_t noOfBuffer)
 Initialize UPTR table. More...
 
mcuxClPkc_Status_Protected_t mcuxClPkc_RandomizeUPTRT (uint16_t *pUPTRT, uint8_t noOfBuffer)
 Randomize UPTR table. More...
 
mcuxClPkc_Status_Protected_t mcuxClPkc_ReRandomizeUPTRT (uint16_t *pUPTRT, uint16_t bufferSize, uint8_t noOfBuffer)
 Randomize UPTR table and operands in PKC workarea. More...
 

Detailed Description

mcuxClPkc functions of PKC UPTR table setup

Macro Definition Documentation

◆ MCUXCLPKC_FP_GENERATEUPTRT

#define MCUXCLPKC_FP_GENERATEUPTRT (   pUPTRT,
  pBaseBuffer,
  bufferSize,
  noOfBuffer 
)

Helper macro to call mcuxClPkc_GenerateUPTRT with flow protection.

Function Documentation

◆ mcuxClPkc_GenerateUPTRT()

mcuxClPkc_Status_Protected_t mcuxClPkc_GenerateUPTRT ( uint16_t *  pUPTRT,
const uint8_t *  pBaseBuffer,
uint16_t  bufferSize,
uint8_t  noOfBuffer 
)

Initialize UPTR table.

This function initializes elements in UPTR table. UPTR table contains the address (16-bit offset in PKC workarea) of each buffer (PKC operand). Each element of the table will be initialized with a 16-bit offset, associated with a buffer allocated in sequence in PKC workarea.

Parameters
[out]pUPTRTpointer to the first element to be initialized in UPTR table.
[in]pBaseBufferaddress of the buffer in PKC workarea, with which the first element will be associated.
[in]bufferSizebyte length of each buffer in PKC workarea.
[in]noOfBuffernumber of elements to be initialized.
Returns
A flow-protected status code (see Flow Protection API).
Return values
MCUXCLPKC_STATUS_OKthis function always returns OK.

◆ mcuxClPkc_RandomizeUPTRT()

mcuxClPkc_Status_Protected_t mcuxClPkc_RandomizeUPTRT ( uint16_t *  pUPTRT,
uint8_t  noOfBuffer 
)

Randomize UPTR table.

This function randomly permutes offsets stored in UPTR table. It randomizes the buffer allocation (physical address in PKC workarea).

Parameters
[in,out]pUPTRTpointer to the first element to be randomized in UPTR table.
[in]noOfBuffernumber of elements to be randomized.
Returns
A flow-protected status code (see Flow Protection API).
Return values
MCUXCLPKC_STATUS_OKif UPTR table is randomized successfully.
MCUXCLPKC_STATUS_NOKif the operation failed.
Attention
Only the buffer allocation will be randomized, existing operands stored in each buffer will not be moved accordingly.
This function uses PRNG. Caller needs to check if PRNG is ready.

◆ mcuxClPkc_ReRandomizeUPTRT()

mcuxClPkc_Status_Protected_t mcuxClPkc_ReRandomizeUPTRT ( uint16_t *  pUPTRT,
uint16_t  bufferSize,
uint8_t  noOfBuffer 
)

Randomize UPTR table and operands in PKC workarea.

This function randomly permutes offsets stored in UPTR table, together with operands stored in each buffer in PKC workarea. It randomizes the buffer allocation (physical address in PKC workarea) and moves operands stored accordingly.

Parameters
[in,out]pUPTRTpointer to the first element to be randomized in UPTR table.
[in]bufferSizebyte length of each buffer in PKC workarea.
[in]noOfBuffernumber of elements to be randomized.
Returns
A flow-protected status code (see Flow Protection API).
Return values
MCUXCLPKC_STATUS_OKif UPTR table is randomized successfully.
MCUXCLPKC_STATUS_NOKif the operation failed.
Attention
This function uses PRNG. Caller needs to check if PRNG is ready.