Lines Matching refs:rawdata
618 struct rpmb_raw_data *rawdata, in tee_rpmb_req_pack() argument
626 if (!req_data || !rawdata || !nbr_frms) in tee_rpmb_req_pack()
633 if ((rawdata->msg_type == RPMB_MSG_TYPE_REQ_AUTH_DATA_WRITE) && in tee_rpmb_req_pack()
651 u16_to_bytes(rawdata->msg_type, datafrm[i].msg_type); in tee_rpmb_req_pack()
653 if (rawdata->block_count) in tee_rpmb_req_pack()
654 u16_to_bytes(*rawdata->block_count, in tee_rpmb_req_pack()
657 if (rawdata->blk_idx) { in tee_rpmb_req_pack()
659 if ((*rawdata->blk_idx + nbr_frms - 1) > in tee_rpmb_req_pack()
664 u16_to_bytes(*rawdata->blk_idx, datafrm[i].address); in tee_rpmb_req_pack()
667 if (rawdata->write_counter) in tee_rpmb_req_pack()
668 u32_to_bytes(*rawdata->write_counter, in tee_rpmb_req_pack()
671 if (rawdata->nonce) in tee_rpmb_req_pack()
672 memcpy(datafrm[i].nonce, rawdata->nonce, in tee_rpmb_req_pack()
675 if (rawdata->data) { in tee_rpmb_req_pack()
678 rawdata->data + in tee_rpmb_req_pack()
680 *rawdata->blk_idx + i, in tee_rpmb_req_pack()
686 rawdata->data + (i * RPMB_DATA_SIZE), in tee_rpmb_req_pack()
692 if (rawdata->key_mac) { in tee_rpmb_req_pack()
693 if (rawdata->msg_type == RPMB_MSG_TYPE_REQ_AUTH_DATA_WRITE) { in tee_rpmb_req_pack()
695 tee_rpmb_mac_calc(rawdata->key_mac, in tee_rpmb_req_pack()
703 rawdata->key_mac, RPMB_KEY_MAC_SIZE); in tee_rpmb_req_pack()
722 static TEE_Result data_cpy_mac_calc_1b(struct rpmb_raw_data *rawdata, in data_cpy_mac_calc_1b() argument
730 if (rawdata->len + rawdata->byte_offset > RPMB_DATA_SIZE) in data_cpy_mac_calc_1b()
733 res = tee_rpmb_mac_calc(rawdata->key_mac, RPMB_KEY_MAC_SIZE, in data_cpy_mac_calc_1b()
738 data = rawdata->data; in data_cpy_mac_calc_1b()
741 res = decrypt(data, frm, rawdata->len, rawdata->byte_offset, idx, fek, in data_cpy_mac_calc_1b()
747 struct rpmb_raw_data *rawdata, in tee_rpmb_data_cpy_mac_calc() argument
762 if (!datafrm || !rawdata || !nbr_frms || !lastfrm) in tee_rpmb_data_cpy_mac_calc()
766 return data_cpy_mac_calc_1b(rawdata, lastfrm, fek, uuid); in tee_rpmb_data_cpy_mac_calc()
770 data = rawdata->data; in tee_rpmb_data_cpy_mac_calc()
803 offset = rawdata->byte_offset; in tee_rpmb_data_cpy_mac_calc()
820 size = (rawdata->len + rawdata->byte_offset) % RPMB_DATA_SIZE; in tee_rpmb_data_cpy_mac_calc()
833 res = crypto_mac_final(ctx, rawdata->key_mac, RPMB_KEY_MAC_SIZE); in tee_rpmb_data_cpy_mac_calc()
845 struct rpmb_raw_data *rawdata, in tee_rpmb_resp_unpack_verify() argument
857 if (!datafrm || !rawdata || !nbr_frms) in tee_rpmb_resp_unpack_verify()
882 if (msg_type != rawdata->msg_type) { in tee_rpmb_resp_unpack_verify()
884 rawdata->msg_type); in tee_rpmb_resp_unpack_verify()
888 if (rawdata->blk_idx) { in tee_rpmb_resp_unpack_verify()
890 if (blk_idx != *rawdata->blk_idx) { in tee_rpmb_resp_unpack_verify()
896 if (rawdata->write_counter) { in tee_rpmb_resp_unpack_verify()
897 wr_cnt = *rawdata->write_counter; in tee_rpmb_resp_unpack_verify()
898 bytes_to_u32(lastfrm.write_counter, rawdata->write_counter); in tee_rpmb_resp_unpack_verify()
901 if (*rawdata->write_counter != wr_cnt + 1) { in tee_rpmb_resp_unpack_verify()
903 *rawdata->write_counter, wr_cnt + 1); in tee_rpmb_resp_unpack_verify()
910 if (rawdata->nonce) { in tee_rpmb_resp_unpack_verify()
911 if (buf_compare_ct(rawdata->nonce, lastfrm.nonce, in tee_rpmb_resp_unpack_verify()
918 if (rawdata->key_mac) { in tee_rpmb_resp_unpack_verify()
920 if (!rawdata->data) in tee_rpmb_resp_unpack_verify()
923 res = tee_rpmb_data_cpy_mac_calc(datafrm, rawdata, in tee_rpmb_resp_unpack_verify()
937 res = tee_rpmb_mac_calc(rawdata->key_mac, in tee_rpmb_resp_unpack_verify()
947 if (consttime_memcmp(rawdata->key_mac, in tee_rpmb_resp_unpack_verify()
952 DHEXDUMP(rawdata->key_mac, RPMB_KEY_MAC_SIZE); in tee_rpmb_resp_unpack_verify()
1003 struct rpmb_raw_data rawdata; in tee_rpmb_init_read_wr_cnt() local
1019 memset(&rawdata, 0x00, sizeof(struct rpmb_raw_data)); in tee_rpmb_init_read_wr_cnt()
1020 rawdata.msg_type = msg_type; in tee_rpmb_init_read_wr_cnt()
1021 rawdata.nonce = nonce; in tee_rpmb_init_read_wr_cnt()
1023 res = tee_rpmb_req_pack(mem.req_hdr, mem.req_data, &rawdata, 1, NULL, in tee_rpmb_init_read_wr_cnt()
1034 memset(&rawdata, 0x00, sizeof(struct rpmb_raw_data)); in tee_rpmb_init_read_wr_cnt()
1035 rawdata.msg_type = msg_type; in tee_rpmb_init_read_wr_cnt()
1036 rawdata.op_result = &op_result; in tee_rpmb_init_read_wr_cnt()
1037 rawdata.write_counter = wr_cnt; in tee_rpmb_init_read_wr_cnt()
1038 rawdata.nonce = nonce; in tee_rpmb_init_read_wr_cnt()
1039 rawdata.key_mac = hmac; in tee_rpmb_init_read_wr_cnt()
1041 return tee_rpmb_resp_unpack_verify(mem.resp_data, &rawdata, 1, NULL, in tee_rpmb_init_read_wr_cnt()
1051 struct rpmb_raw_data rawdata; in tee_rpmb_write_key() local
1059 memset(&rawdata, 0x00, sizeof(struct rpmb_raw_data)); in tee_rpmb_write_key()
1060 rawdata.msg_type = msg_type; in tee_rpmb_write_key()
1061 rawdata.key_mac = rpmb_ctx->key; in tee_rpmb_write_key()
1063 res = tee_rpmb_req_pack(mem.req_hdr, mem.req_data, &rawdata, 1, NULL, in tee_rpmb_write_key()
1074 memset(&rawdata, 0x00, sizeof(struct rpmb_raw_data)); in tee_rpmb_write_key()
1075 rawdata.msg_type = msg_type; in tee_rpmb_write_key()
1077 return tee_rpmb_resp_unpack_verify(mem.resp_data, &rawdata, 1, NULL, in tee_rpmb_write_key()
1312 struct rpmb_raw_data rawdata; in tee_rpmb_read() local
1342 memset(&rawdata, 0x00, sizeof(struct rpmb_raw_data)); in tee_rpmb_read()
1343 rawdata.msg_type = msg_type; in tee_rpmb_read()
1344 rawdata.nonce = nonce; in tee_rpmb_read()
1345 rawdata.blk_idx = &blk_idx; in tee_rpmb_read()
1346 res = tee_rpmb_req_pack(mem.req_hdr, mem.req_data, &rawdata, 1, NULL, in tee_rpmb_read()
1363 memset(&rawdata, 0x00, sizeof(struct rpmb_raw_data)); in tee_rpmb_read()
1364 rawdata.msg_type = msg_type; in tee_rpmb_read()
1365 rawdata.block_count = &blkcnt; in tee_rpmb_read()
1366 rawdata.blk_idx = &blk_idx; in tee_rpmb_read()
1367 rawdata.nonce = nonce; in tee_rpmb_read()
1368 rawdata.key_mac = hmac; in tee_rpmb_read()
1369 rawdata.data = data; in tee_rpmb_read()
1371 rawdata.len = len; in tee_rpmb_read()
1372 rawdata.byte_offset = byte_offset; in tee_rpmb_read()
1374 return tee_rpmb_resp_unpack_verify(mem.resp_data, &rawdata, blkcnt, in tee_rpmb_read()
1386 struct rpmb_raw_data rawdata = { }; in write_req() local
1396 memset(&rawdata, 0, sizeof(struct rpmb_raw_data)); in write_req()
1397 rawdata.msg_type = RPMB_MSG_TYPE_REQ_AUTH_DATA_WRITE; in write_req()
1398 rawdata.block_count = &blkcnt; in write_req()
1399 rawdata.blk_idx = &blk_idx; in write_req()
1400 rawdata.write_counter = &wr_cnt; in write_req()
1401 rawdata.key_mac = hmac; in write_req()
1402 rawdata.data = (uint8_t *)data_blks; in write_req()
1404 res = tee_rpmb_req_pack(mem->req_hdr, mem->req_data, &rawdata, in write_req()
1438 memset(&rawdata, 0, sizeof(struct rpmb_raw_data)); in write_req()
1439 rawdata.msg_type = RPMB_MSG_TYPE_RESP_AUTH_DATA_WRITE; in write_req()
1440 rawdata.block_count = &blkcnt; in write_req()
1441 rawdata.blk_idx = &blk_idx; in write_req()
1442 rawdata.write_counter = &wr_cnt; in write_req()
1443 rawdata.key_mac = hmac; in write_req()
1445 res = tee_rpmb_resp_unpack_verify(mem->resp_data, &rawdata, 1, in write_req()