/* The length of the hash result is dependent on the algorithm that is in use. The following table shows the correct array size for each algorithm: */
void SHAMD5DataProcess(uint32_t ui32Base, uint32_t *pui32DataSrc, uint32_t ui32DataLength, uint32_t *pui32HashResult)
/* The length of the hash result is dependent on the algorithm that is in use. The following table shows the correct array size for each algorithm: */
void SHAMD5DataProcess(uint32_t ui32Base, uint32_t *pui32DataSrc, uint32_t ui32DataLength, uint32_t *pui32HashResult)
{
    ASSERT(ui32Base == SHAMD5_BASE);
    ASSERT((ui32DataLength % 64) == 0);
    while ((HWREG(ui32Base + SHAMD5_O_IRQSTATUS) & SHAMD5_INT_CONTEXT_READY) ==
            0)
    {
    }
    SHAMD5HashLengthSet(ui32Base, ui32DataLength);
    _SHAMD5DataWriteMultiple(ui32Base, pui32DataSrc, ui32DataLength);
    while ((HWREG(ui32Base + SHAMD5_O_IRQSTATUS) & SHAMD5_INT_OUTPUT_READY) ==
            0)
    {
    }
    SHAMD5ResultRead(ui32Base, pui32HashResult);
}