xilasu
Vitis Drivers API Documentation
RSA Client APIs

Functions

s32 XAsu_RsaEnc (XAsu_ClientParams *ClientParamPtr, XAsu_RsaParams *RsaClientParamPtr)
 This function sends a command to ASUFW to perform RSA encryption on the provided data by using specified public key. More...
 
s32 XAsu_RsaDec (XAsu_ClientParams *ClientParamPtr, XAsu_RsaParams *RsaClientParamPtr)
 This function sends command to ASUFW to perform RSA decryption on the provided data by using specified private key. More...
 
s32 XAsu_RsaCrtDec (XAsu_ClientParams *ClientParamPtr, XAsu_RsaParams *RsaClientParamPtr)
 This function sends command to ASUFW to perform RSA decryption using CRT algorithm for the provided message by using specified private key. More...
 
s32 XAsu_RsaOaepEnc (XAsu_ClientParams *ClientParamPtr, XAsu_RsaOaepPaddingParams *RsaClientParamPtr)
 This function sends command to ASUFW to perform encoding using RSA OAEP padding algorithm by using the specified RSA key. More...
 
s32 XAsu_RsaOaepDec (XAsu_ClientParams *ClientParamPtr, XAsu_RsaOaepPaddingParams *RsaClientParamPtr)
 This function sends a command to ASUFW to perform decoding using RSA OAEP padding algorithm of the provided message by using the specified key. More...
 
s32 XAsu_RsaPssSignGen (XAsu_ClientParams *ClientParamPtr, XAsu_RsaPaddingParams *RsaClientParamPtr)
 This function sends a command to ASUFW to generate signature using RSA PSS padding on provided message by using the specified key. More...
 
s32 XAsu_RsaPssSignVer (XAsu_ClientParams *ClientParamPtr, XAsu_RsaPaddingParams *RsaClientParamPtr)
 This function sends request to ASUFW to verify the specified signature by using RSA PSS padding by using the provided key. More...
 
s32 XAsu_RsaKat (XAsu_ClientParams *ClientParamPtr)
 This function sends a command to ASUFW to perform RSA Known Answer Tests (KAT's). More...
 

Function Documentation

s32 XAsu_RsaCrtDec ( XAsu_ClientParams ClientParamPtr,
XAsu_RsaParams RsaClientParamPtr 
)

This function sends command to ASUFW to perform RSA decryption using CRT algorithm for the provided message by using specified private key.

Parameters
ClientParamPtrPointer to the XAsu_ClientParams structure which holds the client input parameters.
RsaClientParamPtrPointer to XAsu_RsaParams structure which holds the parameters of RSA input arguments.
Returns
  • XST_SUCCESS, if IPI request to ASU is sent successfully.
  • XASU_INVALID_ARGUMENT, if any argument is invalid.
  • XASU_QUEUE_FULL, if Queue buffer is full.
  • XST_FAILURE, if sending IPI request to ASU fails.

Validate input parameters.

Validatations of inputs.

Generate unique ID and register the callback.

Create command header.

Update request buffer and send an IPI request to ASU.

References XAsu_RsaParams::InputDataAddr, XAsu_RsaParams::KeyCompAddr, XAsu_RsaParams::KeySize, XAsu_RsaParams::Len, XAsu_RsaParams::OutputDataAddr, XAsu_CreateHeader(), XASU_INVALID_ARGUMENT, XASU_INVALID_UNIQUE_ID, XASU_MODULE_RSA_ID, XAsu_RegCallBackNGetUniqueId(), XASU_RSA_PVT_CRT_DEC_CMD_ID, XASU_UNIQUE_ID_MAX, XAsu_UpdateQueueBufferNSendIpi(), and XAsu_ValidateClientParameters().

s32 XAsu_RsaDec ( XAsu_ClientParams ClientParamPtr,
XAsu_RsaParams RsaClientParamPtr 
)

This function sends command to ASUFW to perform RSA decryption on the provided data by using specified private key.

Parameters
ClientParamPtrPointer to the XAsu_ClientParams structure which holds the client input parameters.
RsaClientParamPtrPointer to XAsu_RsaParams structure which holds the parameters of RSA input arguments.
Returns
  • XST_SUCCESS, if IPI request to ASU is sent successfully.
  • XASU_INVALID_ARGUMENT, if any argument is invalid.
  • XASU_QUEUE_FULL, if Queue buffer is full.
  • XST_FAILURE, if sending IPI request to ASU fails.

Validatations of inputs.

Generate a unique ID and register the callback function.

Create command header.

Update request buffer and send an IPI request to ASU.

References XAsu_RsaParams::InputDataAddr, XAsu_RsaParams::KeyCompAddr, XAsu_RsaParams::KeySize, XAsu_RsaParams::Len, XAsu_RsaParams::OutputDataAddr, XAsu_CreateHeader(), XASU_INVALID_ARGUMENT, XASU_INVALID_UNIQUE_ID, XASU_MODULE_RSA_ID, XAsu_RegCallBackNGetUniqueId(), XASU_RSA_PVT_DEC_CMD_ID, XASU_UNIQUE_ID_MAX, XAsu_UpdateQueueBufferNSendIpi(), and XAsu_ValidateClientParameters().

s32 XAsu_RsaEnc ( XAsu_ClientParams ClientParamPtr,
XAsu_RsaParams RsaClientParamPtr 
)

This function sends a command to ASUFW to perform RSA encryption on the provided data by using specified public key.

Parameters
ClientParamPtrPointer to the XAsu_ClientParams structure which holds the client input parameters.
RsaClientParamPtrPointer to XAsu_RsaParams structure which holds the parameters of RSA input arguments.
Returns
  • XST_SUCCESS, if IPI request to ASU is sent successfully.
  • XASU_INVALID_ARGUMENT, if any argument is invalid.
  • XASU_QUEUE_FULL, if Queue buffer is full.
  • XST_FAILURE, if sending IPI request to ASU fails.

Validatations of inputs.

Generate a unique ID and register the callback function.

Create command header.

Update request buffer and send an IPI request to ASU.

References XAsu_RsaParams::InputDataAddr, XAsu_RsaParams::KeyCompAddr, XAsu_RsaParams::KeySize, XAsu_RsaParams::Len, XAsu_RsaParams::OutputDataAddr, XAsu_CreateHeader(), XASU_INVALID_ARGUMENT, XASU_INVALID_UNIQUE_ID, XASU_MODULE_RSA_ID, XAsu_RegCallBackNGetUniqueId(), XASU_RSA_PUB_ENC_CMD_ID, XASU_UNIQUE_ID_MAX, XAsu_UpdateQueueBufferNSendIpi(), and XAsu_ValidateClientParameters().

s32 XAsu_RsaKat ( XAsu_ClientParams ClientParamPtr)

This function sends a command to ASUFW to perform RSA Known Answer Tests (KAT's).

Parameters
ClientParamPtrPointer to the XAsu_ClientParams structure which holds the client input parameters.
Returns
  • XST_SUCCESS, if IPI request to ASU is sent successfully.
  • XASU_INVALID_ARGUMENT, if any argument is invalid.
  • XASU_QUEUE_FULL, if Queue buffer is full.
  • XST_FAILURE, if sending IPI request to ASU fails.

Validate input parameters.

Generate unique ID and register callback.

Create command header.

Update request buffer and send an IPI request to ASU.

References XAsu_CreateHeader(), XASU_INVALID_UNIQUE_ID, XASU_MODULE_RSA_ID, XAsu_RegCallBackNGetUniqueId(), XASU_RSA_KAT_CMD_ID, XASU_UNIQUE_ID_MAX, XAsu_UpdateQueueBufferNSendIpi(), and XAsu_ValidateClientParameters().

s32 XAsu_RsaOaepDec ( XAsu_ClientParams ClientParamPtr,
XAsu_RsaOaepPaddingParams RsaClientParamPtr 
)

This function sends a command to ASUFW to perform decoding using RSA OAEP padding algorithm of the provided message by using the specified key.

Parameters
ClientParamPtrPointer to the XAsu_ClientParams structure which holds the client input parameters.
RsaClientParamPtrPointer to XAsu_RsaOaepPaddingParams structure which holds the parameters of RSA input arguments.
Returns
  • XST_SUCCESS, if IPI request to ASU is sent successfully.
  • XASU_INVALID_ARGUMENT, if any argument is invalid.
  • XASU_QUEUE_FULL, if Queue buffer is full.
  • XST_FAILURE, if sending IPI request to ASU fails.

Validate input parameters.

Validatations of inputs.

Set the command ID based on selected SHA type.

Generate unique ID and register the callback.

Create command header.

Update request buffer and send an IPI request to ASU.

References XAsu_RsaParams::KeySize, XAsu_RsaParams::Len, XAsu_RsaOaepPaddingParams::OptionalLabelAddr, XAsu_RsaParams::OutputDataAddr, XAsu_RsaOaepPaddingParams::ShaMode, XAsu_RsaOaepPaddingParams::ShaType, XAsu_CreateHeader(), XASU_INVALID_ARGUMENT, XASU_INVALID_UNIQUE_ID, XASU_MODULE_RSA_ID, XAsu_RegCallBackNGetUniqueId(), XASU_RSA_OAEP_DEC_SHA2_CMD_ID, XASU_RSA_OAEP_DEC_SHA3_CMD_ID, XAsu_RsaOaepPaddingParams::XAsu_RsaOpComp, XAsu_RsaValidateInputParams(), XASU_SHA2_TYPE, XASU_SHA3_TYPE, XASU_SHA_MODE_SHA256, XASU_SHA_MODE_SHA384, XASU_SHA_MODE_SHA512, XASU_SHA_MODE_SHAKE256, XASU_UNIQUE_ID_MAX, XAsu_UpdateQueueBufferNSendIpi(), and XAsu_ValidateClientParameters().

s32 XAsu_RsaOaepEnc ( XAsu_ClientParams ClientParamPtr,
XAsu_RsaOaepPaddingParams RsaClientParamPtr 
)

This function sends command to ASUFW to perform encoding using RSA OAEP padding algorithm by using the specified RSA key.

Parameters
ClientParamPtrPointer to the XAsu_ClientParams structure which holds the client input parameters.
RsaClientParamPtrPointer to XAsu_RsaOaepPaddingParams structure which holds the parameters of RSA input arguments.
Returns
  • XST_SUCCESS, if IPI request to ASU is sent successfully.
  • XASU_INVALID_ARGUMENT, if any argument is invalid.
  • XASU_QUEUE_FULL, if Queue buffer is full.
  • XST_FAILURE, if sending IPI request to ASU fails.

Validate input parameters.

Validatations of inputs.

Set the command ID based on the selected SHA type.

Generate Unique ID and register the callback.

Create command header.

Update request buffer and send an IPI request to ASU.

References XAsu_RsaParams::KeySize, XAsu_RsaParams::Len, XAsu_RsaOaepPaddingParams::OptionalLabelAddr, XAsu_RsaParams::OutputDataAddr, XAsu_RsaOaepPaddingParams::ShaMode, XAsu_RsaOaepPaddingParams::ShaType, XAsu_CreateHeader(), XASU_INVALID_ARGUMENT, XASU_INVALID_UNIQUE_ID, XASU_MODULE_RSA_ID, XAsu_RegCallBackNGetUniqueId(), XASU_RSA_OAEP_ENC_SHA2_CMD_ID, XASU_RSA_OAEP_ENC_SHA3_CMD_ID, XAsu_RsaOaepPaddingParams::XAsu_RsaOpComp, XAsu_RsaValidateInputParams(), XASU_SHA2_TYPE, XASU_SHA3_TYPE, XASU_SHA_MODE_SHA256, XASU_SHA_MODE_SHA384, XASU_SHA_MODE_SHA512, XASU_SHA_MODE_SHAKE256, XASU_UNIQUE_ID_MAX, XAsu_UpdateQueueBufferNSendIpi(), and XAsu_ValidateClientParameters().

s32 XAsu_RsaPssSignGen ( XAsu_ClientParams ClientParamPtr,
XAsu_RsaPaddingParams RsaClientParamPtr 
)

This function sends a command to ASUFW to generate signature using RSA PSS padding on provided message by using the specified key.

Parameters
ClientParamPtrPointer to the XAsu_ClientParams structure which holds the client input parameters.
RsaClientParamPtrPointer to XAsu_RsaPaddingParams structure which holds the parameters of RSA input arguments.
Returns
  • XST_SUCCESS, if IPI request to ASU is sent successfully.
  • XASU_INVALID_ARGUMENT, if any argument is invalid.
  • XASU_QUEUE_FULL, if Queue buffer is full.
  • XST_FAILURE, if sending IPI request to ASU fails.

Validate input parameters.

Validatations of inputs.

Generate unique ID and register the callback.

Create command header.

Update request buffer and send an IPI request to ASU.

References XAsu_RsaPaddingParams::InputDataType, XAsu_RsaParams::KeySize, XAsu_RsaParams::Len, XAsu_RsaParams::OutputDataAddr, XAsu_RsaPaddingParams::ShaMode, XAsu_RsaPaddingParams::ShaType, XAsu_CreateHeader(), XASU_INVALID_ARGUMENT, XASU_INVALID_UNIQUE_ID, XASU_MODULE_RSA_ID, XAsu_RegCallBackNGetUniqueId(), XASU_RSA_HASHED_INPUT_DATA, XASU_RSA_PSS_SIGN_GEN_SHA2_CMD_ID, XASU_RSA_PSS_SIGN_GEN_SHA3_CMD_ID, XAsu_RsaPaddingParams::XAsu_RsaOpComp, XAsu_RsaValidateInputParams(), XASU_SHA2_TYPE, XASU_SHA3_TYPE, XASU_SHA_256_HASH_LEN, XASU_SHA_384_HASH_LEN, XASU_SHA_512_HASH_LEN, XASU_SHA_MODE_SHA256, XASU_SHA_MODE_SHA384, XASU_SHA_MODE_SHA512, XASU_SHA_MODE_SHAKE256, XASU_SHAKE_256_HASH_LEN, XASU_SHAKE_256_MAX_HASH_LEN, XASU_UNIQUE_ID_MAX, XAsu_UpdateQueueBufferNSendIpi(), and XAsu_ValidateClientParameters().

s32 XAsu_RsaPssSignVer ( XAsu_ClientParams ClientParamPtr,
XAsu_RsaPaddingParams RsaClientParamPtr 
)

This function sends request to ASUFW to verify the specified signature by using RSA PSS padding by using the provided key.

Parameters
ClientParamPtrPointer to the XAsu_ClientParams structure which holds the client input parameters.
RsaClientParamPtrPointer to XAsu_RsaPaddingParams structure which holds the parameters of RSA input arguments.
Returns
  • XST_SUCCESS, if IPI request to ASU is sent successfully.
  • XASU_INVALID_ARGUMENT, if any argument is invalid.
  • XASU_QUEUE_FULL, if Queue buffer is full.
  • XST_FAILURE, if sending IPI request to ASU fails.

Validate input parameters.

Validatations of inputs.

Select the command ID based on SHA type.

Generate unique ID and register the callback.

Create command header.

Update request buffer and send an IPI request to ASU.

References XAsu_RsaPaddingParams::InputDataType, XAsu_RsaParams::KeySize, XAsu_RsaParams::Len, XAsu_RsaPaddingParams::ShaMode, XAsu_RsaPaddingParams::ShaType, XAsu_RsaPaddingParams::SignatureDataAddr, XAsu_RsaPaddingParams::SignatureLen, XAsu_CreateHeader(), XASU_INVALID_ARGUMENT, XASU_INVALID_UNIQUE_ID, XASU_MODULE_RSA_ID, XAsu_RegCallBackNGetUniqueId(), XASU_RSA_HASHED_INPUT_DATA, XASU_RSA_PSS_SIGN_VER_SHA2_CMD_ID, XASU_RSA_PSS_SIGN_VER_SHA3_CMD_ID, XAsu_RsaPaddingParams::XAsu_RsaOpComp, XAsu_RsaValidateInputParams(), XASU_SHA2_TYPE, XASU_SHA3_TYPE, XASU_SHA_256_HASH_LEN, XASU_SHA_384_HASH_LEN, XASU_SHA_512_HASH_LEN, XASU_SHA_MODE_SHA256, XASU_SHA_MODE_SHA384, XASU_SHA_MODE_SHA512, XASU_SHA_MODE_SHAKE256, XASU_SHAKE_256_HASH_LEN, XASU_SHAKE_256_MAX_HASH_LEN, XASU_UNIQUE_ID_MAX, XAsu_UpdateQueueBufferNSendIpi(), and XAsu_ValidateClientParameters().