Lines Matching refs:handle

245 	struct ree_fs_ta_handle *handle;  in ree_fs_ta_open()  local
261 handle = calloc(1, sizeof(*handle)); in ree_fs_ta_open()
262 if (!handle) in ree_fs_ta_open()
418 handle->bs_hdr = bs_hdr; in ree_fs_ta_open()
466 res = tee_ta_decrypt_init(&handle->enc_ctx, ehdr, in ree_fs_ta_open()
472 handle->ehdr = ehdr; in ree_fs_ta_open()
480 handle->nw_ta = ta; in ree_fs_ta_open()
481 handle->nw_ta_size = ta_size; in ree_fs_ta_open()
482 handle->offs = offs; in ree_fs_ta_open()
483 handle->hash_ctx = hash_ctx; in ree_fs_ta_open()
484 handle->shdr = shdr; in ree_fs_ta_open()
485 handle->mobj = mobj; in ree_fs_ta_open()
486 *h = (struct ts_store_handle *)handle; in ree_fs_ta_open()
499 free(handle); in ree_fs_ta_open()
509 struct ree_fs_ta_handle *handle = (struct ree_fs_ta_handle *)h; in ree_fs_ta_get_size() local
511 *size = handle->shdr->img_size; in ree_fs_ta_get_size()
518 struct ree_fs_ta_handle *handle = (struct ree_fs_ta_handle *)h; in ree_fs_ta_get_tag() local
520 if (!tag || *tag_len < handle->shdr->hash_size) { in ree_fs_ta_get_tag()
521 *tag_len = handle->shdr->hash_size; in ree_fs_ta_get_tag()
524 *tag_len = handle->shdr->hash_size; in ree_fs_ta_get_tag()
526 memcpy(tag, SHDR_GET_HASH(handle->shdr), handle->shdr->hash_size); in ree_fs_ta_get_tag()
555 struct ree_fs_ta_handle *handle = (struct ree_fs_ta_handle *)h; in ree_fs_ta_read() local
556 uint8_t *src = (uint8_t *)handle->nw_ta + handle->offs; in ree_fs_ta_read()
566 if (ADD_OVERFLOW(handle->offs, len, &next_offs) || in ree_fs_ta_read()
567 next_offs > handle->nw_ta_size) in ree_fs_ta_read()
589 if (handle->shdr->img_type == SHDR_ENCRYPTED_TA) { in ree_fs_ta_read()
590 res = tee_ta_decrypt_update(handle->enc_ctx, dst, in ree_fs_ta_read()
600 res = crypto_hash_update(handle->hash_ctx, dst, n); in ree_fs_ta_read()
616 handle->offs = next_offs; in ree_fs_ta_read()
617 if (handle->offs == handle->nw_ta_size) { in ree_fs_ta_read()
618 if (handle->shdr->img_type == SHDR_ENCRYPTED_TA) { in ree_fs_ta_read()
623 res = tee_ta_decrypt_final(handle->enc_ctx, in ree_fs_ta_read()
624 handle->ehdr, NULL, NULL, 0); in ree_fs_ta_read()
634 res = check_digest(handle); in ree_fs_ta_read()
638 if (handle->bs_hdr) in ree_fs_ta_read()
640 handle->bs_hdr->uuid, in ree_fs_ta_read()
641 handle->bs_hdr->ta_version); in ree_fs_ta_read()
650 struct ree_fs_ta_handle *handle = (struct ree_fs_ta_handle *)h; in ree_fs_ta_close() local
652 if (!handle) in ree_fs_ta_close()
654 thread_rpc_free_payload(handle->mobj); in ree_fs_ta_close()
655 crypto_hash_free_ctx(handle->hash_ctx); in ree_fs_ta_close()
656 free(handle->shdr); in ree_fs_ta_close()
657 free(handle->ehdr); in ree_fs_ta_close()
658 free(handle->bs_hdr); in ree_fs_ta_close()
659 free(handle); in ree_fs_ta_close()
695 struct buf_ree_fs_ta_handle *handle = NULL; in buf_ta_open() local
699 handle = calloc(1, sizeof(*handle)); in buf_ta_open()
700 if (!handle) in buf_ta_open()
703 res = ree_fs_ta_open(uuid, &handle->h); in buf_ta_open()
711 res = ree_fs_ta_get_size(handle->h, &handle->ta_size); in buf_ta_open()
715 res = ree_fs_ta_get_tag(handle->h, NULL, &handle->tag_len); in buf_ta_open()
720 handle->tag = malloc(handle->tag_len); in buf_ta_open()
721 if (!handle->tag) { in buf_ta_open()
725 res = ree_fs_ta_get_tag(handle->h, handle->tag, &handle->tag_len); in buf_ta_open()
729 handle->mm = phys_mem_ta_alloc(handle->ta_size); in buf_ta_open()
730 if (!handle->mm) { in buf_ta_open()
734 handle->buf = phys_to_virt(tee_mm_get_smem(handle->mm), in buf_ta_open()
735 MEM_AREA_SEC_RAM_OVERALL, handle->ta_size); in buf_ta_open()
736 if (!handle->buf) { in buf_ta_open()
742 res = ree_fs_ta_read(handle->h, handle->buf, NULL, handle->ta_size); in buf_ta_open()
750 *h = (struct ts_store_handle *)handle; in buf_ta_open()
751 ree_fs_ta_close(handle->h); in buf_ta_open()
755 ree_fs_ta_close(handle->h); in buf_ta_open()
756 tee_mm_free(handle->mm); in buf_ta_open()
757 free(handle->tag); in buf_ta_open()
759 free(handle); in buf_ta_open()
766 struct buf_ree_fs_ta_handle *handle = (struct buf_ree_fs_ta_handle *)h; in buf_ta_get_size() local
768 *size = handle->ta_size; in buf_ta_get_size()
775 struct buf_ree_fs_ta_handle *handle = (struct buf_ree_fs_ta_handle *)h; in buf_ta_read() local
776 uint8_t *src = handle->buf + handle->offs; in buf_ta_read()
780 if (ADD_OVERFLOW(handle->offs, len, &next_offs) || in buf_ta_read()
781 next_offs > handle->ta_size) in buf_ta_read()
791 handle->offs = next_offs; in buf_ta_read()
798 struct buf_ree_fs_ta_handle *handle = (struct buf_ree_fs_ta_handle *)h; in buf_ta_get_tag() local
800 *tag_len = handle->tag_len; in buf_ta_get_tag()
801 if (!tag || *tag_len < handle->tag_len) in buf_ta_get_tag()
804 memcpy(tag, handle->tag, handle->tag_len); in buf_ta_get_tag()
811 struct buf_ree_fs_ta_handle *handle = (struct buf_ree_fs_ta_handle *)h; in buf_ta_close() local
813 if (!handle) in buf_ta_close()
815 tee_mm_free(handle->mm); in buf_ta_close()
816 free(handle->tag); in buf_ta_close()
817 free(handle); in buf_ta_close()