Lines Matching refs:ctxInternal
220 static status_t sha_check_context(sha_ctx_internal_t *ctxInternal, const uint8_t *message) in sha_check_context() argument
222 …if ((NULL == message) || (NULL == ctxInternal) || (kStatus_Success != sha_check_input_alg(ctxInter… in sha_check_context()
237 static void sha_engine_init(SHA_Type *base, sha_ctx_internal_t *ctxInternal) in sha_engine_init() argument
241 if (kSHA_Sha1 == ctxInternal->algo) in sha_engine_init()
303 sha_ctx_internal_t *ctxInternal, in sha_process_message_data() argument
308 if (ctxInternal->blksz != 0U) in sha_process_message_data()
310 size_t toCopy = SHA_BLOCK_SIZE - ctxInternal->blksz; in sha_process_message_data()
311 (void)sha_memcpy(&ctxInternal->blk.b[ctxInternal->blksz], message, toCopy); in sha_process_message_data()
316 sha_one_block(base, &ctxInternal->blk.b[0]); in sha_process_message_data()
328 (void)sha_memcpy(&ctxInternal->blk.b[0], message, messageSize); in sha_process_message_data()
329 ctxInternal->blksz = messageSize; in sha_process_message_data()
330 ctxInternal->state = kSHA_HashDone; in sha_process_message_data()
354 sha_ctx_internal_t *ctxInternal, in sha_process_message_data_master() argument
359 if (ctxInternal->blksz != 0U) in sha_process_message_data_master()
361 size_t toCopy = SHA_BLOCK_SIZE - ctxInternal->blksz; in sha_process_message_data_master()
362 (void)sha_memcpy(&ctxInternal->blk.b[ctxInternal->blksz], message, toCopy); in sha_process_message_data_master()
367 sha_one_block(base, &ctxInternal->blk.b[0]); in sha_process_message_data_master()
402 (void)sha_memcpy(&ctxInternal->blk.b[0], message, messageSize); in sha_process_message_data_master()
403 ctxInternal->blksz = messageSize; in sha_process_message_data_master()
404 ctxInternal->state = kSHA_HashDone; in sha_process_message_data_master()
422 static status_t sha_finalize(SHA_Type *base, sha_ctx_internal_t *ctxInternal) in sha_finalize() argument
429 if (ctxInternal->blksz <= 55u) in sha_finalize()
432 (void)sha_memcpy(&lastBlock.b[0], &ctxInternal->blk.b[0], ctxInternal->blksz); in sha_finalize()
433 lastBlock.b[ctxInternal->blksz] = (uint8_t)0x80U; in sha_finalize()
434 lastBlock.w[SHA_BLOCK_SIZE / 4U - 1U] = swap_bytes(8u * ctxInternal->fullMessageSize); in sha_finalize()
439 if (ctxInternal->blksz < SHA_BLOCK_SIZE) in sha_finalize()
441 ctxInternal->blk.b[ctxInternal->blksz] = (uint8_t)0x80U; in sha_finalize()
442 for (uint32_t i = ctxInternal->blksz + 1u; i < SHA_BLOCK_SIZE; i++) in sha_finalize()
444 ctxInternal->blk.b[i] = 0; in sha_finalize()
452 sha_one_block(base, &ctxInternal->blk.b[0]); in sha_finalize()
453 lastBlock.w[SHA_BLOCK_SIZE / 4U - 1U] = swap_bytes(8u * ctxInternal->fullMessageSize); in sha_finalize()
503 sha_ctx_internal_t *ctxInternal; in SHA_Init() local
515 ctxInternal = (sha_ctx_internal_t *)(uint32_t)ctx; in SHA_Init()
516 ctxInternal->algo = algo; in SHA_Init()
517 ctxInternal->blksz = 0u; in SHA_Init()
519 j = (sizeof(ctxInternal->blk.w) / sizeof(ctxInternal->blk.w[0])); in SHA_Init()
522 ctxInternal->blk.w[0] = 0u; in SHA_Init()
524 ctxInternal->state = kSHA_HashInit; in SHA_Init()
525 ctxInternal->fullMessageSize = 0; in SHA_Init()
545 sha_ctx_internal_t *ctxInternal; in SHA_Update() local
553 ctxInternal = (sha_ctx_internal_t *)(uint32_t)ctx; in SHA_Update()
554 status = sha_check_context(ctxInternal, message); in SHA_Update()
557 ctxInternal->state = kSHA_HashError; in SHA_Update()
561 ctxInternal->fullMessageSize += messageSize; in SHA_Update()
564 if ((ctxInternal->blksz + messageSize) <= blockSize) in SHA_Update()
566 (void)sha_memcpy((&ctxInternal->blk.b[0]) + ctxInternal->blksz, message, messageSize); in SHA_Update()
567 ctxInternal->blksz += messageSize; in SHA_Update()
572 isInitState = ctxInternal->state == kSHA_HashInit; in SHA_Update()
576 sha_engine_init(base, ctxInternal); in SHA_Update()
577 ctxInternal->state = kSHA_HashUpdate; in SHA_Update()
586 status = sha_process_message_data(base, ctxInternal, message, messageSize); in SHA_Update()
592 status = sha_process_message_data_master(base, ctxInternal, message, messageSize); in SHA_Update()
595 status = sha_process_message_data(base, ctxInternal, message, messageSize); in SHA_Update()
617 sha_ctx_internal_t *ctxInternal; in SHA_Finish() local
622 ctxInternal = (sha_ctx_internal_t *)(uint32_t)ctx; in SHA_Finish()
623 status = sha_check_context(ctxInternal, output); in SHA_Finish()
629 tempState = ctxInternal->state; in SHA_Finish()
632 sha_engine_init(base, ctxInternal); in SHA_Finish()
637 tempState = ctxInternal->state; in SHA_Finish()
644 tempState = ctxInternal->state; in SHA_Finish()
652 switch (ctxInternal->algo) in SHA_Finish()
667 status = sha_finalize(base, ctxInternal); in SHA_Finish()
694 sha_ctx_internal_t *ctxInternal; in SHA_SetCallback() local
697 ctxInternal = (sha_ctx_internal_t *)(uint32_t)ctx; in SHA_SetCallback()
698 ctxInternal->hashCallback = callback; in SHA_SetCallback()
699 ctxInternal->userData = userData; in SHA_SetCallback()
706 sha_ctx_internal_t *ctxInternal; in SHA_UpdateNonBlocking() local
720 ctxInternal = (sha_ctx_internal_t *)(uint32_t)ctx; in SHA_UpdateNonBlocking()
721 status = sha_check_context(ctxInternal, input); in SHA_UpdateNonBlocking()
727 ctxInternal->fullMessageSize = inputSize; in SHA_UpdateNonBlocking()
728 ctxInternal->remainingBlcks = inputSize / SHA_BLOCK_SIZE; in SHA_UpdateNonBlocking()
729 ctxInternal->blksz = inputSize % SHA_BLOCK_SIZE; in SHA_UpdateNonBlocking()
732 if ((ctxInternal->blksz > 0U) && (ctxInternal->blksz <= SHA_BLOCK_SIZE)) in SHA_UpdateNonBlocking()
734 … (void)sha_memcpy((&ctxInternal->blk.b[0]), input + SHA_BLOCK_SIZE * ctxInternal->remainingBlcks, in SHA_UpdateNonBlocking()
735 ctxInternal->blksz); in SHA_UpdateNonBlocking()
738 if (ctxInternal->remainingBlcks >= MAX_HASH_CHUNK) in SHA_UpdateNonBlocking()
744 numBlocks = ctxInternal->remainingBlcks; in SHA_UpdateNonBlocking()
747 ctxInternal->remainingBlcks -= numBlocks; in SHA_UpdateNonBlocking()
752 ctxInternal->state = kSHA_HashUpdate; in SHA_UpdateNonBlocking()
753 sha_engine_init(base, ctxInternal); in SHA_UpdateNonBlocking()
763 ctxInternal->hashCallback(base, ctx, status, ctxInternal->userData); in SHA_UpdateNonBlocking()
791 sha_ctx_internal_t *ctxInternal; in SHA_DriverIRQHandler() local
796 ctxInternal = (sha_ctx_internal_t *)(uint32_t)s_shaCtx; in SHA_DriverIRQHandler()
800 if (ctxInternal->remainingBlcks > 0U) in SHA_DriverIRQHandler()
802 if (ctxInternal->remainingBlcks >= MAX_HASH_CHUNK) in SHA_DriverIRQHandler()
808 numBlocks = ctxInternal->remainingBlcks; in SHA_DriverIRQHandler()
811 ctxInternal->remainingBlcks -= numBlocks; in SHA_DriverIRQHandler()
826 if (NULL != ctxInternal->hashCallback) in SHA_DriverIRQHandler()
828 ctxInternal->hashCallback(SHA0, s_shaCtx, status, ctxInternal->userData); in SHA_DriverIRQHandler()