In the following API, is it safe to use same buffer pointer for input and output (i.e., p_cleartext and p_ciphertext respectively)?
/**@brief AES ECB block. Used to provide multiple blocks in a single call
to @ref sd_ecb_blocks_encrypt.*/
typedef struct
{
soc_ecb_key_t const * p_key; /**< Pointer to the Encryption key. */
soc_ecb_cleartext_t const * p_cleartext; /**< Pointer to the Cleartext data. */
soc_ecb_ciphertext_t * p_ciphertext; /**< Pointer to the Ciphertext data. */
} nrf_ecb_hal_data_block_t;
/**@brief Encrypts multiple data blocks provided as an array of data block structures.
*
* @details: Performs 128-bit AES encryption on multiple data blocks
*
* @note:
* - The application may set the SEVONPEND bit in the SCR to 1 to make the SoftDevice sleep while
* the ECB is running. The SEVONPEND bit should only be cleared (set to 0) from application
* main or low interrupt level.
*
* @param[in] block_count Count of blocks in the p_data_blocks array.
* @param[in,out] p_data_blocks Pointer to the first entry in a contiguous array of
* @ref nrf_ecb_hal_data_block_t structures.
*
* @retval ::NRF_SUCCESS
*/
SVCALL(SD_ECB_BLOCKS_ENCRYPT, uint32_t, sd_ecb_blocks_encrypt(uint8_t block_count, nrf_ecb_hal_data_block_t * p_data_blocks));