/* Add uncomplete block (ctxInternal), then append new data (to current hash).  */
static status_t caam_hash_append_data(caam_hash_ctx_internal_t *ctxInternal, const uint8_t *input, size_t inputSize, caam_algorithm_state_t algState, caam_desc_hash_t descriptor, size_t *numRemain, void *output, size_t *outputSize)
/* Add uncomplete block (ctxInternal), then append new data (to current hash).  */
static status_t caam_hash_append_data(caam_hash_ctx_internal_t *ctxInternal, const uint8_t *input, size_t inputSize, caam_algorithm_state_t algState, caam_desc_hash_t descriptor, size_t *numRemain, void *output, size_t *outputSize)
{
    caam_hash_internal_sgt_t sgt;
    (void)memset(&sgt, 0, sizeof(sgt));
    size_t num = caam_hash_sgt_insert(ctxInternal, input, inputSize, numRemain, algState, sgt, kCAAM_HashSgtEntryLast);
    return caam_hash_schedule_input_data(ctxInternal->base, ctxInternal->handle, ctxInternal->algo, sgt, num,
                                         kCAAM_HashSgtInternal, algState, descriptor, outputSize, output,
                                         &ctxInternal->word[0], (uint32_t)&ctxInternal->word[kCAAM_HashCtxKeyStartIdx],
                                         ctxInternal->word[kCAAM_HashCtxKeySize]);
}