xilsecure
Vitis Drivers API Documentation
XilSecure AES Client APIs

Macros

#define XSECURE_AES_INVALID_PARAM   (0x51U)
 Invalid Argument for AES. More...
 

Enumerations

enum  XSecure_AesKeySource {
  XSECURE_AES_BBRAM_KEY = 0, XSECURE_AES_BBRAM_RED_KEY, XSECURE_AES_BH_KEY, XSECURE_AES_BH_RED_KEY,
  XSECURE_AES_EFUSE_KEY, XSECURE_AES_EFUSE_RED_KEY, XSECURE_AES_EFUSE_USER_KEY_0, XSECURE_AES_EFUSE_USER_KEY_1,
  XSECURE_AES_EFUSE_USER_RED_KEY_0, XSECURE_AES_EFUSE_USER_RED_KEY_1, XSECURE_AES_KUP_KEY, XSECURE_AES_PUF_KEY,
  XSECURE_AES_USER_KEY_0, XSECURE_AES_USER_KEY_1, XSECURE_AES_USER_KEY_2, XSECURE_AES_USER_KEY_3,
  XSECURE_AES_USER_KEY_4, XSECURE_AES_USER_KEY_5, XSECURE_AES_USER_KEY_6, XSECURE_AES_USER_KEY_7,
  XSECURE_AES_EXPANDED_KEYS, XSECURE_AES_ALL_KEYS
}
 For selecting the Key source to AES Core. More...
 
enum  XSecure_AesKeySize { XSECURE_AES_KEY_SIZE_128 = 0, XSECURE_AES_KEY_SIZE_256 = 2, XSECURE_AES_KEY_SIZE_128 = 0, XSECURE_AES_KEY_SIZE_256 = 2 }
 For selecting the Key size to AES Core. More...
 

Functions

int XSecure_AesInitialize (XSecure_ClientInstance *InstancePtr)
 This function sends IPI request to initialize the AES engine. More...
 
int XSecure_AesEncryptInit (XSecure_ClientInstance *InstancePtr, XSecure_AesKeySource KeySrc, u32 Size, u64 IvAddr)
 This function sends IPI request to EncryptInit the AES engine. More...
 
int XSecure_AesDecryptInit (XSecure_ClientInstance *InstancePtr, XSecure_AesKeySource KeySrc, u32 Size, u64 IvAddr)
 This function sends IPI request to DecryptInit the AES engine. More...
 
int XSecure_AesUpdateAad (XSecure_ClientInstance *InstancePtr, u64 AadAddr, u32 AadSize)
 This function sends IPI request to update AAD to AES engine. More...
 
int XSecure_AesGmacUpdateAad (XSecure_ClientInstance *InstancePtr, u64 AadAddr, u32 AadSize, u32 IsLastChunkSrc)
 This function sends IPI request to update AAD data to AES engine. More...
 
int XSecure_AesEncryptUpdate (XSecure_ClientInstance *InstancePtr, u64 InDataAddr, u64 OutDataAddr, u32 Size, u32 IsLast)
 This function sends IPI request to update the input data to AES engine for encryption. More...
 
int XSecure_AesEncryptFinal (XSecure_ClientInstance *InstancePtr, u64 GcmTagAddr)
 This function sends IPI request to update the GcmTag Addr to AES engine. More...
 
int XSecure_AesDecryptUpdate (XSecure_ClientInstance *InstancePtr, u64 InDataAddr, u64 OutDataAddr, u32 Size, u32 IsLast)
 This function sends IPI request to update the encrypted data to AES engine for decryption. More...
 
int XSecure_AesDecryptFinal (XSecure_ClientInstance *InstancePtr, u64 GcmTagAddr)
 This function sends IPI request to verify the GcmTag provided for the data decrypted till the point. More...
 
int XSecure_AesKeyZero (XSecure_ClientInstance *InstancePtr, XSecure_AesKeySource KeySrc)
 This function sends IPI request to zeroize selected AES key storage register. More...
 
int XSecure_AesWriteKey (XSecure_ClientInstance *InstancePtr, XSecure_AesKeySource KeySrc, u32 Size, u64 KeyAddr)
 This function sends IPI request to write the key provided into the specified AES key registers. More...
 
int XSecure_AesKekDecrypt (XSecure_ClientInstance *InstancePtr, u64 IvAddr, XSecure_AesKeySource DstKeySrc, XSecure_AesKeySource DecKeySrc, XSecure_AesKeySize Size)
 This function sends IPI request to decrypt the key in KEK key form. More...
 
int XSecure_AesSetDpaCm (XSecure_ClientInstance *InstancePtr, u8 DpaCmCfg)
 This function sends IPI request to enable/disable DpaCm in AES. More...
 
int XSecure_AesEncryptData (XSecure_ClientInstance *InstancePtr, XSecure_AesKeySource KeySrc, u32 KeySize, u64 IvAddr, u64 InDataAddr, u64 OutDataAddr, u32 Size, u64 GcmTagAddr)
 This function calls IPI request to encrypt a single block of data. More...
 
int XSecure_AesDecryptData (XSecure_ClientInstance *InstancePtr, XSecure_AesKeySource KeySrc, u32 KeySize, u64 IvAddr, u64 InDataAddr, u64 OutDataAddr, u32 Size, u64 GcmTagAddr)
 This function calls IPI request to decrypt a single block of data. More...
 
int XSecure_AesPerformOperation (const XSecure_ClientInstance *InstancePtr, const XSecure_AesDataBlockParams *AesDataParams)
 This function calls IPI request to encrypt/decrypt a single block of data along with update AAD/GMAC based on the user's choice. More...
 
int XSecure_AesPerformOperationAndZeroizeKey (XSecure_ClientInstance *InstancePtr, u64 KeyAddr, const XSecure_AesDataBlockParams *AesDataParams)
 This function calls IPI request to perform below operation: More...
 

Macro Definition Documentation

Enumeration Type Documentation

For selecting the Key size to AES Core.

Enumerator
XSECURE_AES_KEY_SIZE_128 

Key Length = 16 bytes = 128 bits.

XSECURE_AES_KEY_SIZE_256 

Key Length = 32 bytes = 256 bits.

XSECURE_AES_KEY_SIZE_128 

Key Length = 32 bytes = 256 bits.

XSECURE_AES_KEY_SIZE_256 

Key Length = 16 bytes = 128 bits.

For selecting the Key source to AES Core.

Enumerator
XSECURE_AES_BBRAM_KEY 

Bbram key.

XSECURE_AES_BBRAM_RED_KEY 

Bbram red key.

XSECURE_AES_BH_KEY 

Boot header key.

XSECURE_AES_BH_RED_KEY 

Boot header red key.

XSECURE_AES_EFUSE_KEY 

eFuse key

XSECURE_AES_EFUSE_RED_KEY 

eFuse red key

XSECURE_AES_EFUSE_USER_KEY_0 

eFuse user key 0

XSECURE_AES_EFUSE_USER_KEY_1 

eFuse user key 1

XSECURE_AES_EFUSE_USER_RED_KEY_0 

User red key 0.

XSECURE_AES_EFUSE_USER_RED_KEY_1 

User red key 1.

XSECURE_AES_KUP_KEY 

Kup key.

XSECURE_AES_PUF_KEY 

Puf key.

XSECURE_AES_USER_KEY_0 

User key 0.

XSECURE_AES_USER_KEY_1 

User key 1.

XSECURE_AES_USER_KEY_2 

User key 2.

XSECURE_AES_USER_KEY_3 

User key 3.

XSECURE_AES_USER_KEY_4 

User key 4.

XSECURE_AES_USER_KEY_5 

User key 5.

XSECURE_AES_USER_KEY_6 

User key 6.

XSECURE_AES_USER_KEY_7 

User key 7.

XSECURE_AES_EXPANDED_KEYS 

Expanded keys.

XSECURE_AES_ALL_KEYS 

All keys.

Function Documentation

int XSecure_AesDecryptData ( XSecure_ClientInstance *  InstancePtr,
XSecure_AesKeySource  KeySrc,
u32  KeySize,
u64  IvAddr,
u64  InDataAddr,
u64  OutDataAddr,
u32  Size,
u64  GcmTagAddr 
)

This function calls IPI request to decrypt a single block of data.

Parameters
InstancePtrPointer to the client instance
KeySrcType of the key
KeySizeSize of the key
IvAddrAddress of the IV
InDataAddrAddress of the encrypted data which needs to be decrypted
OutDataAddrAddress of buffer where the decrypted data to be updated
SizeSize of input data to be decrypted
GcmTagAddrAddress to the buffer of GCM tag
Returns
  • XST_SUCCESS On success
  • XST_FAILURE On failure

AES Decrypt Init operation

AES Decrypt Update

AES Decrypt Final

AES GMAC operation

Send an IPI request to the PLM by using the CDO command to call XSecure_AesDecryptData API and returns the status of the IPI response.

References XSECURE_API_AES_PERFORM_OPERATION, XSecure_DCacheFlushRange, XSECURE_DECRYPT, and XSecure_ProcessMailbox().

Referenced by XSecure_AesPerformOperation().

int XSecure_AesDecryptFinal ( XSecure_ClientInstance *  InstancePtr,
u64  GcmTagAddr 
)

This function sends IPI request to verify the GcmTag provided for the data decrypted till the point.

Parameters
InstancePtrPointer to the client instance
GcmTagAddrAddress of a buffer which should holds GCM Tag
Returns
  • XST_SUCCESS On successful encryption of the data
  • XST_FAILURE On failure

Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid

Send an IPI request to the PLM by using the CDO command to call XSecure_AesDecFinal API and returns the status of the IPI response

References XSECURE_API_AES_DECRYPT_FINAL, and XSecure_ProcessMailbox().

Referenced by XSecure_AesDecryptKat(), and XSecure_AesPerformOperation().

int XSecure_AesDecryptInit ( XSecure_ClientInstance *  InstancePtr,
XSecure_AesKeySource  KeySrc,
u32  Size,
u64  IvAddr 
)

This function sends IPI request to DecryptInit the AES engine.

Parameters
InstancePtrPointer to the client instance
KeySrcType of the Key
SizeSize of the Key
IvAddrAddress of the IV
Returns
  • XST_SUCCESS If the Decrypt init is successful
  • XST_FAILURE If there is a failure

Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid

Link shared memory of size AesParams to AesParams structure for IPI usage. Validates the size of the shared memory whether the required size is available or not.

Send an IPI request to the PLM by using the CDO command to call XSecure_AesOperationInit API and returns the status of the IPI response.

References XSECURE_API_AES_OP_INIT, XSecure_DCacheFlushRange, XSECURE_DECRYPT, and XSecure_ProcessMailbox().

Referenced by XSecure_AesDecryptData(), and XSecure_AesDecryptKat().

int XSecure_AesDecryptUpdate ( XSecure_ClientInstance *  InstancePtr,
u64  InDataAddr,
u64  OutDataAddr,
u32  Size,
u32  IsLast 
)

This function sends IPI request to update the encrypted data to AES engine for decryption.

Parameters
InstancePtrPointer to the client instance
InDataAddrAddress of the encryped data which needs to be decrypted
OutDataAddrAddress of the buffer where the decrypted data to be updated
SizeSize of the input data to be decrypted
IsLastIf this is the last update of data to be decrypted, this parameter should be set to TRUE otherwise FALSE
Returns
  • XST_SUCCESS On successful decryption of the data
  • XST_FAILURE On failure

Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid

Link shared memory of size DecInParams to DecInParams structure for IPI usage. Validates the size of the shared memory whether the required size is available or not.

Send an IPI request to the PLM by using the CDO command to call XSecure_AesDecUpdate API and returns the status of the IPI response.

References XSECURE_API_AES_DECRYPT_UPDATE, XSecure_DCacheFlushRange, and XSecure_ProcessMailbox().

Referenced by XSecure_AesDecryptData(), XSecure_AesDecryptKat(), XSecure_AesEcbDecrypt(), and XSecure_AesKeyUnwrap().

int XSecure_AesEncryptData ( XSecure_ClientInstance *  InstancePtr,
XSecure_AesKeySource  KeySrc,
u32  KeySize,
u64  IvAddr,
u64  InDataAddr,
u64  OutDataAddr,
u32  Size,
u64  GcmTagAddr 
)

This function calls IPI request to encrypt a single block of data.

Parameters
InstancePtrPointer to the client instance
KeySrcType of the key
KeySizeSize of the key
IvAddrAddress of the IV
InDataAddrAddress of the data which needs to be encrypted
OutDataAddrAddress of output buffer where the encrypted data to be updated
SizeSize of data to be encrypted in bytes where number of bytes provided should be multiples of 4
GcmTagAddrAddress to the buffer of GCM tag
Returns
  • XST_SUCCESS On success
  • XST_FAILURE On failure

AES Init operation

AES Encrypt Update

AES Encrypt Final

AES GMAC operation

Send an IPI request to the PLM by using the CDO command to call XSecure_AesEncryptData API and returns the status of the IPI response

References XSECURE_API_AES_PERFORM_OPERATION, XSecure_DCacheFlushRange, XSECURE_ENCRYPT, and XSecure_ProcessMailbox().

Referenced by XSecure_AesPerformOperation().

int XSecure_AesEncryptFinal ( XSecure_ClientInstance *  InstancePtr,
u64  GcmTagAddr 
)

This function sends IPI request to update the GcmTag Addr to AES engine.

Parameters
InstancePtrPointer to the client instance
GcmTagAddrAddress to the buffer of GCM tag size, where the API updates GCM tag
Returns
  • XST_SUCCESS On successful encryption of the data
  • XST_FAILURE On failure

Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid

Send an IPI request to the PLM by using the CDO command to call XSecure_AesEncFinal API and returns the status of the IPI response

References XSECURE_API_AES_ENCRYPT_FINAL, and XSecure_ProcessMailbox().

Referenced by XSecure_AesEncryptKat(), and XSecure_AesPerformOperation().

int XSecure_AesEncryptInit ( XSecure_ClientInstance *  InstancePtr,
XSecure_AesKeySource  KeySrc,
u32  Size,
u64  IvAddr 
)

This function sends IPI request to EncryptInit the AES engine.

Parameters
InstancePtrPointer to the client instance
KeySrcType of the Key
SizeSize of the Key
IvAddrAddress of the IV
Returns
  • XST_SUCCESS If the Encrypt init is successful
  • XST_FAILURE If there is a failure

Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid

Link shared memory of size AesParams to AesParams structure for IPI usage. Validates the size of the shared memory whether the required size is available or not.

Send an IPI request to the PLM by using the CDO command to call XSecure_AesOperationInit API and returns the status of the IPI response.

References XSECURE_API_AES_OP_INIT, XSecure_DCacheFlushRange, XSECURE_ENCRYPT, and XSecure_ProcessMailbox().

Referenced by XSecure_AesEncryptData(), and XSecure_AesEncryptKat().

int XSecure_AesEncryptUpdate ( XSecure_ClientInstance *  InstancePtr,
u64  InDataAddr,
u64  OutDataAddr,
u32  Size,
u32  IsLast 
)

This function sends IPI request to update the input data to AES engine for encryption.

Parameters
InstancePtrPointer to the client instance
InDataAddrAddress of the input data which needs to be encrypted
OutDataAddrAddress of the buffer where the encrypted data to be updated
SizeSize of the input data to be encrypted
IsLastIf this is the last update of data to be encrypted, this parameter should be set to TRUE otherwise FALSE
Returns
  • XST_SUCCESS On successful encryption of the data
  • XST_FAILURE On failure

Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid

Link shared memory of size EncInAddr to EncInAddr structure for IPI usage. Validates the size of the shared memory whether the required size is available or not.

Send an IPI request to the PLM by using the CDO command to call XSecure_AesEncUpdate API and returns the status of the IPI response.

References XSECURE_API_AES_ENCRYPT_UPDATE, XSecure_DCacheFlushRange, and XSecure_ProcessMailbox().

Referenced by XSecure_AesEncryptData(), and XSecure_AesEncryptKat().

int XSecure_AesGmacUpdateAad ( XSecure_ClientInstance *  InstancePtr,
u64  AadAddr,
u32  AadSize,
u32  IsLastChunkSrc 
)

This function sends IPI request to update AAD data to AES engine.

Parameters
InstancePtrPointer to the client instance
AadAddrAddress of the Aad
AadSizeSize of the Aad data
IsLastChunkSrcIf this is the last update of data, this parameter should be set to TRUE otherwise FALSE
Returns
  • XST_SUCCESS If the Aad update is successful
  • XST_FAILURE If there is a failure
Note
To generate GMAC, this API must be called by setting IsLastChunkSrc as TRUE for the last update followed by XSecure_AesEncryptFinal or XSecure_AesDecryptFinal API call to generate or validate GMAC tag

Send an IPI request to the PLM by using the CDO command to call XSecure_AesUpdateAad API and returns the status of the IPI response

References XSECURE_API_AES_UPDATE_AAD, and XSecure_ProcessMailbox().

Referenced by XSecure_AesUpdateAad().

int XSecure_AesInitialize ( XSecure_ClientInstance *  InstancePtr)

This function sends IPI request to initialize the AES engine.

Parameters
InstancePtrPointer to the client instance
Returns
  • XST_SUCCESS If the initialization is successful
  • XST_FAILURE If there is a failure

Referenced by SecureAesExample(), XSecure_AesInit(), and XSecure_AesShaInit().

int XSecure_AesKekDecrypt ( XSecure_ClientInstance *  InstancePtr,
u64  IvAddr,
XSecure_AesKeySource  DstKeySrc,
XSecure_AesKeySource  DecKeySrc,
XSecure_AesKeySize  Size 
)

This function sends IPI request to decrypt the key in KEK key form.

Parameters
InstancePtrPointer to the client instance
IvAddrAddress of IV holding buffer for decryption of the key
DecKeySrcSelect key source which holds KEK and needs to be decrypted
DstKeySrcSelect the key in which decrypted red key should be updated
SizeSize of the key
Returns
  • XST_SUCCESS On successful key decryption
  • XSECURE_AES_INVALID_PARAM On invalid parameter
  • XST_FAILURE If there is a failure

Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid

Send an IPI request to the PLM by using the CDO command to call XSecure_AesDecryptKek API and returns the status of the IPI response

References XSECURE_AES_INVALID_PARAM, XSECURE_AES_KEY_SIZE_128, XSECURE_API_AES_KEK_DECRYPT, and XSecure_ProcessMailbox().

int XSecure_AesKeyZero ( XSecure_ClientInstance *  InstancePtr,
XSecure_AesKeySource  KeySrc 
)

This function sends IPI request to zeroize selected AES key storage register.

Parameters
InstancePtrPointer to the client instance
KeySrcSelect the key source which needs to be zeroized
Returns
  • XST_SUCCESS When key zeroization is success
  • XST_FAILURE On failure

Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid

Send an IPI request to the PLM by using the CDO command to call XSecure_AesKeyZeroize API and returns the status of the IPI response.

References XSECURE_API_AES_KEY_ZERO, and XSecure_ProcessMailbox().

Referenced by XSecure_AesDecrypt(), XSecure_AesDecryptCmKat(), XSecure_AesDecryptInit(), XSecure_AesDecryptKat(), XSecure_AesDecryptUpdate(), XSecure_AesEcbDecrypt(), XSecure_AesEncryptInit(), XSecure_AesEncryptKat(), XSecure_AesEncryptUpdate(), XSecure_AesKeyUnwrap(), and XSecure_AesKeyZeroize().

int XSecure_AesPerformOperation ( const XSecure_ClientInstance *  InstancePtr,
const XSecure_AesDataBlockParams AesDataParams 
)

This function calls IPI request to encrypt/decrypt a single block of data along with update AAD/GMAC based on the user's choice.

Parameters
InstancePtrPointer to the client instance
KeySrcType of the key
AesDataParamsPointer to the Aes parameters
Returns
  • XST_SUCCESS On success
  • XSECURE_AES_INVALID_PARAM On invalid parameter
  • XST_FAILURE On failure

AES Encrypt/Decrypt Init operation

AES Aad Update

Set GMAC enable flag to TRUE for GMAC operation and FALSE for GCM operation

AES Encrypt/Decrypt Final

Send an IPI request to the PLM by using the CDO command to call XSecure_AesPerformOperation API and returns the status of the IPI response

References XSecure_AesDataBlockParams::AadAddr, XSecure_AesDataBlockParams::AadSize, XSecure_AesDataBlockParams::GcmTagAddr, XSecure_AesDataBlockParams::InDataAddr, XSecure_AesDataBlockParams::IsGmacEnable, XSecure_AesDataBlockParams::IsUpdateAadEn, XSecure_AesDataBlockParams::IvAddr, XSecure_AesDataBlockParams::KeySize, XSecure_AesDataBlockParams::KeySrc, XSecure_AesDataBlockParams::OperationId, XSecure_AesDataBlockParams::OutDataAddr, XSecure_AesDataBlockParams::Size, XSECURE_AES_INVALID_PARAM, XSECURE_API_AES_PERFORM_OPERATION, XSecure_DCacheFlushRange, and XSecure_ProcessMailbox().

Referenced by XSecure_AesIpiHandler().

int XSecure_AesPerformOperationAndZeroizeKey ( XSecure_ClientInstance *  InstancePtr,
u64  KeyAddr,
const XSecure_AesDataBlockParams AesDataParams 
)

This function calls IPI request to perform below operation:

            - Write key into the key source provided by the user
            - Encrypt/decrypt a single block of data using the provided key
            - Zeroize the key once the AES operation is done
Parameters
InstancePtrPointer to the XSecure_ClientInstance
KeyAddrAddress of the key to be used for AES operation
AesDataParamsPointer to the XSecure_AesDataBlockParams structure variable
Returns
  • XST_SUCCESS On success
  • XST_FAILURE On failure

Send an IPI request to the PLM by using the CDO command to call XSecure_AesOpNZeroizeKey API and returns the status of the IPI response.

References XSecure_AesDataBlockParams::AadAddr, XSecure_AesDataBlockParams::AadSize, XSecure_AesDataBlockParams::GcmTagAddr, XSecure_AesDataBlockParams::InDataAddr, XSecure_AesDataBlockParams::IsGmacEnable, XSecure_AesDataBlockParams::IsUpdateAadEn, XSecure_AesDataBlockParams::IvAddr, XSecure_AesDataBlockParams::KeySize, XSecure_AesDataBlockParams::KeySrc, XSecure_AesDataBlockParams::OperationId, XSecure_AesDataBlockParams::OutDataAddr, XSecure_AesDataBlockParams::Size, XSECURE_ADDR_HIGH_SHIFT, XSECURE_API_AES_PERFORM_OPERATION_AND_ZEROIZE_KEY, XSecure_DCacheFlushRange, and XSecure_ProcessMailbox().

Referenced by XSecure_PlatAesIpiHandler().

int XSecure_AesSetDpaCm ( XSecure_ClientInstance *  InstancePtr,
u8  DpaCmCfg 
)

This function sends IPI request to enable/disable DpaCm in AES.

Parameters
InstancePtrPointer to the client instance
DpaCmCfgUser choice to enable/disable DPA CM
Returns
  • XST_SUCCESS If configuration is success
  • XST_FAILURE If there is a failure

Send an IPI request to the PLM by using the CDO command to call XSecure_AesSetDpaCm API and returns the status of the IPI response

References XSECURE_API_AES_SET_DPA_CM, and XSecure_ProcessMailbox().

int XSecure_AesUpdateAad ( XSecure_ClientInstance *  InstancePtr,
u64  AadAddr,
u32  AadSize 
)

This function sends IPI request to update AAD to AES engine.

Parameters
InstancePtrPointer to the client instance
AadAddrAddress of the Aad
AadSizeSize of the Aad data
Returns
  • XST_SUCCESS If the Aad update is successful
  • XST_FAILURE If there is a failure

Send an IPI request to update AAD to AES engine with LastChunk as FALSE

References XSecure_AesGmacUpdateAad().

Referenced by XSecure_AesDecryptKat(), and XSecure_AesEncryptKat().

int XSecure_AesWriteKey ( XSecure_ClientInstance *  InstancePtr,
XSecure_AesKeySource  KeySrc,
u32  Size,
u64  KeyAddr 
)

This function sends IPI request to write the key provided into the specified AES key registers.

Parameters
InstancePtrPointer to the client instance
KeySrcKey Source to be selected to which provided key should be updated
SizeSize of the input key to be written
KeyAddrAddress of a buffer which should contain the key to be written
Returns
  • XST_SUCCESS On successful key written on AES registers
  • XST_FAILURE On failure

Send an IPI request to the PLM by using the CDO command to call XSecure_AesWriteKey API and returns the status of the IPI response

References XSECURE_API_AES_WRITE_KEY, and XSecure_ProcessMailbox().

Referenced by XSecure_AesDecryptKat(), XSecure_AesEcbDecrypt(), XSecure_AesEncryptKat(), XSecure_AesKeyUnwrap(), and XSecure_AesKeyWrite().