/* Load 512-bit block (16 words) into SHA engine. 
This function aligns the input block and moves it into SHA engine INDATA. CPU polls the WAITING bit and then moves data by using LDM and STM instructions. */
static void hashcrypt_sha_one_block(HASHCRYPT_Type *base, const uint8_t *blk)
/* Load 512-bit block (16 words) into SHA engine. 
This function aligns the input block and moves it into SHA engine INDATA. CPU polls the WAITING bit and then moves data by using LDM and STM instructions. */
static void hashcrypt_sha_one_block(HASHCRYPT_Type *base, const uint8_t *blk)
{
    uint32_t temp[SHA_BLOCK_SIZE / sizeof(uint32_t)];
    const uint32_t *actBlk;
    if (0U != ((uintptr_t)blk & 0x3u))
    {
        (void)hashcrypt_memcpy(temp, (const uint32_t *)(uintptr_t)blk, SHA_BLOCK_SIZE);
        actBlk = (const uint32_t *)(uintptr_t)temp;
    }
    else
    {
        actBlk = (const uint32_t *)(uintptr_t)blk;
    }
    while (0U == (base->STATUS & HASHCRYPT_STATUS_WAITING_MASK))
    {
    }
    hashcrypt_sha_ldm_stm_16_words(base, actBlk);
}